Gets a key policy attached to the specified customer master key (CMK).
Cross-account use : No. You cannot perform this operation on a CMK in a different AWS account.
Required permissions : kms:GetKeyPolicy (key policy)
Related operations : PutKeyPolicy
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
get-key-policy
--key-id <value>
--policy-name <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--key-id
(string)
A unique identifier for the customer master key (CMK).
Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
For example:
Key ID:
1234abcd-12ab-34cd-56ef-1234567890ab
Key ARN:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey .
--policy-name
(string)
Specifies the name of the key policy. The only valid name is
default
. To get the names of key policies, use ListKeyPolicies .
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To copy a key policy from one CMK to another CMK
The following get-key-policy
example gets the key policy from one CMK and saves it in a text file. Then, it replaces the policy of a different CMK using the text file as the policy input.
Because the --policy
parameter of put-key-policy
requires a string, you must use the --output text
option to return the output as a text string instead of JSON.
aws kms get-key-policy \
--policy-name default \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--query Policy \
--output text > policy.txt
aws kms put-key-policy \
--policy-name default \
--key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
--policy file://policy.txt
This command produces no output.
For more information, see PutKeyPolicy in the AWS KMS API Reference.