KMS / Client / list_resource_tags



Returns all tags on the specified KMS key.

For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference. For information about using tags in KMS, see Tagging keys.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ListResourceTags (key policy)

Related operations:

  • CreateKey

  • ReplicateKey

  • TagResource

  • UntagResource

Eventual consistency: The KMS API follows an eventual consistency model. For more information, see KMS eventual consistency.

See also: AWS API Documentation

Request Syntax

response = client.list_resource_tags(
  • KeyId (string) –


    Gets tags on the specified KMS key.

    Specify the key ID or key ARN of the KMS key.

    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 KMS key, use ListKeys or DescribeKey.

  • Limit (integer) –

    Use this parameter to specify the maximum number of items to return. When this value is present, KMS does not return more than the specified number of items, but it might return fewer.

    This value is optional. If you include a value, it must be between 1 and 50, inclusive. If you do not include a value, it defaults to 50.

  • Marker (string) –

    Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of NextMarker from the truncated response you just received.

    Do not attempt to construct this value. Use only the value of NextMarker from the truncated response you just received.

Return type:



Response Syntax

    'Tags': [
            'TagKey': 'string',
            'TagValue': 'string'
    'NextMarker': 'string',
    'Truncated': True|False

Response Structure

  • (dict) –

    • Tags (list) –

      A list of tags. Each tag consists of a tag key and a tag value.


      Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

      • (dict) –

        A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.


        Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.

        For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the Amazon Web Services Billing and Cost Management User Guide.

        • TagKey (string) –

          The key of the tag.

        • TagValue (string) –

          The value of the tag.

    • NextMarker (string) –

      When Truncated is true, this element is present and contains the value to use for the Marker parameter in a subsequent request.

      Do not assume or infer any information from this value.

    • Truncated (boolean) –

      A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the NextMarker element in this response to the Marker parameter in a subsequent request.


  • KMS.Client.exceptions.KMSInternalException

  • KMS.Client.exceptions.NotFoundException

  • KMS.Client.exceptions.InvalidArnException

  • KMS.Client.exceptions.InvalidMarkerException


The following example lists tags for a KMS key.

response = client.list_resource_tags(
    # The identifier of the KMS key whose tags you are listing. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.


Expected Output:

    # A list of tags.
    'Tags': [
            'TagKey': 'CostCenter',
            'TagValue': '87654',
            'TagKey': 'CreatedBy',
            'TagValue': 'ExampleUser',
            'TagKey': 'Purpose',
            'TagValue': 'Test',
    # A boolean that indicates whether there are more items in the list. Returns true when there are more items, or false when there are not.
    'Truncated': False,
    'ResponseMetadata': {
        '...': '...',