修改密钥 - AWS Secrets Manager

修改密钥

您可以在创建密钥后修改其元数据,具体取决于密钥的创建者。对于由其他服务创建的密钥,您可能需要使用其他服务来更新或轮换它。

要确定谁管理密钥,您可以查看密钥名称。由其他服务管理的密钥以该服务的 ID 作为前缀。或者,在 AWS CLI 中调用 describe-secret,然后查看字段 OwningService。有关更多信息,请参阅其他 AWS 服务管理的密钥

对于您管理的密钥,您可以修改密钥的描述、基于资源的策略、加密密钥和标记。您还可以更改加密密钥值信息,但我们建议您轮换更新包含凭证的密钥值。轮换会更新 Secrets Manager 中的密钥以及数据库或服务上的凭据。这会自动保持同步这些密钥,以便在客户端请求密钥值时,始终检索一组正常工作的凭证。有关更多信息,请参阅轮换 AWS Secrets Manager 密钥

更新您管理的密钥(控制台)

  1. 通过 https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台。

  2. 从密钥列表上,选择您的密钥。

  3. 在密钥详细信息页面上,执行以下操作之一:

    • 要更新描述,在密钥详细信息部分中,选择操作,然后选择编辑描述

    • 要更新加密密钥,在密钥详细信息部分中,选择操作,然后选择编辑加密密钥。请参阅密钥加密和解密

    • 要更新标签,请在标签部分,选择编辑。请参阅标记密钥

    • 要更新密钥值,请在密钥值部分,选择检索密钥值,然后选择编辑

      Secrets Manager 创建具有暂存标注 AWSCURRENT 的新密钥版本。您仍然可以访问旧版本。从 CLI,使用获取密钥值操作 version-id AWSPREVIOUS

    • 要更新密钥的轮换,请选择 “编辑轮换”。请参阅轮换 AWS Secrets Manager 密钥

    • 要更新密钥的权限,请选择 “编辑权限”。请参阅将权限策略附加到密钥

    • 要将您的密钥复制到其他区域,请参阅 将密钥复制到其他区域

    • 如果您的密钥有副本,则您可以更改副本的加密密钥。在 Replicate secret(复制密钥)部分中,选择副本的单选按钮,然后在 Actions(操作)菜单中,选择 Edit encryption key(编辑加密密钥)。请参阅密钥加密和解密

AWS CLI

要通过使用 AWS CLI 更新密钥,请使用更新密钥推入密码值操作。要标记密码,请参阅 标记密钥

例 示例:更新密码说明

以下示例添加描述或将其替换为 --description 参数提供的值。

$ aws secretsmanager update-secret --secret-id production/MyAwesomeAppSecret --description 'This is the description I want to attach to the secret.' { "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:production/MyAwesomeAppSecret-AbCdEf", "Name": "production/MyAwesomeAppSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }

例 示例:更新加密密钥

以下示例添加或替换此密钥的加密密钥。

更改加密密钥时,Secrets Manager 将重新加密在新的加密密钥下具有暂存标签的密钥版本 AWSCURRENTAWSPENDINGAWSPREVIOUS。密钥值更改时,Secrets Manager 还会根据新密钥对其加密。您可以在检索密钥时使用旧密钥或新密钥来解密密钥。

$ aws secretsmanager update-secret --secret-id production/MyAwesomeAppSecret --kms-key-id arn:aws:kms:Region:AccountId:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

例 示例:更新密钥值

更新密钥的密钥值时,Secrets Manager 会创建一个新版本,包含 AWSCURRENT 暂存标注并移动 AWSPREVIOUS 暂存标注到以前具有标注的版本 AWSCURRENT

我们建议您避免调用 PutSecretValueUpdateSecret 以持续速度为每 10 分钟一次以上. 如果调用 PutSecretValueUpdateSecret 更新密钥值,Secrets Manager 将创建密钥的新版本。当存在超过 100 个时,Secrets Manager 会删除过时的版本,但它不会删除 24 小时以内创建的版本。如果每 10 分钟更新一次密码值,创建的版本多于 Secrets Manager 删除的版本,并且您将达到密钥版本的配额。

以下示例 AWS CLI 命令升级密钥的密钥值。

$ aws secretsmanager put-secret-value --secret-id production/MyAwesomeAppSecret --secret-string '{"username":"anika","password":"EXAMPLE-PASSWORD"}' { "SecretARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:production/MyAwesomeAppSecret-AbCdEf", "SecretName": "production/MyAwesomeAppSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }

AWS 开发工具包

我们建议您避免调用 PutSecretValue 或者 UpdateSecret 以持续速度为每 10 分钟一次以上. 如果调用 PutSecretValueUpdateSecret 更新密钥值,Secrets Manager 将创建密钥的新版本。当存在超过 100 个时,Secrets Manager 会删除过时的版本,但它不会删除 24 小时以内创建的版本。如果每 10 分钟更新一次密码值,创建的版本多于 Secrets Manager 删除的版本,并且您将达到密钥版本的配额。

要更新密钥,请使用以下操作:UpdateSecretReplicateSecretToRegionsPutSecretValue。有关更多信息,请参阅AWS 软件开发工具包