AWS IAM – Kimlik ve Erişim Yönetimi

There are lots of documentation(blog posts etc.) about AWS in English that’s why I have been writing in Turkish. I hope this will be informative for Turkish readers.
Regards.

Merhaba,

Kimlik ve Erişim Yönetimi(Identity and Access Management – IAM) servisi, BT ekibinizin aws konsolundan veya API üzerinden AWS kaynaklarına erişimini yönetmenizi sağlayan amazon web servisidir. Servis, federasyon desteği sayesinde mevcut yapınızdaki identiy store’da(Ör: MS AD , OpenLdap) tanımlı kullanıcı hesapları ile AWS kaynaklarına erişimi yapılandırmanızı,kontrol etmenizi ve yönetmenizi de sağlar.

IAM servisi, aws sisteminize güvenli ve kontrollü erişiminiz için çeşitli seçenekler sunar. Bu seçenekleri genel olarak aşağıdaki kategorilerde inceleyebiliriz.

Users & Access Keys: AWS sisteminize bağlanacak her birey için IAM user oluşturabilirsiniz. User’lara password veya access key atayabilirsiniz. Password veya access key arasında seçim yapabilirsiniz. Kullanıcınız aws konsoluna bağlanacaksa ona password verebilirsiniz. Kullanıcı API üzerinden bağlanacaksa ona access key tedarik edebilirsiniz. Böylelikle ihtiyaca yönelik erişim biçimini sağlamış olursunuz.

Groups: IAM grupları oluşturacak talep edilen yetkileri grup’lara atayabilirsiniz. Kullanıcıları ilgili gruplara üye yapabilirsiniz.

Permissions: Yetki yaklaşımında amaç, ihtiyacı karşılacak en az yetkiyi sağlamaktır. Burada da durum aynıdır.

Örnek bir policy aşağıdaki gibidir.

{
“Version”:”2012-10-17″,
“Statement”:[{
“Effect”:”Allow”, ————————————–>
Yöneticinin belirlemesi gereken alan
“Action”:”s3:ListBucket”, ——————————>
Yöneticinin belirlemesi gereken alan
“Resource”:”arn:aws:s3:::example_bucket”——>
Yöneticinin belirlemesi gereken alan
}]
}

Auditing: AWS CloudTrail erişimi gözleyebilirsiniz.

Passwords: User’larınıza ve özellikle Root hesabınıza güçlü parolalar vermelisiniz!

Password Rotation: Belirli aralıklarla parolaları değiştirmelisiniz. Bu konuda bir politika belirlemelisiniz.

clip_image002

Multi-Factor Authentication: Root account’unuz için mutlaka MFA kullanmalısınız! Aslında her account için MFA kullanmalısınız 🙂

Roles: Federasyon senaryosunda, 3rd parti tedarikçilerin sisteminize bağlanması senaryosunda vb. IAM role’ler ile yetkileri delege edebilirsiniz. “Role” ilgili aws kaynağına erişim için gereken yetkilerin toplanmış bir kümesidir. İzimler role’e verilir. “Role” user’lar tarafından, saml(security assertion markup landuage) identity provider’lar tarafından vb. kullanılabilir.

IAM servisinden faydalanırken yapılan konfigürasyonların ROOT hesabını etkilemediğini unutmayız!

IAM servisini AWS web console’undan aşağıdaki menüleri kullanarak faydalanabilirsiniz.

clip_image004

Üstte gösterilen IAM users sign-in adresini değiştirebilirsiniz. Test ortamımdaki link aşağıdaki gibidir.

clip_image005

Çeşitli testler için bir kaç IAM objesi oluşturdum. Bahsedeyim.

Bir adet IAM group objesi oluşturdum.Group’un bilgileri aşağıdaki gibi.

ARN: arn:aws:iam::Account_Number:group/IAMbarisCloudFrontAdmins

Group ismi : IAMbarisCloudFrontAdmins

Group’un yetkili olduğu aws kaynağı : CloudFront Full Access

clip_image007

Bir IAM User objesi oluştudum. User’ın bilgileri aşağıdaki gibidir.

ARN: arn:aws:iam::Account_Number:user/IAMbarisCloudFront01

ARN –> Amazon Resource Number

Bu kullanıcıyı üstteki gruba üye yaptım. User’a doğrudan bir policy uygulamadım!

clip_image009

IAM servisinde ön tanımlı policy’ler mevcut. Ön tanımlı policyler’de servisler için full access ve read only access olmak üzere iki kırılım mevcut. Bunları inceleyerek custom policy’ler oluşturabilirsiniz.

Örneğin aşağıda paylaştığım ön tanımlı policy;

{

“Version”: “2012-10-17”,

“Statement”: [

{

“Action”: [

“cloudwatch:DescribeAlarmHistory”,

“cloudwatch:DescribeAlarms”,

“cloudwatch:DescribeAlarmsForMetric”,

“cloudwatch:GetMetricStatistics”,

“cloudwatch:ListMetrics”,

“datapipeline:DescribeObjects”,

“datapipeline:DescribePipelines”,

“datapipeline:GetPipelineDefinition”,

“datapipeline:ListPipelines”,

“datapipeline:QueryObjects”,

“dynamodb:BatchGetItem”,

“dynamodb:DescribeTable”,

“dynamodb:GetItem”,

“dynamodb:ListTables”,

“dynamodb:Query”,

“dynamodb:Scan”,

“sns:ListSubscriptionsByTopic”,

“sns:ListTopics”

],

“Effect”: “Allow”,

“Resource”: “*”

}

]

}

dynamodb amazon web servisi için read only access izni veriyor. Aşağıdaki yapılandırma menülerinden biri ile ilerleyerek custom policy’ler oluşturabilirsiniz.

clip_image011

Policy generator’ın kullanımı oldukça kolay. Biraz vakit ayırarak talebinize uygun policy’ler hazırlayabilirsiniz.

IAM user’nı kullanarak aws kaynaklarına erişim için password & access key kullanımından bahsetmiştim. User’a password ataması yaptım.

clip_image013

AWS console’una oluşturduğum IAM User ile giriş yapayım ve erişebildiği alanları gözleyeyim.

clip_image015

AWS kaynaklarından EC2 dashboard erişmeye çalıştığımda durum üstteki gibidir.

Benzer şekilde S3 bucket tarafında da durum aşağıdaki gibidir.

clip_image017

AWS Route 53 tarafında da durum aynıdır.

clip_image019

Kullanıcımızın sadece AWS CloudFront’a yetkisi olduğu için üstte örneklendirdiğim servislere erişemedi! CloudFront tarafında full access izninden dolayı cloudfront kapsamındaki her işlemi yapabilmektedir.

Bu kullanıcı için password korumasının dışında bir factor daha ekleyelim. Multi-Factor authentication’ını devreye alalım.

clip_image021

Smart Device’ıma, üstteki listeye uygun uygulamayı kurdum. Uygulama kurulumundan sonra aşağıdaki adımları yaparak daha önce oluşturduğum IAM user üzerinde MFA servisini devreye alabilirsiniz.

clip_image023

Manage MFA Device ile devam.

clip_image025

Virtual MFA ile devam.

clip_image027

Üstteki quick response code’u kullanarak devam edebilirsiniz. Alttaki code1 ve 2 kutucuğuna, uygulamada üretilen iki ardışık code’u yazarak activation işlemini tamamlayabilirsiniz.

clip_image029

Sisteme giriş yaparken doldurmanız gereken MFA kodunu, smart device’ınızdaki uygulamayı kullanarak üretiyorsunuz ve yetkiniz dahilinde multi-factor authentication ile aws kaynaklarına erişiyorsunuz. Root hesabınızda MFA’i devreye almanız önerilir! IAM servisinden genel hatları ile bahsetmiş oldum. Sonraki yazımda AWS IAM ve Microsoft Active Directory Federation Service entegrasyonundan bahsedeceğim.

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://aws.amazon.com/iam/details/manage-federation/

http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html

http://aws.amazon.com/iam/details/mfa/

http://blogs.aws.amazon.com/security/

http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html

http://docs.aws.amazon.com/IAM/latest/UserGuide/Credentials-Permissions-examples.html

One Reply to “AWS IAM – Kimlik ve Erişim Yönetimi”

Leave a Reply

Your email address will not be published. Required fields are marked *