AWS - Basic Information
Last updated
Last updated
AWS'de, kuruluşunuzun tüm hesaplarının ebeveyn konteyneri olan bir kök hesap bulunmaktadır. Bununla birlikte, kaynakları dağıtmak için bu hesabı kullanmanıza gerek yoktur, farklı AWS altyapılarını birbirinden ayırmak için başka hesaplar oluşturabilirsiniz.
Bu, bir güvenlik açısından çok ilginçtir, çünkü bir hesap diğer hesapların kaynaklarına erişemez (özel olarak oluşturulmadıkça), bu şekilde dağıtımlar arasında sınırlar oluşturabilirsiniz.
Bu nedenle, bir kuruluşta iki tür hesap bulunur (AWS hesaplarından ve Kullanıcı hesaplarından bahsediyoruz): yönetim hesabı olarak belirlenen tek bir hesap ve bir veya daha fazla üye hesap.
Yönetim hesabı (kök hesap), kuruluşu oluşturmak için kullandığınız hesaptır. Kuruluşun yönetim hesabından aşağıdaki işlemleri yapabilirsiniz:
Kuruluşta hesap oluşturma
Kuruluşa diğer mevcut hesapları davet etme
Hesapları kuruluştan kaldırma
Davetleri yönetme
Kuruluş içindeki varlıklara (kökler, OU'lar veya hesaplar) politikalar uygulama
Desteklenen AWS hizmetleriyle entegrasyonu etkinleştirerek tüm hesaplarda hizmet işlevselliği sağlama.
Bu kök kullanıcı olarak giriş yapmak, bu kök hesap/organizasyonu oluşturmak için kullanılan e-posta ve şifre ile mümkündür.
Yönetim hesabı, bir ödeme hesabının sorumluluklarını üstlenir ve üye hesapların biriktirdiği tüm ücretleri ödemekten sorumludur. Bir kuruluşun yönetim hesabını değiştiremezsiniz.
Üye hesaplar, bir kuruluşun geri kalan tüm hesaplarını oluşturur. Bir hesap aynı anda yalnızca bir kuruluşun üyesi olabilir. Bir hesaba bir politika ekleyerek yalnızca o hesaba kontroller uygulayabilirsiniz.
Üye hesaplar geçerli bir e-posta adresi kullanmalı ve bir isim sahip olabilir, genel olarak faturalandırmayı yönetemezler (ancak erişime sahip olabilirler).
Hesaplar Organizasyon Birimleri (OU) içinde gruplandırılabilir. Böylece, Organizasyon Birimi için politikalar oluşturabilir ve bu politikaların tüm alt hesaplara uygulanmasını sağlayabilirsiniz. Unutmayın ki bir OU, diğer OU'ları alt birim olarak içerebilir.
Bir hizmet kontrol politikası (SCP), SCP'nin etkilendiği hesaplardaki kullanıcıların ve rollerin kullanabileceği hizmetleri ve eylemleri belirleyen bir politikadır. SCP'ler, IAM izin politikalarına benzer ancak herhangi bir izin vermezler. Bunun yerine, SCP'ler bir kuruluş, organizasyon birimi (OU) veya hesap için maksimum izinleri belirtir. Bir SCP'yi kuruluş köküne veya bir OU'ya eklediğinizde, SCP, üye hesaplardaki varlıklar için izinleri sınırlar.
Bu, kök kullanıcının bile durdurulabileceği tek yoldur. Örneğin, kullanıcıların CloudTrail'i devre dışı bırakmasını veya yedeklemeleri silmesini engellemek için kullanılabilir. Bunu atlamak için, SCP'leri yapılandıran ana hesabın da ele geçirilmesi gerekmektedir (ana hesap engellenemez).
SCPler yalnızca hesaptaki ilgili kişileri kısıtlar, bu nedenle diğer hesaplar etkilenmez. Bu, bir SCP'nin s3:GetObject
reddini kullanmanın, hesabınızdaki genel bir S3 kovasına erişimi durdurmaya yetmeyeceği anlamına gelir.
SCP örnekleri:
Kök hesabı tamamen reddet
Yalnızca belirli bölgelere izin ver
Yalnızca beyaz listelenen hizmetlere izin ver
GuardDuty, CloudTrail ve S3 Genel Blok Erişimini devre dışı bırakmayı reddet
Güvenlik/olay yanıt rollerinin silinmesini veya değiştirilmesini reddet
Yedeklemelerin silinmesini reddet
IAM kullanıcıları ve erişim anahtarları oluşturmayı reddet
JSON örneklerini https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html adresinde bulabilirsiniz.
Amazon Kaynak Adı (ARN), AWS içindeki her kaynağın benzersiz adıdır ve aşağıdaki gibi oluşturulur:
AWS'de 4 bölüm bulunmaktadır, ancak bunları çağırmak için sadece 3 yol vardır:
AWS Standart: aws
AWS Çin: aws-cn
AWS ABD halka açık İnternet (GovCloud): aws-us-gov
AWS Gizli (US Sınıflandırılmış): aws
IAM, AWS hesabınız içinde Kimlik Doğrulama, Yetkilendirme ve Erişim Kontrolü yönetmenize olanak sağlayan bir hizmettir.
Kimlik Doğrulama - Bir kimliği tanımlama ve bu kimliğin doğrulanması sürecidir. Bu süreç, Tanımlama ve Doğrulama olarak alt bölümlere ayrılabilir.
Yetkilendirme - Bir kimliğin doğrulandıktan sonra bir sistem içinde neye erişebileceğini belirler.
Erişim Kontrolü - Güvenli bir kaynağa erişimin nasıl ve hangi süreçte sağlandığıdır.
IAM, AWS hesabınızdaki kaynaklarınıza kimliklerin kimlik doğrulama, yetkilendirme ve erişim kontrol mekanizmalarını yönetme, kontrol etme ve yönetme yeteneğiyle tanımlanabilir.
Amazon Web Services (AWS) hesabı oluşturduğunuzda, hesapta tüm AWS hizmetlerine ve kaynaklarına tam erişime sahip olan tek bir oturum açma kimliğiyle başlarsınız. Bu, AWS hesabının kök kullanıcısı olarak adlandırılır ve hesabı oluşturmak için kullandığınız e-posta adresi ve şifreyle oturum açılarak erişilir.
Yeni bir yönetici kullanıcının, kök kullanıcıdan daha az izne sahip olacağını unutmayın.
Güvenlik açısından, başka kullanıcılar oluşturmanız ve bunu kullanmaktan kaçınmanız önerilir.
IAM kullanıcısı, AWS'de oluşturduğunuz ve AWS ile etkileşimde bulunan kişiyi veya uygulamayı temsil eden bir varlıktır. AWS'deki bir kullanıcı adı ve kimlik bilgileri (şifre ve en fazla iki erişim anahtarı) içerir.
Bir IAM kullanıcısı oluşturduğunuzda, uygun izin politikalarına sahip bir kullanıcı grubunun bir üyesi yaparak izinler verirsiniz (önerilen) veya kullanıcıya doğrudan politikalar ekleyerek izinler verirsiniz.
Kullanıcılar, konsol üzerinden giriş yapmak için MFA etkinleştirilebilir. MFA etkinleştirilmiş kullanıcıların API anahtarları MFA tarafından korunmaz. Kullanıcıların API anahtarlarının erişimini MFA kullanarak sınırlamak istiyorsanız, belirli eylemleri gerçekleştirmek için politikada MFA'nın bulunması gerektiğini belirtmeniz gerekir (örnek burada).
Erişim Anahtarı Kimliği: AKHDNAPO86BSHKDIRYT gibi 20 rastgele büyük harf ve sayı kombinasyonu
Gizli erişim anahtarı kimliği: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU gibi 40 rastgele büyük ve küçük harf kombinasyonu (kaybolan gizli erişim anahtarı kimlikleri geri alınamaz).
Erişim Anahtarını değiştirmeniz gerektiğinde izlemeniz gereken süreç şudur: Yeni bir erişim anahtarı oluştur -> Yeni anahtarı sisteme/uygulamaya uygula -> orijinalini etkisizleştir olarak işaretle -> Yeni erişim anahtarının çalıştığını test et ve doğrula -> Eski erişim anahtarını sil
Bu, mevcut yöntemlerinize (şifre gibi) ek olarak kimlik doğrulama için ek bir faktör oluşturmak için kullanılır, böylece çok faktörlü bir kimlik doğrulama seviyesi oluşturulur. Ücretsiz bir sanal uygulama veya fiziksel bir cihaz kullanabilirsiniz. AWS'de bir MFA etkinleştirmek için ücretsiz olarak google kimlik doğrulama gibi uygulamaları kullanabilirsiniz.
MFA koşullarına sahip politikalar aşağıdakilere eklenir:
Bir IAM kullanıcısı veya grup
Bir Amazon S3 kovası, Amazon SQS kuyruğu veya Amazon SNS konusu gibi bir kaynak
Bir kullanıcı tarafından alınabilecek bir IAM rolünün güven politikası
MFA kontrolü yapan bir kaynağa CLI üzerinden erişmek isterseniz, GetSessionToken
çağrısı yapmanız gerekir. Bu, MFA hakkında bilgi içeren bir belirteç verir.
AssumeRole
kimlik bilgileri bu bilgiyi içermez.
Burada belirtildiği gibi, MFA'nın kullanılamadığı birçok farklı durum vardır.
IAM kullanıcı grubu, birden fazla kullanıcıya aynı anda politikaları eklemek için bir yol sağlar, bu da bu kullanıcıların izinlerini yönetmeyi kolaylaştırabilir. Roller ve gruplar bir grubun parçası olamaz.
Bir kimlik tabanlı politikayı bir kullanıcı grubuna ekleyebilirsiniz, böylece kullanıcı grubundaki tüm kullanıcılar politikanın izinlerini alır. Bir kullanıcı grubunu (örneğin bir kaynak tabanlı politika gibi) bir Principal
olarak tanımlayamazsınız çünkü gruplar izinlerle ilgilidir, kimlik doğrulama ile ilgili değildir ve prensipler kimlik doğrulanan IAM varlıklarıdır.
İşte kullanıcı gruplarının bazı önemli özellikleri:
Bir kullanıcı grubu, birçok kullanıcıyı içerebilir ve bir kullanıcı, birden fazla gruba ait olabilir.
Kullanıcı grupları iç içe olamaz; sadece kullanıcıları, başka kullanıcı gruplarını içeremezler.
AWS hesabındaki tüm kullanıcıları otomatik olarak içeren bir varsayılan kullanıcı grubu yoktur. Böyle bir kullanıcı grubuna sahip olmak istiyorsanız, bunu oluşturmalı ve her yeni kullanıcıyı buna atamalısınız.
Bir AWS hesabındaki IAM kaynaklarının sayısı ve boyutu, grupların sayısı ve bir kullanıcının üye olabileceği grupların sayısı gibi, sınırlıdır. Daha fazla bilgi için IAM ve AWS STS kotaları'na bakın.
Bir IAM rolü, AWS'de ne yapabileceğini ve yapamayacağını belirleyen izin politikalarına sahip bir kullanıcı gibi çok benzerdir. Ancak, bir rolün herhangi bir kimlik bilgisi (parola veya erişim anahtarları) ile ilişkili değildir. Bir kişiyle benzersiz olarak ilişkilendirilmek yerine, bir rol, ihtiyacı olan herhangi bir kişi tarafından geçici olarak üstlenilebilir (ve yeterli izinlere sahip olabilir). Bir IAM kullanıcısı, belirli bir görev için farklı izinleri geçici olarak üstlenebilir. Bir rol, IAM yerine harici bir kimlik sağlayıcı kullanarak oturum açan bir federasyon kullanıcısına atanabilir.
Bir IAM rolü, iki tür politikadan oluşur: Boş olamayan bir güven politikası, rolü kimin üstlenebileceğini tanımlayan ve boş olamayan bir izin politikası, rolün neye erişebileceğini tanımlayan.
AWS Güvenlik Kimlik Doğrulama Hizmeti (STS), sınırlı ayrıcalıklı geçici kimlik bilgilerinin verilmesini kolaylaştıran bir web hizmetidir. Özellikle şunlar için uyarlanmıştır:
Geçici kimlik bilgileri çoğunlukla IAM rolleriyle kullanılır, ancak başka kullanımları da vardır. Standart IAM kullanıcınızın izinlerinden daha kısıtlı bir izin setine sahip geçici kimlik bilgileri isteyebilirsiniz. Bu, daha kısıtlı kimlik bilgileriyle izin verilmeyen görevleri yanlışlıkla gerçekleştirmenizi engeller. Geçici kimlik bilgilerinin bir avantajı, kimlik bilgilerinin belirli bir süre sonra otomatik olarak süresinin dolmasıdır. Kimlik bilgilerinin geçerli olduğu süreyi kontrol edebilirsiniz.
İzinleri atamak için kullanılır. İki tür vardır:
AWS tarafından önceden yapılandırılmış yönetilen politikalar
Müşteri tarafından yapılandırılan politikalar: Siz tarafından yapılandırılır. AWS tarafından önceden yapılandırılmış politikalara dayalı politikalar oluşturabilirsiniz (birini değiştirerek ve kendi politikanızı oluşturarak), politika oluşturucuyu (izinleri verme ve reddetme konusunda size yardımcı olan bir GUI görünümü) veya kendi politikanızı yazarak.
Varsayılan erişim reddedilir, açık bir rol belirtilmişse erişim sağlanır. Tek bir "Reddetme" varsa, "İzin Ver"i geçersiz kılar, yalnızca AWS hesabının kök güvenlik kimlik bilgilerini kullanan istekler için (varsayılan olarak izin verilenler) geçerlidir.
Global alanlar, herhangi bir hizmet için koşullar için kullanılabilecek belgeler burada belgelenmiştir. Hizmet başına koşullar için kullanılabilecek belirli alanlar burada belgelenmiştir.
Bu tür politikalar, bir kullanıcıya, gruba veya role doğrudan atanır. Ardından, diğerleri gibi Politikalar listesinde görünmezler. Satır içi politikalar, bir politika ile uygulanan kimlik arasında katı bir birbirine karşılık ilişkisini sürdürmek isterseniz kullanışlıdır. Örneğin, bir politikadaki izinlerin yanlışlıkla amaçlanan kimlik yerine başka bir kimliğe atandığından emin olmak istersiniz. Bir satır içi politika kullandığınızda, politikadaki izinler yanlışlıkla yanlış kimliğe eklenemez. Ayrıca, AWS Yönetim Konsolu'nu kullanarak o kimliği silerseniz, kimliğe gömülü politikalar da silinir. Çünkü bunlar temel varlık parçasıdır.
Bunlar, kaynaklarda tanımlanabilen politikalardır. AWS'nin tüm kaynakları bunları desteklemez.
Bir ilgiliye açık bir reddi olmadığı ve bir kaynak politikası onlara erişim izni verdiği sürece, izin verilirler.
IAM sınırları, bir kullanıcının veya rolün erişimine sınırlama getirmek için kullanılabilir. Bu şekilde, farklı bir politika tarafından kullanıcıya verilen farklı bir izin kümesi olsa bile, işlem başarısız olur ve kullanmaya çalışırsa.
Bir sınırlama, kullanıcıya eklenen bir politika yalnızca kullanıcının veya rolün sahip olabileceği maksimum izin seviyesini belirtir. Yani, kullanıcının Yönetici erişimi olsa bile, sınırlama onun yalnızca S3 kovalarını okuyabileceğini belirtiyorsa, yapabileceği maksimum budur.
Bu, SCPs ve en az ayrıcalık ilkesini takip etmek, kullanıcıların ihtiyaçlarından daha fazla izne sahip olmadığından emin olmanın yollarıdır.
Bir oturum politikası, bir rolün bir oturumda varsayıldığı zaman ayarlanan bir politikadır. Bu, oturum politikasının izinleri vermez, ancak politikada belirtilenlere kısıtlar (maksimum izinler rolün sahip olduğu izinlerdir).
Bu, güvenlik önlemleri için kullanışlıdır: Bir yönetici çok ayrıcalıklı bir rolü varsaydığında, oturum politikasında yalnızca politikada belirtilen izinlere sınırlama getirebilir, böylece oturum tehlikeye atıldığında sadece belirtilen izinlere sahip olur.
Not: Varsayılan olarak, AWS üçüncü nedenlerden dolayı oluşturulacak oturumlar için oturum politikaları ekleyebilir. Örneğin, kimlik doğrulaması yapılmamış cognito varsayılan rollerinde (gelişmiş kimlik doğrulama kullanarak) AWS, oturum politikası ile oturum kimlik bilgileri oluşturur ve bu oturumun erişebileceği hizmetleri aşağıdaki listede sınırlar.
Bu nedenle, "... çünkü hiçbir oturum politikası izin vermiyor ..." hatasıyla karşılaşırsanız ve rolün eylemi gerçekleştirmek için erişimi varsa, bunun nedeni bir oturum politikasının engellemesidir.
Kimlik federasyonu, AWS'ye dış kaynaklı kimlik sağlayıcılardan gelen kullanıcıların AWS kaynaklarına güvenli bir şekilde erişmesine olanak tanırken geçerli bir IAM kullanıcı hesabından AWS kullanıcı kimlik bilgilerini sağlamadan erişmelerini sağlar. Bir kimlik sağlayıcının bir örneği, kendi kurumsal Microsoft Active Directory'niz (SAML aracılığıyla) veya OpenID hizmetleri (örneğin Google) olabilir. Federasyon erişimi, içindeki kullanıcıların AWS'ye erişmesine izin verir.
Bu güveni yapılandırmak için, IAM Kimlik Sağlayıcı oluşturulur (SAML veya OAuth) ve diğer platforma güven sağlar. Ardından, en az bir IAM rolü (güvenen) Kimlik Sağlayıcıya atanır. Güvenilen platformdan bir kullanıcı AWS'ye erişirse, belirtilen rol olarak erişecektir.
Ancak genellikle üçüncü taraf platformdaki kullanıcının grubuna bağlı olarak farklı bir rol vermek isteyeceksiniz. Ardından, birkaç IAM rolü üçüncü taraf Kimlik Sağlayıcıya güvenebilir ve üçüncü taraf platform, kullanıcıların bir rolü veya diğerini üstlenmesine izin veren taraftır.
AWS IAM Kimlik Merkezi (AWS Single Sign-On'un halefi), AWS Kimlik ve Erişim Yönetimi (IAM) yeteneklerini genişleterek, kullanıcıların AWS hesaplarına ve bulut uygulamalarına erişimlerini yöneten kullanıcıların yönetimini bir araya getiren merkezi bir yer sağlar.
Giriş alanı <kullanıcı_girişi>.awsapps.com
gibi bir şey olacak.
Kullanıcıları giriş yapmak için kullanılabilecek 3 kimlik kaynağı vardır:
Kimlik Merkezi Dizini: Normal AWS kullanıcıları
Active Directory: Farklı bağlayıcıları destekler
Harici Kimlik Sağlayıcı: Tüm kullanıcılar ve gruplar harici bir Kimlik Sağlayıcıdan gelir (IdP)
Kimlik Merkezi dizini durumunda, Kimlik Merkezi bir kullanıcılar ve gruplar listesine sahip olacak ve bunlara kuruluşun tüm hesaplarından herhangi birine politikalar atayabilecektir.
Kimlik Merkezi kullanıcı/grubuna bir hesaba erişim vermek için, Kimlik Merkezine güvenen bir SAML Kimlik Sağlayıcı oluşturulacak ve belirtilen politikalarla birlikte Kimlik Sağlayıcıya güvenen bir rol hedef hesapta oluşturulacaktır.
IAM Kimlik Merkezi aracılığıyla oluşturulan roller için inline politikalar aracılığıyla izinler vermek mümkündür. AWS Kimlik Merkezi'nde inline politikalarla verilen hesaplarda oluşturulan roller, bu izinlere sahip olacaktır ve bu izinler AwsSSOInlinePolicy
adlı bir inline politikada bulunacaktır.
Bu nedenle, AwsSSOInlinePolicy
adında bir inline politikaya sahip 2 rol görürseniz, aynı izinlere sahip olmadığı anlamına gelir.
Bir kullanıcı (güvenen), bazı politikalarla birlikte Hesaplar Arası Rol oluşturabilir ve ardından, başka bir kullanıcıya (güvenilen) hesabına erişim izni verebilir, ancak yalnızca yeni rol politikalarında belirtilen erişime sahip olur. Bunun için sadece yeni bir Rol oluşturmanız ve Hesaplar Arası Rol'ü seçmeniz yeterlidir. Hesaplar Arası Erişim için iki seçenek sunar. Sahip olduğunuz AWS hesapları arasında erişim sağlamak ve sahip olduğunuz bir hesap ile üçüncü taraf bir AWS hesabı arasında erişim sağlamak. Bu güveni oluşturmak için güvenilen kullanıcıyı belirtmek ve bazı genel bir şeyler koymamak önerilir, çünkü aksi takdirde federasyon kullanıcıları gibi diğer kimlik doğrulanan kullanıcılar da bu güveni kötüye kullanabilir.
Desteklenmeyenler:
Güven İlişkileri
AD Yönetim Merkezi
Tam PS API desteği
AD Geri Dönüşüm Kutusu
Grup Yönetilen Hizmet Hesapları
Şema Uzantıları
İşletim Sistemine veya Örneklerine Doğrudan Erişim Yok
Uygulama, geçici kimlik bilgileri oluşturmak için AssumeRoleWithWebIdentity'yi kullanır. Bununla birlikte, bu, AWS konsoluna erişim sağlamaz, yalnızca AWS içindeki kaynaklara erişim sağlar.
Minimum uzunluk ve şifre gereksinimleri gibi seçeneklerle bir şifre politikası ayarlayabilirsiniz.
Mevcut kimlik bilgileri hakkında bilgi içeren "Kimlik Bilgileri Raporunu" indirebilirsiniz (kullanıcı oluşturma zamanı, şifre etkin mi...). Kimlik bilgileri raporu, en fazla dört saatte bir olmak üzere sık sık oluşturulabilir.
AWS Kimlik ve Erişim Yönetimi (IAM), tüm AWS hizmetlerine yönelik inceden inceye erişim kontrolü sağlar. IAM ile kimin hangi hizmetlere ve kaynaklara erişebileceğini ve hangi koşullar altında belirleyebilirsiniz. IAM politikaları ile iş gücünüz ve sistemlerinizin izinlerini yöneterek en az ayrıcalıklı izinleri sağlarsınız.
Bu sayfada anahtarların doğasına bağlı olarak IAM Kimlik Öneklerini bulabilirsiniz:
ABIA | |
ACCA | Bağlama özgü kimlik bilgisi |
AGPA | Kullanıcı grubu |
AIDA | IAM kullanıcısı |
AIPA | Amazon EC2 örnek profili |
AKIA | Erişim anahtarı |
ANPA | Yönetilen politika |
ANVA | Yönetilen politikadaki sürüm |
APKA | Genel anahtar |
AROA | Rol |
ASCA | Sertifika |
ASIA | Geçici (AWS STS) erişim anahtar kimlikleri bu öneki kullanır, ancak yalnızca gizli erişim anahtarı ve oturum belirteciyle birlikte benzersizdir. |
Aşağıdaki yetkiler, çeşitli meta veri okuma erişimini sağlar:
arn:aws:iam::aws:policy/SecurityAudit
arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
codebuild:ListProjects
config:Describe*
`cloudformation:ListStack
Eğer farklı AWS hesaplarına erişmeniz gerekiyorsa ve profiliniz bu hesaplarda bir rolü üstlenme yetkisi verildiyse, her seferinde STS'yi manuel olarak çağırmak (aws sts assume-role --role-arn <role-arn> --role-session-name sessname
) ve kimlik bilgilerini yapılandırmak zorunda değilsiniz.
~/.aws/config
dosyasını kullanarak hangi rollerin üstlenileceğini belirtebilirsiniz ve ardından --profile
parametresini kullanarak (kullanıcı için assume-role
işlemi şeffaf bir şekilde gerçekleştirilecektir) normal şekilde devam edebilirsiniz.
Bir yapılandırma dosyası örneği:
Bu yapılandırma dosyasıyla aws cli'yi aşağıdaki gibi kullanabilirsiniz:
Eğer tarayıcı için buna benzer bir şey arıyorsanız, AWS Extend Switch Roles adlı eklentiyi kontrol edebilirsiniz.