We are excited to announce the developer preview of our new API documentation for AWS SDK for JavaScript v3. Please follow instructions on the landing page to leave us your feedback.
Readonly
configThe resolved configuration of KMSClient class. This is resolved and normalized from the constructor configuration interface.
Optional
options: HttpHandlerOptionsOptional
data: CancelKeyDeletionCommandOutputOptional
data: CancelKeyDeletionCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ConnectCustomKeyStoreCommandOutputOptional
data: ConnectCustomKeyStoreCommandOutputOptional
options: HttpHandlerOptionsOptional
data: CreateAliasCommandOutputOptional
data: CreateAliasCommandOutputOptional
options: HttpHandlerOptionsOptional
data: CreateCustomKeyStoreCommandOutputOptional
data: CreateCustomKeyStoreCommandOutputOptional
options: HttpHandlerOptionsOptional
data: CreateGrantCommandOutputOptional
data: CreateGrantCommandOutputOptional
options: HttpHandlerOptionsOptional
data: CreateKeyCommandOutputOptional
data: CreateKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DecryptCommandOutputOptional
data: DecryptCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DeleteAliasCommandOutputOptional
data: DeleteAliasCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DeleteCustomKeyStoreCommandOutputOptional
data: DeleteCustomKeyStoreCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DeleteImportedKeyMaterialCommandOutputOptional
data: DeleteImportedKeyMaterialCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DescribeCustomKeyStoresCommandOutputOptional
data: DescribeCustomKeyStoresCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DescribeKeyCommandOutputOptional
data: DescribeKeyCommandOutputDestroy underlying resources, like sockets. It's usually not necessary to do this. However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. Otherwise, sockets might stay open for quite a long time before the server terminates them.
Optional
options: HttpHandlerOptionsOptional
data: DisableKeyCommandOutputOptional
data: DisableKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DisableKeyRotationCommandOutputOptional
data: DisableKeyRotationCommandOutputOptional
options: HttpHandlerOptionsOptional
data: DisconnectCustomKeyStoreCommandOutputOptional
data: DisconnectCustomKeyStoreCommandOutputOptional
options: HttpHandlerOptionsOptional
data: EnableKeyCommandOutputOptional
data: EnableKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: EnableKeyRotationCommandOutputOptional
data: EnableKeyRotationCommandOutputOptional
options: HttpHandlerOptionsOptional
data: EncryptCommandOutputOptional
data: EncryptCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateDataKeyCommandOutputOptional
data: GenerateDataKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateDataKeyPairCommandOutputOptional
data: GenerateDataKeyPairCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateDataKeyPairWithoutPlaintextCommandOutputOptional
data: GenerateDataKeyPairWithoutPlaintextCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateDataKeyWithoutPlaintextCommandOutputOptional
data: GenerateDataKeyWithoutPlaintextCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateMacCommandOutputOptional
data: GenerateMacCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GenerateRandomCommandOutputOptional
data: GenerateRandomCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GetKeyPolicyCommandOutputOptional
data: GetKeyPolicyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GetKeyRotationStatusCommandOutputOptional
data: GetKeyRotationStatusCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GetParametersForImportCommandOutputOptional
data: GetParametersForImportCommandOutputOptional
options: HttpHandlerOptionsOptional
data: GetPublicKeyCommandOutputOptional
data: GetPublicKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ImportKeyMaterialCommandOutputOptional
data: ImportKeyMaterialCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListAliasesCommandOutputOptional
data: ListAliasesCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListGrantsCommandOutputOptional
data: ListGrantsCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListKeyPoliciesCommandOutputOptional
data: ListKeyPoliciesCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListKeysCommandOutputOptional
data: ListKeysCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListResourceTagsCommandOutputOptional
data: ListResourceTagsCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ListRetirableGrantsCommandOutputOptional
data: ListRetirableGrantsCommandOutputOptional
options: HttpHandlerOptionsOptional
data: PutKeyPolicyCommandOutputOptional
data: PutKeyPolicyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ReEncryptCommandOutputOptional
data: ReEncryptCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ReplicateKeyCommandOutputOptional
data: ReplicateKeyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: RetireGrantCommandOutputOptional
data: RetireGrantCommandOutputOptional
options: HttpHandlerOptionsOptional
data: RevokeGrantCommandOutputOptional
data: RevokeGrantCommandOutputOptional
options: HttpHandlerOptionsOptional
data: ScheduleKeyDeletionCommandOutputOptional
data: ScheduleKeyDeletionCommandOutputOptional
options: HttpHandlerOptionsOptional
data: OutputTypeOptional
data: OutputTypeOptional
options: HttpHandlerOptionsOptional
data: SignCommandOutputOptional
data: SignCommandOutputOptional
options: HttpHandlerOptionsOptional
data: TagResourceCommandOutputOptional
data: TagResourceCommandOutputOptional
options: HttpHandlerOptionsOptional
data: UntagResourceCommandOutputOptional
data: UntagResourceCommandOutputOptional
options: HttpHandlerOptionsOptional
data: UpdateAliasCommandOutputOptional
data: UpdateAliasCommandOutputOptional
options: HttpHandlerOptionsOptional
data: UpdateCustomKeyStoreCommandOutputOptional
data: UpdateCustomKeyStoreCommandOutputOptional
options: HttpHandlerOptionsOptional
data: UpdateKeyDescriptionCommandOutputOptional
data: UpdateKeyDescriptionCommandOutputOptional
options: HttpHandlerOptionsOptional
data: UpdatePrimaryRegionCommandOutputOptional
data: UpdatePrimaryRegionCommandOutputOptional
options: HttpHandlerOptionsOptional
data: VerifyCommandOutputOptional
data: VerifyCommandOutputOptional
options: HttpHandlerOptionsOptional
data: VerifyMacCommandOutputOptional
data: VerifyMacCommandOutput
Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the Key Management Service Developer Guide .
KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see Tools for Amazon Web Services.
We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.
If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see Service endpoints in the Key Management Service topic of the Amazon Web Services General Reference.
All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.
Signing Requests
Requests must be signed using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account root access key ID and secret access key for everyday work. You can use the access key ID and secret access key for an IAM user or you can use the Security Token Service (STS) to generate temporary security credentials and use those to sign requests.
All KMS requests must be signed with Signature Version 4.
Logging API Requests
KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the CloudTrail User Guide.
Additional Resources
For more information about credentials and request signing, see the following:
Amazon Web Services Security Credentials - This topic provides general information about the types of credentials used to access Amazon Web Services.
Temporary Security Credentials - This section of the IAM User Guide describes how to create and use temporary security credentials.
Signature Version 4 Signing Process - This set of topics walks you through the process of signing a request using an access key ID and a secret access key.
Commonly Used API Operations
Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console.
Encrypt
Decrypt
GenerateDataKey
GenerateDataKeyWithoutPlaintext