Jump to Content

New API Documentation - Developer Preview Available

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.

Class DescribeCustomKeyStoresCommandProtected

Gets information about custom key stores in the account and Region.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

By default, this operation returns information about all custom key stores in the account and Region. To get only information about a particular custom key store, use either the CustomKeyStoreName or CustomKeyStoreId parameter (but not both).

To determine whether the custom key store is connected to its CloudHSM cluster or external key store proxy, use the ConnectionState element in the response. If an attempt to connect the custom key store failed, the ConnectionState value is FAILED and the ConnectionErrorCode element in the response indicates the cause of the failure. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

Custom key stores have a DISCONNECTED connection state if the key store has never been connected or you used the DisconnectCustomKeyStore operation to disconnect it. Otherwise, the connection state is CONNECTED. If your custom key store connection state is CONNECTED but you are having trouble using it, verify that the backing store is active and available. For an CloudHSM key store, verify that the associated CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if any. For an external key store, verify that the external key store proxy and its associated external key manager are reachable and enabled.

For help repairing your CloudHSM key store, see the Troubleshooting CloudHSM key stores. For help repairing your external key store, see the Troubleshooting external key stores. Both topics are in the Key Management Service Developer Guide.

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

Required permissions: kms:DescribeCustomKeyStores (IAM policy)

Related operations:

Example

Use a bare-bones client and the command you need to make an API call.

import { KMSClient, DescribeCustomKeyStoresCommand } from "@aws-sdk/client-kms"; // ES Modules import
// const { KMSClient, DescribeCustomKeyStoresCommand } = require("@aws-sdk/client-kms"); // CommonJS import
const client = new KMSClient(config);
const input = { // DescribeCustomKeyStoresRequest
CustomKeyStoreId: "STRING_VALUE",
CustomKeyStoreName: "STRING_VALUE",
Limit: Number("int"),
Marker: "STRING_VALUE",
};
const command = new DescribeCustomKeyStoresCommand(input);
const response = await client.send(command);
// { // DescribeCustomKeyStoresResponse
// CustomKeyStores: [ // CustomKeyStoresList
// { // CustomKeyStoresListEntry
// CustomKeyStoreId: "STRING_VALUE",
// CustomKeyStoreName: "STRING_VALUE",
// CloudHsmClusterId: "STRING_VALUE",
// TrustAnchorCertificate: "STRING_VALUE",
// ConnectionState: "CONNECTED" || "CONNECTING" || "FAILED" || "DISCONNECTED" || "DISCONNECTING",
// ConnectionErrorCode: "INVALID_CREDENTIALS" || "CLUSTER_NOT_FOUND" || "NETWORK_ERRORS" || "INTERNAL_ERROR" || "INSUFFICIENT_CLOUDHSM_HSMS" || "USER_LOCKED_OUT" || "USER_NOT_FOUND" || "USER_LOGGED_IN" || "SUBNET_NOT_FOUND" || "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET" || "XKS_PROXY_ACCESS_DENIED" || "XKS_PROXY_NOT_REACHABLE" || "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND" || "XKS_PROXY_INVALID_RESPONSE" || "XKS_PROXY_INVALID_CONFIGURATION" || "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION" || "XKS_PROXY_TIMED_OUT" || "XKS_PROXY_INVALID_TLS_CONFIGURATION",
// CreationDate: new Date("TIMESTAMP"),
// CustomKeyStoreType: "AWS_CLOUDHSM" || "EXTERNAL_KEY_STORE",
// XksProxyConfiguration: { // XksProxyConfigurationType
// Connectivity: "PUBLIC_ENDPOINT" || "VPC_ENDPOINT_SERVICE",
// AccessKeyId: "STRING_VALUE",
// UriEndpoint: "STRING_VALUE",
// UriPath: "STRING_VALUE",
// VpcEndpointServiceName: "STRING_VALUE",
// },
// },
// ],
// NextMarker: "STRING_VALUE",
// Truncated: true || false,
// };

Param

DescribeCustomKeyStoresCommandInput

Returns

DescribeCustomKeyStoresCommandOutput

See

Throws

CustomKeyStoreNotFoundException (client fault)

The request was rejected because KMS cannot find a custom key store with the specified key store name or ID.

Throws

InvalidMarkerException (client fault)

The request was rejected because the marker that specifies where pagination should next begin is not valid.

Throws

KMSInternalException (server fault)

The request was rejected because an internal exception occurred. The request can be retried.

Throws

KMSServiceException

Base exception class for all service exceptions from KMS service.

Example

To get detailed information about custom key stores in the account and Region

// This example gets detailed information about all AWS KMS custom key stores in an AWS account and Region. To get all key stores, do not enter a custom key store name or ID.
const input = {};
const command = new DescribeCustomKeyStoresCommand(input);
const response = await client.send(command);
/* response ==
{
"CustomKeyStores": []
}
*/
// example id: to-get-detailed-information-about-custom-key-stores-in-the-account-and-region-1

Example

To get detailed information about an AWS CloudHSM key store by specifying its friendly name

// This example gets detailed information about a particular AWS CloudHSM key store by specifying its friendly name. To limit the output to a particular custom key store, provide either the custom key store name or ID.
const input = {
"CustomKeyStoreName": "ExampleKeyStore"
};
const command = new DescribeCustomKeyStoresCommand(input);
const response = await client.send(command);
/* response ==
{
"CustomKeyStores": [
{
"CloudHsmClusterId": "cluster-234abcdefABC",
"ConnectionState": "CONNECTED",
"CreationDate": "1.499288695918E9",
"CustomKeyStoreId": "cks-1234567890abcdef0",
"CustomKeyStoreName": "ExampleKeyStore",
"CustomKeyStoreType": "AWS_CLOUDHSM",
"TrustAnchorCertificate": "<certificate appears here>"
}
]
}
*/
// example id: to-get-detailed-information-about-a-cloudhsm-custom-key-store-by-name-2

Example

To get detailed information about an external key store by specifying its ID

// This example gets detailed information about an external key store by specifying its ID.  The example external key store proxy uses public endpoint connectivity.
const input = {
"CustomKeyStoreId": "cks-9876543210fedcba9"
};
const command = new DescribeCustomKeyStoresCommand(input);
const response = await client.send(command);
/* response ==
{
"CustomKeyStores": [
{
"ConnectionState": "CONNECTED",
"CreationDate": "1.599288695918E9",
"CustomKeyStoreId": "cks-9876543210fedcba9",
"CustomKeyStoreName": "ExampleExternalKeyStore",
"CustomKeyStoreType": "EXTERNAL_KEY_STORE",
"XksProxyConfiguration": {
"AccessKeyId": "ABCDE12345670EXAMPLE",
"Connectivity": "PUBLIC_ENDPOINT",
"UriEndpoint": "https://myproxy.xks.example.com",
"UriPath": "/kms/xks/v1"
}
}
]
}
*/
// example id: to-get-detailed-information-about-an-external-key-store--3

Example

To get detailed information about an external key store VPC endpoint connectivity by specifying its friendly name

// This example gets detailed information about a particular external key store by specifying its friendly name. To limit the output to a particular custom key store, provide either the custom key store name or ID. The proxy URI path for this external key store includes an optional prefix. Also, because this example external key store uses VPC endpoint connectivity, the response includes the associated VPC endpoint service name.
const input = {
"CustomKeyStoreName": "VPCExternalKeystore"
};
const command = new DescribeCustomKeyStoresCommand(input);
const response = await client.send(command);
/* response ==
{
"CustomKeyStores": [
{
"ConnectionState": "CONNECTED",
"CreationDate": "1.643057863.842",
"CustomKeyStoreId": "cks-876543210fedcba98",
"CustomKeyStoreName": "ExampleVPCExternalKeyStore",
"CustomKeyStoreType": "EXTERNAL_KEY_STORE",
"XksProxyConfiguration": {
"AccessKeyId": "ABCDE12345670EXAMPLE",
"Connectivity": "VPC_ENDPOINT_SERVICE",
"UriEndpoint": "https://myproxy-private.xks.example.com",
"UriPath": "/example-prefix/kms/xks/v1",
"VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1"
}
}
]
}
*/
// example id: to-get-detailed-information-about-an-external-custom-key-store-by-name-4

Hierarchy

Constructors

Properties

Methods