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 会在您检索密钥值时默认返回该版本。

您也可以通过调update-secret-version-stage用自己的标签来为版本添加标签 AWS CLI。您最多可以为一个密钥附加 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.