AWS IAM ve Lambda Servislerinin Entegrasyonunun Önemi
AWS IAM ve Lambda Servislerinin Entegrasyonunun Önemi
AWS IAM, AWS kaynaklarına erişim kontrolünü yönetmenizi
sağlayan bir web servisidir. AWS Lambda ise kodunuzu sunucusuz bir ortamda
çalıştırmanıza olanak tanır. IAM rolleri ve policy’leri kullanarak Lambda
fonksiyonlarınıza sadece gerektiği kadar erişim izni vermek, güvenlik ve
uyumluluk için kritik öneme sahiptir.
AWS IAM ve Lambda'nın entegrasyonunu anlamak için, bir
ofis binasını düşünelim. Bu ofiste, her çalışanın belirli odalara erişimi
vardır. Bazıları sadece mutfak ve çalışma alanlarına erişebilirken, diğerleri
sunucu odasına veya finans departmanına girebilir. Bu erişim hakları,
çalışanların kimlik kartlarına tanımlanmıştır ve her bir kart, sahibinin hangi
alanlara erişebileceğini belirler.
•
IAM Roller ve Policy’ler: Bu senaryoda, IAM rolleri
çalışanların kimlik kartlarına benzer. Her rol, AWS kaynaklarına erişim
sağlayan bir kimlik kartı gibidir. Policy’ler ise, bu kartların hangi kapıları
açabileceğini - yani hangi AWS kaynaklarına erişilebileceğini - tanımlayan
kurallar setidir. Bir çalışanın (Lambda fonksiyonunun) sadece gerekli odalara
(kaynaklara) erişmesini sağlamak, güvenli bir çalışma ortamı oluşturur.
•
En Az Ayrıcalık İlkesi (Least Privilege Principle): Bu
ilke, çalışanlara yalnızca işlerini yapmak için gereken minimum erişim
seviyesinin verilmesi gerektiğini belirtir. Eğer bir çalışanın sadece mutfak ve
kendi çalışma alanına erişmesi gerekiyorsa, ona finans departmanına veya sunucu
odasına erişim izni vermek, gereksiz riskler oluşturur. Aynı şekilde, Lambda
fonksiyonlarına da sadece ihtiyaç duydukları AWS kaynaklarına erişim izni
verilir.
•
AWS CLI Kullanımı: AWS CLI'nin kullanımı, ofis
yöneticisinin bir bilgisayar programı aracılığıyla çalışanların kimlik
kartlarına hangi erişim haklarının tanımlanacağını belirlemesine benzer.
Yönetici, çalışanın rolüne uygun erişim izinlerini tanımlar, bu da çalışanın
ofisteki hangi odalara girebileceğini belirler. CLI komutları, bu erişim
izinlerini hızlı ve etkili bir şekilde yönetmenizi sağlar.
Bu analoji, AWS IAM ve Lambda'nın entegrasyonunun, bir
ofiste çalışanların erişim kontrolünün yönetilmesine benzer olduğunu gösterir.
Her iki durumda da, güvenlik ve verimlilik, uygun erişim haklarının ve
izinlerin dikkatlice yönetilmesiyle sağlanır.
IAM Rolleri ve Policy’ler ile Güvenliği Sağlama
IAM rolleri, AWS kaynaklarına erişim için kullanılan
kimliklerdir. Lambda fonksiyonlarına atanan bir rol, o fonksiyonun hangi AWS
kaynaklarına erişebileceğini belirler. Policy’ler ise, JSON formatında
tanımlanan, rollerin veya kullanıcıların hangi işlemleri
gerçekleştirebileceğini veya gerçekleştiremeyeceğini detaylandırır.
•
IAM Rolü Oluşturma ve Lambda
Fonksiyonuna Atama:
Lambda fonksiyonunuzun diğer AWS servisleriyle etkileşimde
bulunabilmesi için öncelikle bir IAM rolü oluşturmanız ve bu role uygun
policy’lerı eklemeniz gerekir. Ardından, bu rolü Lambda fonksiyonunuza
atayabilirsiniz.
● En İyi Uygulama (Best Practice): En Az Ayrıcalık İlkesi
(Least Privilege Principle)
Güvenliği maksimize etmek için, her bir Lambda fonksiyonuna
yalnızca ihtiyaç duyduğu erişim izinlerini verin. Bu, olası güvenlik açıklarını
azaltır ve sistem güvenliğini artırır.
AWS CLI Kullanarak IAM ve Lambda Yönetimi
AWS CLI, AWS IAM rollerini ve policy’lerini yönetmek için
güçlü bir araçtır. Aynı şekilde, AWS Lambda fonksiyonlarınızı CLI üzerinden
dağıtabilir, güncelleyebilir ve test edebilirsiniz.
● IAM Rolü Oluşturma:
aws iam create-role --role-name MyLambdaExecutionRole
--assume-role-policy-document file://trust-policy.json
Bu komut, Lambda fonksiyonları tarafından kullanılmak üzere
bir rol oluşturur. ‘trust-policy.json’ dosyası, Lambda servisinin bu rolü
üstlenebilmesi için gerekli izinleri içerir.
● Policy Ekleyerek Role İzin Verme:
aws iam attach-role-policy --role-name MyLambdaExecutionRole
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Bu komut, oluşturulan role temel Lambda yürütme izinlerini
verir.
● Lambda Fonksiyonu Oluşturma ve Rol Atama:
aws lambda create-function --function-name MyLambdaFunction
--runtime python3.8 --role arn:aws:iam::123456789012:role/MyLambdaExecutionRole
--handler lambda_function.lambda_handler --zip-file fileb://my-function.zip
Bu komut, belirtilen rolü kullanarak bir Lambda fonksiyonu
oluşturur. Fonksiyonun kodu my-function.zip dosyasında bulunur.
Sonuç
AWS IAM ve Lambda'nın entegrasyonu, güvenli ve
ölçeklenebilir sunucusuz uygulamalar oluşturmanın temelidir. IAM rolleri ve
policy’ler ile Lambda fonksiyonlarınızın erişimini kontrol etmek,
uygulamalarınızın güvenliğini sağlar. AWS CLI, bu işlemleri kolayca yönetmenize
olanak tanır, böylece güvenlik ve uyumluluk standartlarını karşılayan sağlam
mimariler oluşturabilirsiniz.
AWS sertifikaları almak, kariyerinizde daha ileri
seviyeye çıkmanıza ya da kariyerinizde değişiklik yapmanıza fayda sağlayabilir.
Bu nedenle eğitim süresince profesyonel bir eğitim partneri ile çalışmak
oldukça önemlidir. AWS Eğitimi ile, sertifikalı profesyonel eğitmenlerimizden
eğitim alabilirsiniz. Ayrıntılı bilgi için info@yonetim.academy adresine mail atmanız
yeterlidir.
Oğuzhan Hızıroğlu
Yazının tüm
hakları Yönetim.Academy’e aittir. İzinsiz olarak, kaynak belirtilerek dahi
alıntı yapılması ya da yazının tamamının başka yerde yayınlanması yasaktır.