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.
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.
Üstte gösterilen IAM users sign-in adresini değiştirebilirsiniz. Test ortamımdaki link aşağıdaki gibidir.
Ç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
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!
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.
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.
AWS console’una oluşturduğum IAM User ile giriş yapayım ve erişebildiği alanları gözleyeyim.
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.
AWS Route 53 tarafında da durum aynıdır.
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.
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.
Manage MFA Device ile devam.
Virtual MFA ile devam.
Ü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.
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
1 comment found