AWS IAM SERVICE

Ümmügülsüm Çağlayan
Miuul AWS Community
5 min readMar 4, 2024

--

Selamlar, bu yazımda AWS in en çok kullanılan servislerinden biri olan IAM nedir, ne iş yapar, nasıl kullanılır bu konulara açıklık getirmeye çalışacağım.Keyifli okumalar 🤗

IAM(Identity and Access Management), AWS üzerindeki kaynaklara erişim kontrolünü güvenli bir şekilde sağlayan bir hizmettir. IAM, kullanıcıların, grupların ve rollerin oluşturulması, yönetilmesi ve bunlara erişim politikalarının atanması için bir araç seti sunar.IAM kullanıcıların hesap erişiminde MFA(Multi-Factor Authentication) yani çoklu doğrulama faktörü kullanmalarını sağlayarak hesapların güvenliğini artırır.Aynı zamanda kişiye-gruplara özel erişim sınırlaması getirebilir, denetimi artırabilirsiniz.Kısaca AWS IAM servisi güvenlik noktasında tüm beklentilerinizi karşılayacaktır.

IAM’ in Temel 3 Özelliği;

Security(Güvenlik)

Granularity(Hassaslaştırabilirlik)

Auditability(Denetlenebilirlik)

IAM Temel Bileşenleri

1.Users: IAM kullanıcısı gerçek kişiler yada Programmatic Access ile sisteme ulaşabilen servislerdir.Kullanıcılar sisteme AWS Konsolu veya AWS CLI(Command Line Interface) ile sisteme entegre olabilirler.

2.Groups: Bir IAM grubu, kullanıcılardan ve bu kullanıcılara atanan izinlerden oluşan bir koleksiyondur.Benzer izinlere ihtiyacı olan bir grup için ayrı ayrı izin yazıp denetleme yerine bir grup yazıyoruz yani izinler koleksiyonu ve bu kullanıcıların hepsini bu gruba atıyoruz.Gruplar bize daha kolay bir yönetim ve denetim sağlar.

3.Roles: AWS Servislerinin etkileşimi için oluşturulur.Yani roller bir makine veya servis için oluşturulur. Roller, bir varlığa doğrudan izin atamak yerine, bir varlığa görevleri gerçekleştirmesi için geçici olarak izin verilmesine olanak tanır.

4.Policies: Politikalar bir dizi kuraldır.Her bir politika bir dizi izin verir ve IAM kimliklerine atanır.IAM kimliklerine bu politikaları atadığımızda belli haklar, sınırlar, yetkinlikler vermiş oluruz.IAM servisinin temel 3 özelliğinde politikaların yeri büyüktür.

USERS OLUŞTURMA

IAM Servisini seçtikte sonra users bölümüne geldiğimizde karşımıza böyle bir ekran geliyor.Şu an herhangi bir users oluşturmadığımız için No resources to display yazısını görüyoruz.Burada sağ üstte Create user’ı tıklıyoruz.

IAM Servisini seçtikten sonra users bölümüne geldiğimizde karşımıza böyle bir ekran geliyor.Şu an herhangi bir users oluşturmadığımız için “No resources to display” yazısını görüyoruz.Burada sağ üstte Create user’ı tıklıyoruz.

Burada user name alanını doldurduktan sonra AWS console dan bu kullanıcı consoldan ulaşım sağlasın istediğim için “Provide user access to the AWS Management Console” sekmesini işaretliyorum.

Açılan ekranda kulanıcının gerçek bir insan olduğunu söylemiş olduk, kullanıcı adı ve bir şifre belirleyerek süreci tamamladık.Alttaki “Users must create a new password at next sign-in” izni ile sisteme bir sonraki girişinde yeniden şifre belirlemek istediğimin iznini verdim.

POLİTİKA ATAMA

Politika atama kısmı, erişim izinlerini vediğimiz sekmedir.Politikaları izinlere göre gruplandırarak da atayabiliriz ki bu bize yönetme kolaylığı sağlar.İki karşıt kuralın aynı kullanıcıya veya gruba atanması durumunda, ‘deny’ (reddetme) kuralları ‘allow’ (izin verme) kurallarından üstün gelir. Genel olarak, tüm izinler varsayılan olarak kapalıdır yani default olarak “deny” dir.Yalnızca gerekli olan izinler açılır.

Politika yazmak için öncelikle IAM Dashboard da Access Management sekmesinden Policies sekmesine geçiyoruz.

Burada “Attach policies directly” sekmesini tıklıyoruz.

Burada örneğin s3 servisi ile ilgili bir izin verdiğimizi düşünürsek yazacağımız statement yukarıdaki gibidir.

AWS SERVİSLERİNE CLI İLE ERİŞİM

AWS CLI, AWS hizmetlerine erişmek için kullanılan bir dizi komut satırı aracını içerir. Bu komutlar, AWS kaynaklarını oluşturmak, yapılandırmak, yönetmek, izlemek ve hizmetler arasında etkileşimde bulunmak için kullanılabilir. Örneğin, AWS CLI ile EC2 örnekleri başlatabilir, S3 depolama alanı içeriği yönetebilir, IAM kullanıcıları oluşturabilir ve AWS hizmetlerine ilişkin diğer birçok işlemi gerçekleştirebilirsiniz.

AWS Servislerine Console dan erişebileceğimiz gibi AWS CLI komutları ile de erişebiliriz.Users açıklamasında bahsettiğimiz Programmatic Access CLI ile erişmektir.Bilgisayarımıza AWS CLI indirdikten sonra komut sayfasını açıp aws configure yazdığımızda bizden ACCESS KEY, SECRET ACCESS KEY isteyecektir.Daha sonra region name ve output formatı girmemiz istenecektir.Bu aşamalardan sonra artık konsolun IAM hesabımıza erişimi tamamlanmıştır.

AWS IAM’ DE SESSİON TOKEN VE ÖNEMİ

Session token, geçici bir erişim kimliği, gizli erişim anahtarı ve geçici bir güvenlik tokeni içeren bir kimlik bilgisidir. Bu tokenler, normalde uzun süreli kullanılan erişim anahtarlarına tercih edilir, çünkü daha güvenli ve sınırlı bir süre için geçerlidirler.Bir kullanıcı sisteme giriş yapıp işlem yaptığı zaman sisteme access key ve secret access key gönderir.Sistem AWS de böyle bir kullanıcı var mı diye bakar ve eşleşirse kullanıcıya token oluşturur.Bundan sonraki işlemlerini token süresi bitene kadar o token üzerinden yapar.

Session tokenları genellikle şu senaryolarda kullanılır:

  1. Geçici erişim: Bir kullanıcının normalde sahip olmadığı bir kaynağa geçici olarak erişmesi gerektiğinde.
  2. Güvenlik gereksinimleri: Daha düşük erişim hakkına sahip geçici bir kimlik kullanarak riski azaltmak için.

Bu tokenlar, kullanıcının belirli bir oturum süresi boyunca geçerli olan ve belirli bir oturum süresi sona erdikten sonra geçersiz hale gelen geçici kimlik bilgilerini sağlar. Bu, güvenlik ve erişim yönetimi açısından önemlidir çünkü tokenlar sınırlı bir süre için geçerlidir ve oturum süresi sona erdikten sonra yeniden kullanılamazlar, bu da güvenlik açıklarını azaltır.

AWS SDK

AWS SDK, Amazon Web Services’in geliştiricilere sunduğu yazılım geliştirme kiti anlamına gelir. AWS SDK’ları, farklı programlama dillerinde (örneğin, Python, Java, JavaScript, .NET, Ruby, Go, PHP, ve diğerleri) AWS hizmetlerine erişmek ve bu hizmetlerle etkileşimde bulunmak için kullanılan kütüphanelerdir.

Örneğin; Python’da AMAZON tarafından sağlanan“boto3” kütüphanesi ile hesabımıza erişip yönetebiliriz.Python da pip install boto3 ile kütüphanemizi indirip, import ettikten sonra s3 bucket oluşturabilir,dosya indirebilir,yükleyebilir,silebilir,kopyalayabiliriz.Veya EC2 örnekleri oluşturup yönetebiliriz.Ve daha benzer birçok işlemi Python da boto3 kütüphanesi ile AWS hesabımıza erişerek programatik olarak yapabiliriz.Bunun bize zaman olarak kazancı kayda değer olacaktır.

Kaynakça:

--

--