编辑外部密钥存储属性 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

编辑外部密钥存储属性

您可以编辑现有外部密钥存储的选定属性。

在连接或断开外部密钥存储后,您可以编辑某些属性。若要编辑其他属性,则必须先断开外部密钥存储与其外部密钥存储代理的连接。外部密钥存储的连接状态必须为 DISCONNECTED。在外部密钥存储断开后,您可以管理密钥存储及其 KMS 密钥,但无法在外部密钥存储中创建或使用 KMS 密钥。要查找外部密钥存储库的连接状态,请使用DescribeCustomKeyStores操作或查看外部密钥存储详细信息页面上的 “常规配置” 部分。

在更新外部密钥存储库的属性之前,使用新值向外部密钥存储代理Amazon KMS发送GetHealthStatus请求。如果请求成功,则表明您可以使用更新后的属性值连接到外部密钥存储代理并进行身份验证。如果请求失败,编辑操作也将失败,并且会显示标识错误的异常。

编辑操作完成后,外部密钥存储的更新属性值将显示在 Amazon KMS 控制台和 DescribeCustomKeyStores 响应中。不过,要让更改完全生效,可能需要长达五分钟的时间。

如果您在 Amazon KMS 控制台中编辑外部密钥存储,则可以选择上传基于 JSON 的代理配置文件,该文件指定代理 URI 路径代理身份验证凭证。一些外部密钥存储代理会为您生成此文件。有关详细信息,请参阅外部密钥存储代理或外部密钥管理器的文档。

警告

更新后的属性值必须将您的外部密钥存储连接到与先前值相同的外部密钥管理器的代理,或者使用相同的加密密钥对外部密钥管理器进行备份或快照。如果外部密钥存储永久失去对与其 KMS 密钥关联的外部密钥的访问权限,则在这些外部密钥下加密的加密文字将无法恢复。特别要注意的是,更改外部密钥存储的代理连接可能会阻止 Amazon KMS 访问外部密钥。

提示

一些外部密钥管理器为编辑外部密钥存储属性提供了更简单的方法。有关详细信息,请参阅外部密钥管理器的文档。

您可以更改外部密钥存储的以下属性。

可编辑的外部密钥存储属性 任何连接状态 需要断开连接状态
自定义密钥存储名称

自定义密钥存储必需的易记名称。

重要

不要在此字段中包含机密或敏感信息。此字段可能会以纯文本形式显示在 CloudTrail 日志和其他输出中。

代理身份验证凭证 () XksProxyAuthenticationCredential

(即使只更改一个元素,您也必须同时指定访问密钥 ID 和秘密访问密钥。)

代理 URI 路径 (XksProxyUriPath)
代理连接 (XksProxyConnectivity)

(您还必须更新代理 URI 端点。如果要更改为 VPC 端点服务连接,则必须指定代理 VPC 端点服务名称。)

代理 URI 端点 (XksProxyUriEndpoint)

如果更改代理端点 URI,您可能还需要更改关联的 TLS 证书。

代理 VPC 终端节点服务名称 (XksProxyVpcEndpointServiceName)

(此字段是 VPC 端点服务连接的必填字段)

编辑外部密钥存储器(控制台)

编辑密钥存储时,您可以更改任何可编辑的值。某些更改要求将外部密钥存储与其外部密钥存储代理断开连接。

如果您正在编辑代理 URI 路径或代理身份验证凭证,则可以输入新值或上传包含新值的外部密钥存储代理配置文件

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 在导航窗格中,选择 Custom key stores(自定义密钥存储)、External key stores(外部密钥存储)。

  4. 选择要编辑的外部密钥存储的行。

  5. 如有必要,请断开外部密钥存储与其外部密钥存储代理的连接。从 Key store actions(密钥存储操作)菜单中选择 Disconnect(断开连接)。

  6. Key store actions(密钥存储操作)菜单中选择 Edit(编辑)。

  7. 更改一个或多个可编辑的外部密钥存储属性。您还可以上传包含代理 URI 路径和代理身份验证凭证值的外部密钥存储代理配置文件。即使文件中指定的某些值没有更改,也可以使用代理配置文件。

  8. 选择 Update external key store(更新外部密钥存储)。

  9. 查看警告,如果您决定继续,请确认警告,然后选择 Update external key store(更新外部密钥存储)。

    在此过程成功后,将显示一条消息,描述您编辑的属性。如果此过程失败,则会显示一条错误消息,描述问题并提供有关如何解决问题的帮助。

  10. 如有必要,重新连接外部密钥存储。从 Key store actions(密钥存储操作)菜单中选择 Connect(连接)。

    您可以让外部密钥存储保持断开状态。不过,在其断开连接后,您无法在外部密钥存储中创建 KMS 密钥或在加密操作中使用外部密钥存储中的 KMS 密钥。

编辑外部密钥存储(API)

要更改外部密钥存储库的属性,请使用UpdateCustomKeyStore操作。您可以在同一操作中更改外部密钥存储的多个属性。如果此操作成功,则 Amazon KMS 返回 HTTP 200 响应和无属性的 JSON 对象。

使用 CustomKeyStoreId 参数标识外部密钥存储。使用其他参数更改属性。您不能在 UpdateCustomKeyStore 操作中使用代理配置文件。只有 Amazon KMS 控制台支持代理配置文件。不过,您可以使用代理配置文件来帮助自己确定外部密钥存储代理的正确参数值。

本部分中的示例使用 Amazon Command Line Interface (Amazon CLI),但您可以使用任何受支持的编程语言。

在开始之前,如有必要,请断开外部密钥存储与其外部密钥存储代理的连接。更新后,如有必要,您可以将外部密钥存储重新连接到其外部密钥存储代理。您可以让外部密钥存储保持断开状态,但之后必须先重新连接,才能在密钥存储中创建新的 KMS 密钥或在密钥存储中使用现有 KMS 密钥来进行加密操作。

注意

如果您使用 Amazon CLI 版本 1.0,请在指定具有 HTTP 或 HTTPS 值的参数(例如 XksProxyUriEndpoint 参数)之前运行以下命令。

aws configure set cli_follow_urlparam false

否则,Amazon CLI 版本 1.0 会将参数值替换为在该 URI 地址找到的内容,从而导致以下错误:

Error parsing parameter '--xks-proxy-uri-endpoint': Unable to retrieve https:// : received non 200 status code of 404

更改外部密钥存储的名称

第一个示例使用UpdateCustomKeyStore操作将外部密钥存储库的友好名称更改为XksKeyStore。该命令使用 CustomKeyStoreId 参数标识自定义密钥存储,使用 CustomKeyStoreName 指定自定义密钥存储的新名称。将所有示例值替换为外部密钥存储的实际值。

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --new-custom-key-store-name XksKeyStore

更改代理身份验证凭证

以下示例更新了 Amazon KMS 用于向外部密钥存储代理进行身份验证的代理身份验证凭证。如果凭证在代理上轮换,您可以使用这样的命令来更新凭证。

首先更新外部密钥存储代理上的凭证。然后使用此功能将更改报告给 Amazon KMS。(您的代理将暂时支持旧凭证和新凭证,让您有时间在 Amazon KMS 中更新凭证。)

您必须始终在凭证中同时指定访问密钥 ID 和秘密访问密钥,即使只更改了一个值也是如此。

前两个命令设置变量来保存凭证值。UpdateCustomKeyStore 操作使用 CustomKeyStoreId 参数来标识外部密钥存储。该操作使用 XksProxyAuthenticationCredential 参数及其 AccessKeyIdRawSecretAccessKey 字段来指定新凭证。将所有示例值替换为外部密钥存储的实际值。

$ accessKeyID=access key id $ secretAccessKey=secret access key $ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-authentication-credential \ AccessKeyId=$accessKeyId,RawSecretAccessKey=$secretAccessKey

更改代理 URI 路径

以下示例更新了代理 URI 路径(XksProxyUriPath)。代理 URI 端点和代理 URI 路径的组合在 Amazon Web Services 账户 和区域中必须具备唯一性。将所有示例值替换为外部密钥存储的实际值。

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-uri-path /kms/xks/v1

更改 VPC 端点服务连接

以下示例使用UpdateCustomKeyStore操作将外部密钥存储代理连接类型更改为VPC_ENDPOINT_SERVICE。要进行此更改,您必须指定 VPC 端点服务连接所需的值,包括 VPC 端点服务名称(XksProxyVpcEndpointServiceName)和包含 VPC 端点服务的私有 DNS 名称的代理 URI 端点(XksProxyUriEndpoint)值。将所有示例值替换为外部密钥存储的实际值。

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-connectivity "VPC_ENDPOINT_SERVICE" \ --xks-proxy-uri-endpoint https://myproxy-private.xks.example.com \ --xks-proxy-vpc-endpoint-service-name com.amazonaws.vpce.us-east-1.vpce-svc-example

更改为公有端点连接

以下示例将外部密钥存储代理连接类型更改为 PUBLIC_ENDPOINT。进行此更改时,必须更新代理 URI 端点(XksProxyUriEndpoint)值。将所有示例值替换为外部密钥存储的实际值。

注意

VPC 端点连接提供的安全性高于公有端点连接。在更改为公有端点连接之前,请考虑其他选项,包括在本地找到外部密钥存储代理以及仅使用 VPC 进行通信。

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 \ --xks-proxy-connectivity "PUBLIC_ENDPOINT" \ --xks-proxy-uri-endpoint https://myproxy.xks.example.com