本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接外部密钥存储
外部密钥存储连接到其外部密钥存储代理后,您可以在外部密钥存储中创建 KMS 密钥,然后在加密操作中使用现有 KMS 密钥。
将外部密钥存储连接到其外部密钥存储代理的过程因外部密钥存储的连接而异。
-
当您使用公有端点连接来连接外部密钥存储时,AWS KMS 会向外部密钥存储代理发送 GetHealthStatus 请求来验证代理 URI 端点、代理 URI 路径和代理身份验证凭证。来自代理的成功响应可确认代理 URI 端点和代理 URI 路径准确且可访问,并且代理对使用外部密钥存储的代理身份验证凭证签名的请求进行了身份验证。
-
在使用 VPC 端点服务连接将外部密钥存储连接到其外部密钥存储代理时,AWS KMS 会执行以下操作:
连接操作即开始连接您的自定义密钥存储的过程,但是将外部密钥存储连接到其外部代理大约需要五分钟。连接操作的成功响应并不表示外部密钥存储已连接。要确认连接已成功,请使用 AWS KMS 控制台或 DescribeCustomKeyStores 操作查看外部密钥存储的连接状态。
当连接状态为 FAILED
时,连接错误代码会显示在 AWS KMS 控制台中并添加到 DescribeCustomKeyStore
响应中。有关解释连接错误代码的帮助信息,请参阅 外部密钥存储的连接错误代码。
连接和重新连接到您的外部密钥存储
您可以在 AWS KMS 控制台中或使用 ConnectCustomKeyStore 操作连接或重新连接您的外部密钥存储。
您可以使用 AWS KMS 控制台将外部密钥存储连接到其外部密钥存储代理。
-
登录到 AWS Management Console,然后通过以下网址打开 AWS Key Management Service(AWS KMS)控制台:https://console.aws.amazon.com/kms
。 -
要更改 AWS 区域,请使用页面右上角的区域选择器。
在导航窗格中,选择 Custom key stores(自定义密钥存储)、External key stores(外部密钥存储)。
-
选择要连接的外部密钥存储的行。
-
从 Key store actions(密钥存储操作)菜单中选择 Connect(连接)。
该连接过程通常需要五分钟才能完成。操作完成后,连接状态更改为 CONNECTED(已连接)。
如果连接状态为 Failed(失败),请将鼠标悬停在连接状态上方以查看连接错误代码,从中了解错误的原因。有关响应连接错误代码的帮助信息,请参阅 外部密钥存储的连接错误代码。要连接处于 Failed(失败)连接状态的外部密钥存储,必须先断开自定义密钥存储。
要连接已断开的外部密钥存储,请使用 ConnectCustomKeyStore 操作。
在连接之前,外部密钥存储的连接状态必须为 DISCONNECTED
。如果连接状态为 FAILED
,请断开外部密钥存储,再进行连接。
该连接过程可能需要五分钟才能完成。除非该过程迅速失败,否则 ConnectCustomKeyStore
将返回 HTTP 200 响应和无属性的 JSON 对象。但是,此初始响应不指示连接是否成功。要确定外部密钥存储是否已连接,请参阅 DescribeCustomKeyStores 响应中的连接状态。
本部分中的示例使用 AWS Command Line Interface (AWS CLI)
要确定外部密钥存储,请使用自定义密钥存储 ID。您可以在控制台的 Custom key stores(自定义密钥存储)页面上或使用 DescribeCustomKeyStores 操作找到该 ID。在运行此示例之前,请将示例 ID 替换为有效的 ID。
$
aws kms connect-custom-key-store --custom-key-store-id
cks-1234567890abcdef0
ConnectCustomKeyStore
操作不会在响应中返回 ConnectionState
。要验证外部密钥存储是否已连接,请使用 DescribeCustomKeyStores 操作。默认情况下,此操作将返回您的账户和区域中的所有自定义密钥存储。但您可以使用 CustomKeyStoreId
或 CustomKeyStoreName
参数(但不能同时使用两者)将响应限制到特定自定义密钥存储。ConnectionState
值为 CONNECTED
表示外部密钥存储已连接到其外部密钥存储代理。
$
aws kms describe-custom-key-stores --custom-key-store-name
ExampleXksVpc
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }
如果 DescribeCustomKeyStores
响应中的 ConnectionState
值为 FAILED
,则该 ConnectionErrorCode
元素指示失败的原因。
在以下示例中,ConnectionErrorCode
的 XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND
值表示 AWS KMS 找不到用于与外部密钥存储代理通信的 VPC 端点服务。验证 XksProxyVpcEndpointServiceName
是否正确无误,AWS KMS 服务主体是否是 Amazon VPC 端点服务允许的主体,以及 VPC 端点服务是否不要求接受连接请求。有关响应连接错误代码的帮助信息,请参阅 外部密钥存储的连接错误代码。
$
aws kms describe-custom-key-stores --custom-key-store-name
ExampleXksVpc
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXksVpc", "ConnectionState": "FAILED", "ConnectionErrorCode": "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND", "CreationDate": "2022-12-13T18:34:10.675000+00:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE98765432EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://example-proxy-uri-endpoint-vpc", "UriPath": "/example/prefix/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example" } } ] }