Provides detailed information about a KMS key. You can run DescribeKey
on a customer managed key or an Amazon Web Services managed key .
This detailed information includes the key ARN, creation date (and deletion date, if applicable), the key state, and the origin and expiration date (if any) of the key material. It includes fields, like KeySpec
, that help you distinguish symmetric from asymmetric KMS keys. It also provides information that is particularly important to asymmetric keys, such as the key usage (encryption or signing) and the encryption algorithms or signing algorithms that the KMS key supports. For KMS keys in custom key stores, it includes information about the custom key store, such as the key store ID and the CloudHSM cluster ID. For multi-Region keys, it displays the primary key and all related replica keys.
DescribeKey
does not return the following information:
Aliases associated with the KMS key. To get this information, use ListAliases .
Whether automatic key rotation is enabled on the KMS key. To get this information, use GetKeyRotationStatus . Also, some key states prevent a KMS key from being automatically rotated. For details, see How Automatic Key Rotation Works in Key Management Service Developer Guide .
Tags on the KMS key. To get this information, use ListResourceTags .
Key policies and grants on the KMS key. To get this information, use GetKeyPolicy and ListGrants .
If you call the DescribeKey
operation on a predefined Amazon Web Services alias , that is, an Amazon Web Services alias with no key ID, KMS creates an Amazon Web Services managed key . Then, it associates the alias with the new KMS key, and returns the KeyId
and Arn
of the new KMS key in the response.
Cross-account use : Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the
KeyId
parameter.Required permissions : kms:DescribeKey (key policy)
Related operations:
GetKeyPolicy
GetKeyRotationStatus
ListAliases
ListGrants
ListKeys
ListResourceTags
ListRetirableGrants
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
describe-key
--key-id <value>
[--grant-tokens <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--key-id
(string)
Describes the specified KMS key.
If you specify a predefined Amazon Web Services alias (an Amazon Web Services alias with no key ID), KMS associates the alias with an Amazon Web Services managed key and returns its
KeyId
andArn
in the response.To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with
"alias/"
. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.For example:
Key ID:
1234abcd-12ab-34cd-56ef-1234567890ab
Key ARN:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
Alias name:
alias/ExampleAlias
Alias ARN:
arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey . To get the alias name and alias ARN, use ListAliases .
--grant-tokens
(list)
A list of grant tokens.
Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency . For more information, see Grant token and Using a grant token in the Key Management Service Developer Guide .
(string)
Syntax:
"string" "string" ...
--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 find detailed information about a customer master key (CMK)
The following describe-key
example gets detailed information about the AWS managed CMK for Amazon S3 in the example account and Region. You can use this command to find details about AWS managed CMKs and customer managed CMKs.
To specify the CMK, use the key-id
parameter. This example uses an alias name value, but you can use a key ID, key ARN, alias name, or alias ARN in this command.
aws kms describe-key \
--key-id alias/aws/s3
Output:
{
"KeyMetadata": {
"AWSAccountId": "846764612917",
"KeyId": "b8a9477d-836c-491f-857e-07937918959b",
"Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b",
"CreationDate": 1566518783.394,
"Enabled": true,
"Description": "Default master key that protects my S3 objects when no other key is defined",
"KeyUsage": "ENCRYPT_DECRYPT",
"KeyState": "Enabled",
"Origin": "AWS_KMS",
"KeyManager": "AWS",
"CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
"EncryptionAlgorithms": [
"SYMMETRIC_DEFAULT"
]
}
}
For more information, see Viewing Keys in the AWS Key Management Service Developer Guide.
KeyMetadata -> (structure)
Metadata associated with the key.
AWSAccountId -> (string)
The twelve-digit account ID of the Amazon Web Services account that owns the KMS key.
KeyId -> (string)
The globally unique identifier for the KMS key.
Arn -> (string)
The Amazon Resource Name (ARN) of the KMS key. For examples, see Key Management Service (KMS) in the Example ARNs section of the Amazon Web Services General Reference .
CreationDate -> (timestamp)
The date and time when the KMS key was created.
Enabled -> (boolean)
Specifies whether the KMS key is enabled. When
KeyState
isEnabled
this value is true, otherwise it is false.Description -> (string)
The description of the KMS key.
KeyUsage -> (string)
The cryptographic operations for which you can use the KMS key.
KeyState -> (string)
The current status of the KMS key.
For more information about how key state affects the use of a KMS key, see Key state: Effect on your KMS key in the Key Management Service Developer Guide .
DeletionDate -> (timestamp)
The date and time after which KMS deletes this KMS key. This value is present only when the KMS key is scheduled for deletion, that is, when its
KeyState
isPendingDeletion
.When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is
PendingReplicaDeletion
and the length of its waiting period is displayed in thePendingDeletionWindowInDays
field.ValidTo -> (timestamp)
The time at which the imported key material expires. When the key material expires, KMS deletes the key material and the KMS key becomes unusable. This value is present only for KMS keys whose
Origin
isEXTERNAL
and whoseExpirationModel
isKEY_MATERIAL_EXPIRES
, otherwise this value is omitted.Origin -> (string)
The source of the key material for the KMS key. When this value is
AWS_KMS
, KMS created the key material. When this value isEXTERNAL
, the key material was imported or the KMS key doesn’t have any key material. When this value isAWS_CLOUDHSM
, the key material was created in the CloudHSM cluster associated with a custom key store.CustomKeyStoreId -> (string)
A unique identifier for the custom key store that contains the KMS key. This value is present only when the KMS key is created in a custom key store.
CloudHsmClusterId -> (string)
The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key in a custom key store , KMS creates the key material for the KMS key in the associated CloudHSM cluster. This value is present only when the KMS key is created in a custom key store.
ExpirationModel -> (string)
Specifies whether the KMS key’s key material expires. This value is present only when
Origin
isEXTERNAL
, otherwise this value is omitted.KeyManager -> (string)
The manager of the KMS key. KMS keys in your Amazon Web Services account are either customer managed or Amazon Web Services managed. For more information about the difference, see KMS keys in the Key Management Service Developer Guide .
CustomerMasterKeySpec -> (string)
Instead, use the
KeySpec
field.The
KeySpec
andCustomerMasterKeySpec
fields have the same value. We recommend that you use theKeySpec
field in your code. However, to avoid breaking changes, KMS will support both fields.KeySpec -> (string)
Describes the type of key material in the KMS key.
EncryptionAlgorithms -> (list)
The encryption algorithms that the KMS key supports. You cannot use the KMS key with other encryption algorithms within KMS.
This value is present only when the
KeyUsage
of the KMS key isENCRYPT_DECRYPT
.(string)
SigningAlgorithms -> (list)
The signing algorithms that the KMS key supports. You cannot use the KMS key with other signing algorithms within KMS.
This field appears only when the
KeyUsage
of the KMS key isSIGN_VERIFY
.(string)
MultiRegion -> (boolean)
Indicates whether the KMS key is a multi-Region (
True
) or regional (False
) key. This value isTrue
for multi-Region primary and replica keys andFalse
for regional KMS keys.For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide .
MultiRegionConfiguration -> (structure)
Lists the primary and replica keys in same multi-Region key. This field is present only when the value of the
MultiRegion
field isTrue
.For more information about any listed KMS key, use the DescribeKey operation.
MultiRegionKeyType
indicates whether the KMS key is aPRIMARY
orREPLICA
key.
PrimaryKey
displays the key ARN and Region of the primary key. This field displays the current KMS key if it is the primary key.
ReplicaKeys
displays the key ARNs and Regions of all replica keys. This field includes the current KMS key if it is a replica key.MultiRegionKeyType -> (string)
Indicates whether the KMS key is a
PRIMARY
orREPLICA
key.PrimaryKey -> (structure)
Displays the key ARN and Region of the primary key. This field includes the current KMS key if it is the primary key.
Arn -> (string)
Displays the key ARN of a primary or replica key of a multi-Region key.
Region -> (string)
Displays the Amazon Web Services Region of a primary or replica key in a multi-Region key.
ReplicaKeys -> (list)
displays the key ARNs and Regions of all replica keys. This field includes the current KMS key if it is a replica key.
(structure)
Describes the primary or replica key in a multi-Region key.
Arn -> (string)
Displays the key ARN of a primary or replica key of a multi-Region key.
Region -> (string)
Displays the Amazon Web Services Region of a primary or replica key in a multi-Region key.
PendingDeletionWindowInDays -> (integer)
The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the last of its replica keys is deleted. This value is present only when the
KeyState
of the KMS key isPendingReplicaDeletion
. That indicates that the KMS key is the primary key in a multi-Region key, it is scheduled for deletion, and it still has existing replica keys.When a single-Region KMS key or a multi-Region replica key is scheduled for deletion, its deletion date is displayed in the
DeletionDate
field. However, when the primary key in a multi-Region key is scheduled for deletion, its waiting period doesn’t begin until all of its replica keys are deleted. This value displays that waiting period. When the last replica key in the multi-Region key is deleted, theKeyState
of the scheduled primary key changes fromPendingReplicaDeletion
toPendingDeletion
and the deletion date appears in theDeletionDate
field.