Secrets Manager 密钥中有什么? - AWS Secrets Manager

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

Secrets Manager 密钥中有什么?

在 Secrets Manager 中,密钥由密钥信息、密钥值和密钥元数据组成。密钥值可以是字符串或二进制值。

为了将多个字符串值存储在一个密钥中,我们建议您使用带有键值对的 JSON 文本字符串,例如:

{ "host" : "ProdServer-01.databases.example.com", "port" : "8888", "username" : "administrator", "password" : "EXAMPLE-PASSWORD", "dbname" : "MyDatabase", "engine" : "mysql" }

对于数据库密钥,如果要启用自动轮换,密钥必须包含正确的 JSON 结构的数据库连接信息。有关更多信息,请参阅 AWS Secrets Manager 密钥的 JSON 结构

Metadata

密钥元数据包括:

  • 具有以下格式的 Amazon Resource Name (ARN)。

    arn:aws:secretsmanager:<Region>:<AccountId>:secret:SecretName-6RandomCharacters

    Secrets Manager 会在密钥名称末尾添加六个随机字符,以帮助确保密钥 ARN 的唯一性。如果删除了原始密钥,然后使用相同的名称创建了新密钥,则由于这些字符的原因,这两个密钥具有不同的 ARN。由于 ARN 不同,有权访问旧密钥的用户不会自动获得新密钥的访问权限。

  • 密钥的名称、说明、资源策略和标签。

  • 加密密钥的 ARN,一个 Secrets Manager 用来加密和解密密钥值的 AWS KMS key。Secrets Manager 始终以加密形式存储密钥文本,并在传输过程中加密密钥。请参阅 AWS Secrets Manager 中的密钥加密和解密

  • 如果设置了轮转,有关如何轮转密钥的信息。请参阅 轮换 AWS Secrets Manager 密钥

Secrets Manager 使用 IAM 权限策略来确保只有授权用户可以访问或修改密钥。请参阅 AWS Secrets Manager 的身份验证和访问控制

密钥有包含加密密钥值副本的版本。更改密钥值或轮换密钥时,Secrets Manager 会创建一个新版本。请参阅 密钥版本

您可以通过复制在多个 AWS 区域 上使用一个密钥。复制密钥时,您可以创建原始或主密钥称为副本密钥。副本密钥保持链接到主密钥上。请参阅 跨区域复制 AWS Secrets Manager 密钥

请参阅 使用 AWS Secrets Manager 管理密钥

密钥版本

密钥有包含加密密钥值副本的版本。更改密钥值或轮换密钥时,Secrets Manager 会创建一个新版本。

Secrets Manager 不会存储带有版本的线性密钥历史记录。而是通过标记来跟踪这三个特定版本:

  • 当前版本 – AWSCURRENT

  • 先前版本 – AWSPREVIOUS

  • 待处理版本(轮换期间)– AWSPENDING

密钥始终有一个标记为 AWSCURRENT 的版本,Secrets Manager 会在您检索密钥值时默认返回该版本。

您还可以通过在 AWS CLI 中调用 update-secret-version-stage 来使用自定义标签标记版本。您最多可以为一个密钥附加 20 个版本标签。密钥的两个版本不能具有相同的暂存标注。版本可以有多个标签。

Secrets Manager 从不移除带标签的版本,但未标记的版本将被视为已弃用。如果版本超过 100 个,Secrets Manager 会移除已弃用的版本。Secrets Manager 不会移除 24 小时前创建的版本。

下图演示了拥有 AWS 标记版本和客户标记版本的密钥。无标签的版本将被视为已弃用,Secrets Manager 将在某个未来的时间将其移除。

A secret that contains multiple secret versions, some with labels such as AWSCURRENT or MyLabelA, and some without labels.