Key type reference - AWS Key Management Service

Key type reference

AWS KMS supports different features for different types of KMS keys. For example, you can only use symmetric encryption KMS keys to generate symmetric data keys and asymmetric data key pairs. Also, importing key material and automatic key rotation are supported only for symmetric encryption KMS keys, and you can create only symmetric encryption KMS keys in a custom key store.

This reference includes two tables.

  • The Key type table lists the AWS KMS operations that are valid for symmetric encryption KMS keys, asymmetric KMS keys, and HMAC KMS keys.

  • The Special features table lists the AWS KMS operations that are valid for multi-Region KMS keys, KMS keys with imported key material, and KMS keys in custom key stores.

Key type table

You might need to scroll horizontally or vertically to see all of the data in this table.

AWS KMS API operation Symmetric encryption KMS keys HMAC KMS keys Asymmetric KMS keys (ENCRYPT_DECRYPT) Asymmetric KMS keys (SIGN_VERIFY) Asymmetric KMS keys (KEY_AGREEMENT)

CancelKeyDeletion

Yes

Yes

Yes

Yes Yes

CreateAlias

Yes Yes Yes Yes Yes

CreateGrant

Yes

Yes

Yes

Yes Yes

CreateKey

Yes

Yes

Yes

Yes

Yes

Decrypt

Yes

No

Yes

No No

DeleteAlias

Yes

Yes

Yes

Yes Yes

DeleteImportedKeyMaterial

Valid only on KMS keys with imported key material (Origin is EXTERNAL).

Yes

Yes Yes Yes Yes

DeriveSharedSecret

No No No No Yes

DescribeKey

Yes

Yes

Yes

Yes Yes

DisableKey

Yes

Yes

Yes

Yes Yes

DisableKeyRotation

Yes

Valid only on KMS keys with AWS KMS key material (Origin is AWS_KMS).

No

No

No No

EnableKey

Yes

Yes

Yes

Yes Yes

EnableKeyRotation

Yes

Valid only on KMS keys with AWS KMS key material (Origin is AWS_KMS).

No

No

No No

Encrypt

Yes

No

Yes

No No

GenerateDataKey

Yes

No

No

No No

GenerateDataKeyPair

Generates an asymmetric data key pair that is protected by a symmetric encryption KMS key.

Yes

Not valid on KMS keys in custom key stores.
No

No

No No

GenerateDataKeyPairWithoutPlaintext

Generates an asymmetric data key pair that is protected by a symmetric encryption KMS key.

Yes

Not valid on KMS keys in custom key stores.

No

No

No No

GenerateDataKeyWithoutPlaintext

Yes

No

No

No No
GenerateMac No Yes No No No

GetKeyPolicy

Yes

Yes

Yes

Yes Yes

GetKeyRotationStatus

Yes

Yes

(KeyRotationEnabled will always be false.)

Yes

(KeyRotationEnabled will always be false.)

Yes

(KeyRotationEnabled will always be false.)

Yes

(KeyRotationEnabled will always be false.)

GetParametersForImport

Valid only on KMS keys with imported key material (Origin is EXTERNAL).

Yes

Yes

Yes

Yes Yes

GetPublicKey

No

No

Yes

Yes Yes

ImportKeyMaterial

Valid only on KMS keys with imported key material (Origin is EXTERNAL).

Yes

Yes

Yes

Yes Yes

ListAliases

Yes

Yes

Yes

Yes Yes

ListGrants

Yes

Yes

Yes

Yes Yes

ListKeyPolicies

Yes

Yes

Yes

Yes Yes

ListKeyRotations

Yes Yes

(The Rotations field will always be null or empty.)

Yes

(The Rotations field will always be null or empty.)

Yes

(The Rotations field will always be null or empty.)

Yes

(The Rotations field will always be null or empty.)

ListResourceTags

Yes

Yes

Yes

Yes Yes

ListRetirableGrants

Yes

Yes

Yes

Yes Yes

PutKeyPolicy

Yes

Yes

Yes

Yes Yes

ReEncrypt

Yes

No

Yes

No No

ReplicateKey

- Valid only on multi-Region keys

Yes

Yes

Yes

Yes

Yes

RetireGrant

Yes

Yes

Yes

Yes

Yes

RevokeGrant

Yes

Yes

Yes

Yes Yes

RotateKeyOnDemand

Yes

Valid only on KMS keys with AWS KMS key material (Origin is AWS_KMS).

No No No No

ScheduleKeyDeletion

Yes

Yes

Yes

Yes Yes

Sign

No

No

No

Yes No

TagResource

Yes

Yes

Yes

Yes Yes

UntagResource

Yes

Yes

Yes

Yes Yes

UpdateAlias

The current KMS key and the new KMS key must be the same type (both symmetric or both asymmetric or both HMAC) and they must have the same key usage.

Yes Yes

Yes

Yes Yes

UpdateKeyDescription

Yes

Yes

Yes

Yes Yes

UpdateReplicaRegion

- Valid only on multi-Region keys

Yes

Yes

Yes

Yes

Yes

Verify

No

No

No

Yes No
VerifyMac No Yes No No No

Special features table

This table shows the AWS KMS API operations that are supported on each type of special-purpose key.

While reading this table, be aware of the following interactions:

  • Multi-Region keys:

    • Multi-Region keys can be symmetric encryption KMS keys, asymmetric KMS keys, HMAC KMS keys, and KMS keys with imported key material.

    • You cannot create multi-Region keys in a custom key store.

  • Imported key material

    • You can import key material for symmetric encryption KMS keys, asymmetric KMS keys, and HMAC KMS keys.

    • You can create multi-Region keys with imported key material.

    • You cannot create keys with imported key material in a custom key store.

    • Automatic key rotation (EnableKeyRotation, DisableKeyRotation) is not supported for KMS keys with imported key material.

  • Custom key stores

    • Custom key stores support only symmetric encryption KMS keys.

    • Symmetric operations on asymmetric key pairs (GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext) are not supported on KMS keys in custom key stores.

    • Automatic key rotation (EnableKeyRotation, DisableKeyRotation) is not supported on KMS keys in custom key stores.

    • You cannot create multi-Region keys in custom key stores.

You might need to scroll horizontally or vertically to see all of the data in this table.

AWS KMS API operation Multi-Region keys Imported key material KMS keys in a custom key store

CancelKeyDeletion

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

CreateAlias

Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion.

CreateGrant

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

CreateKey

You can use CreateKey to create a multi-Region primary key, a KMS key with imported key material, or a KMS key in a custom key store. To create a multi-Region replica key, use ReplicateKey.

Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion.

Decrypt

Green checkmark icon indicating success or completion.

Valid only when KeyUsage is ENCRYPT_DECRYPT

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

DeleteAlias

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

DeleteImportedKeyMaterial

Green checkmark icon indicating success or completion.

Valid only for keys with imported key material (Origin is EXTERNAL)

Green checkmark icon indicating success or completion. Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

DescribeKey

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

DisableKey

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

DisableKeyRotation

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption keys with AWS KMS key material (Origin is AWS_KMS).

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

EnableKey

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption KMS keys

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

EnableKeyRotation

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption keys with AWS KMS key material (Origin is AWS_KMS).

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

Encrypt

Green checkmark icon indicating success or completion.

Valid only when KeyUsage is ENCRYPT_DECRYPT

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

GenerateDataKey

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption KMS keys

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

GenerateDataKeyPair

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption KMS keys

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

GenerateDataKeyPairWithoutPlaintext

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption KMS keys

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

GenerateDataKeyWithoutPlaintext

Green checkmark icon indicating success or completion.

Valid only on symmetric encryption KMS keys

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

GenerateMac

Valid only on HMAC KMS keys

Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion. Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

GetKeyPolicy

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

GetKeyRotationStatus

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

(KeyRotationEnabled will always be false.)

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

GetParametersForImport

Green checkmark icon indicating success or completion.

Valid only for keys with imported key material (Origin is EXTERNAL).

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

GetPublicKey

Valid only for asymmetric KMS keys.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

ImportKeyMaterial

Green checkmark icon indicating success or completion.

Valid only for keys with imported key material (Origin is EXTERNAL).

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

ListAliases

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ListGrants

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ListKeyPolicies

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ListResourceTags

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ListRetirableGrants

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

PutKeyPolicy

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ReEncrypt

Green checkmark icon indicating success or completion.

Valid only when KeyUsage is ENCRYPT_DECRYPT

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ReplicateKey

Green checkmark icon indicating success or completion.

Valid only on multi-Region primary keys.

Green checkmark icon indicating success or completion.

Valid only on multi-Region primary keys.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

RetireGrant

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

RevokeGrant

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

ScheduleKeyDeletion

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Sign

Valid only on when KeyUsage is SIGN_VERIFY.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

TagResource

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

UntagResource

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

UpdateAlias

- The current KMS key and the new KMS key must be the same type (both symmetric or both asymmetric or both HMAC) and they must have the same key usage.

Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

UpdateKeyDescription

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

UpdateReplicaRegion

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Valid only on multi-Region keys.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

Verify

Valid only when KeyUsage is SIGN_VERIFY.

Green checkmark icon indicating success or completion.

Green checkmark icon indicating success or completion.

Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.

VerifyMac

Valid only on HMAC KMS keys

Green checkmark icon indicating success or completion. Green checkmark icon indicating success or completion. Red circle with diagonal line, commonly used to indicate prohibition or "no" symbol.