Translated ['src/pentesting-cloud/aws-security/aws-services/aws-kms-enum

This commit is contained in:
Translator
2025-07-03 14:54:20 +00:00
parent 3b3345cca3
commit 978cd9899c
@@ -4,21 +4,21 @@
## KMS - Anahtar Yönetim Servisi
AWS Anahtar Yönetim Servisi (AWS KMS), kullanıcıların **müşteri anahtarlarını oluşturmasını ve yönetmesini** kolaylaştıran bir yönetilen hizmet olarak sunulmaktadır. Bu müşteri anahtarları, kullanıcı verilerinin şifrelenmesinde kritik bir rol oynamaktadır. AWS KMS'in dikkat çekici bir özelliği, müşteri anahtarlarının çoğunlukla **donanım güvenlik modülleri** (HSM'ler) tarafından **güvence altına alınmasıdır**, bu da şifreleme anahtarlarının korunmasını artırır.
AWS Anahtar Yönetim Servisi (AWS KMS), kullanıcıların **müşteri anahtarlarını oluşturmasını ve yönetmesini** kolaylaştıran yönetilen bir hizmet olarak sunulmaktadır. Bu müşteri anahtarları, kullanıcı verilerinin şifrelenmesinde kritik bir rol oynamaktadır. AWS KMS'in dikkat çekici bir özelliği, müşteri anahtarlarının çoğunlukla **donanım güvenlik modülleri** (HSM'ler) tarafından **güvence altına alınmasıdır**, bu da şifreleme anahtarlarının korunmasını artırır.
KMS, **simetrik kriptografi** kullanır. Bu, **verileri dinlenme halinde şifrelemek için** kullanılır (örneğin, bir S3 içinde). Eğer **verileri iletim sırasında şifrelemeniz** gerekiyorsa, **TLS** gibi bir şey kullanmalısınız.
KMS, **bölgeye özgü bir hizmettir**.
**Amazon'daki yöneticilerin anahtarlarınıza erişimi yoktur**. Anahtarlarınızı geri alamazlar ve anahtarlarınızın şifrelenmesine yardımcı olamazlar. AWS, yalnızca işletim sistemini ve altında yatan uygulamayı yönetir; şifreleme anahtarlarımızı yönetmek ve bu anahtarların nasıl kullanılacağını yönetmek bizim sorumluluğumuzdur.
**Amazon'daki yöneticiler anahtarlarınıza erişemez**. Anahtarlarınızı geri alamazlar ve anahtarlarınızın şifrelenmesinde size yardımcı olamazlar. AWS, yalnızca işletim sistemini ve altında yatan uygulamayı yönetir; anahtarlarımızı yönetmek ve bu anahtarların nasıl kullanılacağını yönetmek bizim sorumluluğumuzdadır.
**Müşteri Anahtarları** (CMK): 4KB boyutuna kadar veri şifreleyebilir. Genellikle DEK'leri (Veri Şifreleme Anahtarları) oluşturmak, şifrelemek ve şifre çözmek için kullanılır. Daha sonra DEK'ler verileri şifrelemek için kullanılır.
**Müşteri Anahtarları** (CMK): Boyutu 4KB'a kadar olan verileri şifreleyebilir. Genellikle DEK'leri (Veri Şifreleme Anahtarları) oluşturmak, şifrelemek ve şifre çözmek için kullanılır. Daha sonra DEK'ler verileri şifrelemek için kullanılır.
Bir müşteri anahtarının (CMK) AWS KMS'deki anahtarın mantıksal bir temsili vardır. Anahtarın tanımlayıcıları ve diğer meta verilerin yanı sıra, oluşturulma tarihi, açıklama ve anahtar durumu gibi bilgiler de içerir; **CMK, verileri şifrelemek ve şifre çözmek için kullanılan anahtar materyalini içerir**. Bir CMK oluşturduğunuzda, varsayılan olarak AWS KMS, o CMK için anahtar materyalini oluşturur. Ancak, anahtar materyali olmadan bir CMK oluşturmayı seçebilir ve ardından kendi anahtar materyalinizi o CMK'ye içe aktarabilirsiniz.
Bir müşteri anahtarının (CMK) AWS KMS'deki anahtarın mantıksal bir temsilidir. Anahtarın tanımlayıcıları ve diğer meta verilerin yanı sıra, oluşturulma tarihi, açıklama ve anahtar durumu gibi bilgileri içerir; **CMK, verileri şifrelemek ve şifre çözmek için kullanılan anahtar materyalini içerir**. Bir CMK oluşturduğunuzda, varsayılan olarak AWS KMS, o CMK için anahtar materyalini oluşturur. Ancak, anahtar materyali olmadan bir CMK oluşturmayı seçebilir ve ardından kendi anahtar materyalinizi o CMK'ye içe aktarabilirsiniz.
İki tür anahtar vardır:
- **AWS yönetilen CMK'ler: Diğer hizmetler tarafından veri şifrelemek için kullanılır**. Oluşturulduğu bölgede, onu oluşturan hizmet tarafından kullanılır. Bu hizmette şifrelemeyi ilk kez uyguladığınızda oluşturulurlar. Her 3 yılda bir döner ve değiştirilmesi mümkün değildir.
- **AWS yönetilen CMK'ler: Diğer hizmetler tarafından verileri şifrelemek için kullanılır**. Oluşturulduğu bölgede, onu oluşturan hizmet tarafından kullanılır. Bu hizmette şifrelemeyi ilk kez uyguladığınızda oluşturulurlar. Her 3 yılda bir döner ve değiştirilmesi mümkün değildir.
- **Müşteri yönetici CMK'ler**: Esneklik, döngü, yapılandırılabilir erişim ve anahtar politikası. Anahtarları etkinleştirme ve devre dışı bırakma.
**Zarf Şifrelemesi**, Anahtar Yönetim Servisi (KMS) bağlamında: **verileri veri anahtarı ile şifrelemek ve ardından veri anahtarını anahtar ile şifrelemek için iki katmanlı hiyerarşi sistemi**.
@@ -29,9 +29,9 @@ Bunlar, **KMS'de bir anahtarı kimin kullanabileceğini ve erişebileceğini tan
**Varsayılan olarak:**
- KMS anahtarına erişim yönetimini sağlamak için **KMS anahtarını sahip olan AWS hesabının IAM'ine** erişim verir.
- KMS anahtarına erişimi yönetmek için **KMS anahtarını sahip olan AWS hesabının IAM'ine** erişim verir.
Diğer AWS kaynak politikalarından farklı olarak, bir AWS **KMS anahtar politikası, hesabın herhangi bir ilkesine otomatik olarak izin vermez**. Hesap yöneticilerine izin vermek için, **anahtar politikasının bu izni sağlayan açık bir ifade içermesi gerekir**, bu şekilde.
Diğer AWS kaynak politikalarından farklı olarak, bir AWS **KMS anahtar politikası, hesabın herhangi bir ilkesine otomatik olarak izin vermez**. Hesap yöneticilerine izin vermek için, **anahtar politikasının bu izni sağlayan açık bir ifadeyi içermesi gerekir**, bu şekilde.
- Hesaba izin vermeden (`"AWS": "arn:aws:iam::111122223333:root"`) IAM izinleri çalışmaz.
@@ -54,7 +54,7 @@ Diğer AWS kaynak politikalarından farklı olarak, bir AWS **KMS anahtar politi
}
```
> [!WARNING]
> Eğer **hesaba izin verilmişse** (`"arn:aws:iam::111122223333:root"`), hesaptan bir **prensip** **KMS anahtarını kullanmak için IAM izinlerine ihtiyaç duyacaktır**. Ancak, eğer bir rolün **ARN**'si **Anahtar Politikasında özel olarak izin verilmişse**, o rol **IAM izinlerine ihtiyaç duymaz**.
> Eğer **hesaba izin verilmişse** (`"arn:aws:iam::111122223333:root"`), hesabın bir **prensibi** KMS anahtarını kullanmak için **IAM izinlerine** ihtiyaç duyacaktır. Ancak, eğer bir rolün **ARN**'si **Anahtar Politikasında** **özellikle izin verilmişse**, o rol **IAM izinlerine** ihtiyaç duymaz.
<details>
@@ -63,7 +63,7 @@ Diğer AWS kaynak politikalarından farklı olarak, bir AWS **KMS anahtar politi
Bir politikanın özellikleri:
- JSON tabanlı belge
- Kaynak --> Etkilenen kaynaklar ("\*" olabilir)
- Kaynak --> Etkilenen kaynaklar (yıldız "\*" olabilir)
- Eylem --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (izinler)
- Etki --> İzin Ver / Reddet
- Prensip --> etkilenen arn
@@ -71,12 +71,12 @@ Bir politikanın özellikleri:
İzinler:
- AWS hesabınızdaki başka bir AWS prensibine izinlerinizi devretmenizi sağlar. Bunları AWS KMS API'lerini kullanarak oluşturmanız gerekir. CMK tanımlayıcısı, grantee prensibi ve gerekli işlem seviyesi (Decrypt, Encrypt, GenerateDataKey...) belirtilebilir.
- AWS hesabınız içindeki başka bir AWS prensibine izinlerinizi devretmenizi sağlar. Bunları AWS KMS API'lerini kullanarak oluşturmanız gerekir. CMK tanımlayıcısı, grantee prensibi ve gerekli işlem seviyesi (Decrypt, Encrypt, GenerateDataKey...) belirtilebilir.
- İzin oluşturulduktan sonra bir GrantToken ve GrantID verilir.
**Erişim**:
- **anahtar politikası** aracılığıyla -- Eğer bu mevcutsa, bu IAM politikasından **önceliklidir**.
- **anahtar politikası** aracılığıyla -- Eğer bu mevcutsa, bu **IAM politikasından** önceliklidir.
- **IAM politikası** aracılığıyla
- **izinler** aracılığıyla
@@ -88,23 +88,23 @@ Varsayılan anahtar yöneticisi:
- KMS'yi yönetme erişimine sahiptir ancak verileri şifreleme veya şifre çözme yetkisi yoktur.
- Sadece IAM kullanıcıları ve rolleri Anahtar Yöneticileri listesine eklenebilir (gruplar değil).
- Harici bir CMK kullanılıyorsa, Anahtar Yöneticileri anahtar materyalini içe aktarma iznine sahiptir.
- Harici bir CMK kullanılıyorsa, Anahtar Yöneticileri anahtar malzemesini içe aktarma iznine sahiptir.
### CMK'ların Döngüsü
- Aynı anahtar yerinde ne kadar uzun süre kalırsa, o anahtarla o kadar çok veri şifrelenir ve eğer o anahtar ihlal edilirse, o zaman veri kaybı alanı o kadar genişler. Ayrıca, anahtar aktif kaldıkça, ihlal edilme olasılığı artar.
- Aynı anahtar yerinde ne kadar uzun süre kalırsa, o anahtarla o kadar çok veri şifrelenir ve eğer o anahtar ihlal edilirse, o zaman veri için risk alanı o kadar genişler. Ayrıca, anahtar aktif kaldıkça, ihlal edilme olasılığı artar.
- **KMS, müşteri anahtarlarını her 365 günde bir döndürür** (veya istediğiniz zaman süreci manuel olarak gerçekleştirebilirsiniz) ve **AWS tarafından yönetilen anahtarlar her 3 yılda bir döndürülür** ve bu süre değiştirilemez.
- **Eski anahtarlar**, döngüden önce şifrelenmiş verileri çözmek için saklanır.
- Bir ihlal durumunda, anahtarın döndürülmesi tehdidi ortadan kaldırmaz çünkü ihlal edilen anahtarla şifrelenmiş tüm veriler çözülebilir. Ancak, **yeni veriler yeni anahtar ile şifrelenecektir**.
- Eğer **CMK** **devre dışı** veya **silinme bekliyor** durumdaysa, KMS **anahtar döndürme işlemi yapmayacaktır** ta ki CMK yeniden etkinleştirilene veya silme iptal edilene kadar.
- Eğer **CMK** **devre dışı** veya **silinme** **beklemede** ise, KMS **anahtar döndürme işlemi** gerçekleştirmeyecektir, ta ki CMK yeniden etkinleştirilene veya silme iptal edilene kadar.
#### Manuel döndürme
- **Yeni bir CMK oluşturulması gerekir**, ardından yeni bir CMK-ID oluşturulur, bu nedenle **uygulamanızı** yeni CMK-ID'yi **referans almak için güncellemeniz gerekecektir**.
- Bu süreci kolaylaştırmak için **bir anahtar kimliğine atıfta bulunmak için takma adlar kullanabilirsiniz** ve ardından sadece takma adın atıfta bulunduğu anahtarı güncelleyebilirsiniz.
- Eski dosyaları şifrelemek için **eski anahtarları saklamanız gerekir**.
- **Yeni bir CMK oluşturulması gerekir**, ardından yeni bir CMK-ID oluşturulur, bu nedenle **uygulamanızı** yeni CMK-ID'yi **referans almak** için **güncellemeniz** gerekecektir.
- Bu süreci daha kolay hale getirmek için **bir anahtar kimliğine atıfta bulunmak için takma adlar kullanabilirsiniz** ve ardından sadece takma adın atıfta bulunduğu anahtarı güncelleyebilirsiniz.
- Eski dosyaları şifrelemek için **eski anahtarları saklamanız** gerekir.
Yerel anahtar altyapınızdan anahtarları içe aktarabilirsiniz.
Kendi yerel anahtar altyapınızdan anahtarları içe aktarabilirsiniz.
### Diğer ilgili KMS bilgileri
@@ -115,7 +115,7 @@ KMS, **CloudTrail** ile tam denetim ve uyum **entegrasyonuna** sahiptir; burada
KMS politikası ile şunları yapabilirsiniz:
- Veri anahtarlarını kimlerin oluşturabileceğini ve bu anahtarlara hangi hizmetlerin erişim iznine sahip olduğunu sınırlayın.
- Sistemlerin yalnızca şifreleme, yalnızca şifre çözme veya her ikisine erişimini sınırlayın.
- Sistemlerin yalnızca şifreleme, yalnızca şifre çözme veya her ikisine de erişimini sınırlayın.
- Sistemlerin bölgeler arasında anahtarlara erişimini sağlamak için tanımlayın (ancak bu önerilmez çünkü KMS'yi barındıran bölgede bir arıza, diğer bölgelerdeki sistemlerin kullanılabilirliğini etkiler).
Bölgeler arasında anahtarları senkronize edemez veya taşıyamaz/kopyalayamazsınız; yalnızca bölge arasında erişimi sağlamak için kurallar tanımlayabilirsiniz.
@@ -128,6 +128,11 @@ aws kms list-grants --key-id <id>
aws kms describe-key --key-id <id>
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
aws kms describe-custom-key-stores
# This script enumerates AWS KMS keys across all available regions.
for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
echo -e "\n### Region: $region ###"; aws kms list-keys --region $region --query "Keys[].KeyId" --output text | tr '\t' '\n';
done
```
### Privesc
@@ -147,7 +152,7 @@ aws kms describe-custom-key-stores
../aws-persistence/aws-kms-persistence.md
{{#endref}}
## Referanslar
## References
- [https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html)