修改 Amazon Secrets Manager 密钥
您可以在创建密钥后修改其元数据,具体取决于密钥的创建者。对于由其他服务创建的密钥,您可能需要使用其他服务来更新或轮换它。
要确定谁管理密钥,您可以查看密钥名称。由其他服务管理的密钥以该服务的 ID 作为前缀。或者,在 Amazon CLI 中调用 describe-secret,然后查看字段 OwningService
。有关更多信息,请参阅由其他 Amazon 服务托管的 Amazon Secrets Manager 密钥。
对于您管理的密钥,您可以修改密钥的描述、基于资源的策略、加密密钥和标记。您还可以更改加密密钥值信息,但我们建议您轮换更新包含凭证的密钥值。轮换会更新 Secrets Manager 中的密钥以及数据库或服务上的凭据。这会自动保持同步这些密钥,以便在客户端请求密钥值时,始终检索一组正常工作的凭证。有关更多信息,请参阅轮换 Amazon Secrets Manager 密钥。
更新您管理的密钥(控制台)
通过 https://console.aws.amazon.com/secretsmanager/
打开 Secrets Manager 控制台。 -
从密钥列表上,选择您的密钥。
-
在密钥详细信息页面上,执行以下操作之一:
请注意,您无法更改 ARN 或密钥的名称。
-
要更新描述,在密钥详细信息部分中,选择操作,然后选择编辑描述。
-
要更新加密密钥,在密钥详细信息部分中,选择操作,然后选择编辑加密密钥。请参阅Amazon Secrets Manager 中的密钥加密和解密。
-
要更新标签,请在标签部分,选择编辑。请参阅标记 Amazon Secrets Manager 密钥。
-
要更新密钥值,请在密钥值部分,选择检索密钥值,然后选择编辑。
Secrets Manager 创建具有暂存标注
AWSCURRENT
的新密钥版本。您仍然可以访问旧版本。从 CLI,使用获取密钥值操作version-id
AWSPREVIOUS
。 -
要更新密钥的轮换,请选择 Edit rotation(编辑轮换)。请参阅轮换 Amazon Secrets Manager 密钥。
-
要更新密钥的权限,请选择 Edit permissions(编辑权限)。请参阅将权限策略附加到 Amazon Secrets Manager 密钥。
-
要将您的密钥复制到其他区域,请参阅 将密钥复制到其他区域。
-
如果您的密钥有副本,则您可以更改副本的加密密钥。在 Replicate secret(复制密钥)部分中,选择副本的单选按钮,然后在 Actions(操作)菜单中,选择 Edit encryption key(编辑加密密钥)。请参阅Amazon Secrets Manager 中的密钥加密和解密。
-
若要更改密钥以使其由其他服务管理,您需要在该服务中重新创建密钥。请参阅由其他服务管理的密钥。
-
Amazon CLI
例 更新密钥说明
以下 update-secret
示例将更新密钥的描述。
aws secretsmanager update-secret \ --secret-id MyTestSecret \ --description "This is a new description for the secret."
例 更新与密钥关联的加密密钥
以下 update-secret
示例将更新用于加密密钥值的 KMS 密钥。该 KMS 密钥必须与加密密钥位于同一区域中。
aws secretsmanager update-secret \ --secret-id MyTestSecret \ --kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
例 在密钥中存储新的密钥值
当您在命令 shell 中输入命令时,存在访问命令历史记录或实用程序可以访问您命令参数的风险。请参阅降低使用 Amazon CLI 存储 Amazon Secrets Manager 密钥的风险。
以下 put-secret-value
将创建包含两个键值对的新版本密钥。
aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
例 将凭证中的新密钥值存储在 JSON 文件中
当您在命令 shell 中输入命令时,存在访问命令历史记录或实用程序可以访问您命令参数的风险。请参阅降低使用 Amazon CLI 存储 Amazon Secrets Manager 密钥的风险。
以下 put-secret-value
示例将根据文件中的凭证创建新版本密钥。有关更多信息,请参阅《Amazon CLI 用户指南》中的从文件加载 Amazon CLI 参数。
aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string file://mycreds.json
mycreds.json 的内容:
{ "engine": "mysql", "username": "saanvis", "password": "EXAMPLE-PASSWORD", "host": "my-database-endpoint.us-west-2.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306" }
Amazon SDK
我们建议您避免调用 PutSecretValue
或者 UpdateSecret
以持续速度为每 10 分钟一次以上. 如果调用 PutSecretValue
或 UpdateSecret
更新密钥值,Secrets Manager 将创建密钥的新版本。当存在超过 100 个时,Secrets Manager 会删除过时的版本,但它不会删除 24 小时以内创建的版本。如果每 10 分钟更新一次密钥值,则创建的版本多于 Secrets Manager 删除的版本,将达到密钥版本的配额。
要更新密钥,请使用以下操作:UpdateSecret
、ReplicateSecretToRegions
或 PutSecretValue
。有关更多信息,请参阅Amazon 软件开发工具包。