There are more AWS SDK examples available in the AWS Doc SDK Examples
Use GetKeyPolicy with an AWS SDK or CLI
The following code examples show how to use GetKeyPolicy.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in context in the following code example:
- CLI
-
- AWS CLI
-
To copy a key policy from one KMS key to another KMS key
The following
get-key-policyexample gets the key policy from one KMS key and saves it in a text file. Then, it replaces the policy of a different KMS key using the text file as the policy input.Because the
--policyparameter ofput-key-policyrequires a string, you must use the--output textoption to return the output as a text string instead of JSON.aws kms get-key-policy \ --policy-namedefault\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --queryPolicy\ --outputtext>policy.txtawskmsput-key-policy\ --policy-namedefault\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321\ --policyfile://policy.txtThis command produces no output.
For more information, see PutKeyPolicy in the AWS KMS API Reference.
-
For API details, see GetKeyPolicy
in AWS CLI Command Reference.
-
- Python
-
- SDK for Python (Boto3)
-
Note
There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository
. class KeyPolicy: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyPolicy": """ Creates a KeyPolicy instance with a default KMS client. :return: An instance of KeyPolicy initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def get_policy(self, key_id: str) -> dict[str, str]: """ Gets the policy of a key. :param key_id: The ARN or ID of the key to query. :return: The key policy as a dict. """ if key_id != "": try: response = self.kms_client.get_key_policy( KeyId=key_id, ) policy = json.loads(response["Policy"]) except ClientError as err: logger.error( "Couldn't get policy for key %s. Here's why: %s", key_id, err.response["Error"]["Message"], ) raise else: pprint(policy) return policy else: print("Skipping get policy demo.")-
For API details, see GetKeyPolicy in AWS SDK for Python (Boto3) API Reference.
-