创建密钥 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建密钥

秘密可以是密码、一组凭证(如用户名和密码)、OAuth 令牌或以加密形式存储在 Secrets Manager 中的其他秘密信息。

如果您将文本存储在密钥中,文本通常会采用 JSON 键值字符串对格式,如以下包含 Amazon RDS 凭证的示例所示:

{ "engine": "mysql", "username": "user1", "password": "EXAMPLE-PASSWORD", "host": "my-database-endpoint.us-east-1.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306" }

您可以使用 IAM 权限策略控制对密钥的访问权限,这意味着只有授权用户可以访问或修改密钥。访问数据库或其他服务的应用程序使用 IAM 用户或角色的应用程序,因此您向该用户或角色授予访问密钥的权限。您可以通过资源或身份执行此操作:

  • 您可以将基于资源的策略附加到密钥上,然后在策略中列出具有访问权限的用户或角色。有关更多信息,请参阅 将权限策略附加到密钥

  • 您可以将基于身份的策略附加到用户或角色,然后在策略中列出身份可以访问的密钥。有关更多信息,请参阅 将权限策略附加到身份

要创建密钥,您需要 SecretsManagerReadWrite Amazon 托管策略授予权限。有关更多信息,请参阅 Amazon 托管式策略

创建密钥(控制台)

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

  2. 选择 Store a new secret (存储新密钥)

  3. Store a new secret(存储新密钥)页面上,执行以下操作:

    1. 对于 Secret type(密钥类型),执行以下操作之一:

      • 要存储数据库凭证,请选择 Credentials for Amazon RDS database(Amazon RDS 数据库凭证)、Credentials for Amazon DocumentDB database(Amazon DocumentDB 数据库凭证)、Credentials for Amazon Redshift cluster(Amazon Redshift 集群凭证)或 Credentials for other database(其他数据库凭证),然后输入要存储的凭证。

      • 要存储非数据库凭证或其他信息,请选择 Other type of secret(其他密钥类型),然后在 Key/value pairs(键/值对)中,执行以下操作之一:

        • Key/value(键/值)中,输入要存储在键/值对中的密钥。

          您可以添加所需数量的许多值对。例如,您可以在第一个字段中指定 Username,然后在第二个字段中输入用户名称。添加一行,然后输入 Password 和密码。您可以为 Database nameServer addressTCP port 等添加值对。您可以在密钥中存储最多 65536 个字节。

          如果您使用复制和粘贴操作,我们建议您确认 Plaintext(纯文本)选项卡上的文本。这有助于确保没有复制任何额外的空格字符,例如以纯文本形式显示为 \t 的制表符。

        • Plaintext 选项卡上,输入任何格式的密钥。

    2. 对于加密密钥,选择 Amazon KMS key Secrets Manager 用于加密密钥中受保护文本的密钥:

      • 选择 aws/Secrets Manager 以将 Amazon 托管式密钥 用于 Secrets Manager。使用此密钥不产生任何费用。

      • 从列表中选择另一个 KMS 密钥。您必须拥有以下权限,kms:Encryptkms:Decryptkms:GenerateDataKey

      • 选择添加新的密钥转至 Amazon KMS 控制台来创建客户管理的密钥。您必须具有 kms:CreateKey 权限。您将需要为您创建的 KMS 密钥付费。

    3. 如果在步骤 3a 中选择了数据库凭据,则对于数据库中,输入数据库连接信息。

    4. 选择 Next (下一步)

  4. 密钥名称和描述页面上,执行以下操作:

    1. 对于密钥名称,请输入您的密钥名称,例如 MyAppSecret 或者 development/TestSecret。使用斜杠为您的密钥创建层次结构。

    2. (可选)说明中,输入信息以帮助记住该密钥的用途。

    3. (可选)在标签部分中,在您的密钥中添加一个或多个标签。有关标记策略,请参阅 标记密钥。请不要将敏感信息存储在标签中,因为它们未加密。

    4. (可选)在资源权限,要将资源策略添加到您的密钥中,请选择编辑权限。有关更多信息,请参阅 将权限策略附加到密钥

    5. (可选)在 Replicate secret(复制密钥)中,要将密钥复制到另一个 Amazon Web Services 区域 中,请选择 Replicate secret(复制密钥)。您可以现在复制密钥,也可以回头再复制。有关更多信息,请参阅 将密钥复制到其他区域

    6. 选择 Next (下一步)

  5. (可选)在 Secret rotation(密钥轮换)页面上,您可以启用自动轮换。您也可以现在保持关闭轮换,然后稍后将其打开。有关更多信息,请参阅 轮换密钥。选择 Next (下一步)

  6. Review (审核) 页上,审核您的密钥详细信息,然后选择 Store (存储)

Amazon CLI

使用 Amazon CLI 创建一个密钥,您首先创建一个包含密钥的 JSON 文件或二进制文件。然后,使用 create-secret 操作。

如果希望 Secrets Manager 轮换密钥,必须在 轮换函数模板 中描述您的密钥。否则,您可以以任何格式存储您的密钥。

创建密钥

  1. 在文件中创建密钥,例如名为 mycreds.json 的 JSON 文件。

    { "username": "saanvi", "password": "EXAMPLE-PASSWORD" }
  2. 在 Amazon CLI 中,使用下列命令。

    $ aws secretsmanager create-secret --name production/MyAwesomeAppSecret --secret-string file://mycreds.json

    下面显示了输出。

    { "SecretARN": "arn:aws:secretsmanager:Region:AccountId:secret:production/MyAwesomeAppSecret-AbCdEf", "SecretName": "production/MyAwesomeAppSecret", "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }

Amazon 开发工具包

要通过使用其中一个 Amazon 软件开发工具包创建密钥,请使用 CreateSecret 操作。有关更多信息,请参阅 Amazon 开发工具包