View a markdown version of this page

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

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

创建一个 Amazon Secrets Manager 机密密钥

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

提示

对于 Amazon RDS 和 Amazon Redshift 管理员用户凭证,我们建议您使用托管密钥。您可以通过管理服务创建托管密钥,然后可以使用托管轮换。

当使用控制台存储复制到其他区域的源数据库的数据库凭证时,密钥将包含源数据库的连接信息。然后复制密钥时,副本将是源密钥的副本,并且包含相同的连接信息。您可以向密钥中添加其他 key/value 对以获取区域连接信息。

要创建密钥,您需要SecretsManagerReadWrite 托管策略授予的权限。

当您创建密钥时,密钥管理器会生成一个 CloudTrail 日志条目。有关更多信息,请参阅 Log Amazon Secrets Manager 活动有 Amazon CloudTrail。

创建密钥(控制台)
  1. 打开密钥管理器控制台,网址为https://console.aws.amazon.com/secretsmanager/。

  2. 选择存储新密钥。

  3. 在 Choose secret type(选择密钥类型)页面上,执行以下操作:

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

      • 要存储数据库凭证,请选择要存储的数据库凭证类型。然后选择数据库,并输入凭证。

      • 要存储非用于数据库的 API 密钥、访问令牌和凭证,请选择其他类型的密钥。

        成Key/value 对地,可以以 JSON Key/value 对形式输入您的密钥,也可以选择纯文本选项卡并以任何格式输入密钥。您可以在密钥中存储最多 65536 个字节。一些示例:

        API key

        key/value 成对输入:

        ClientID : my_client_id

        ClientSecret : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

        OAuth token

        输入明文:

        AKIAI44QH8DHBEXAMPLE

        Digital certificate

        输入明文:

        -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
        Private key

        输入明文:

        –--- BEGIN PRIVATE KEY ---- EXAMPLE ––-- END PRIVATE KEY –---
      • 要存储来自 Secrets Manager 合作伙伴的托管外部密钥,请选择合作伙伴密钥。然后选择合作伙伴并提供识别合作伙伴密钥的详细信息。有关更多信息,请参阅 使用 Amazon Secrets Manager 管理外部机密以管理第三方机密。

    2. 对于加密密钥,选择密钥管理器用来加密密钥值的密钥。 Amazon KMS key 有关更多信息,请参阅 密钥加密和解密。

      • 在大多数情况下,选择aws/secretsmanager使用密钥管理器。 Amazon 托管式密钥 使用此密钥不产生任何费用。

      • 如果您需要访问其他密钥 Amazon Web Services 账户,或者想要使用自己的 KMS 密钥以便对其进行轮换或应用密钥策略,请从列表中选择客户管理的密钥,输入客户管理密钥的密钥 ARN 或别名 ARN,或选择添加新密钥来创建密钥。有关使用客户托管密钥的成本的信息,请参阅 定价。

        您必须具有 KMS 密钥的权限。有关跨账户访问的更多信息,请参阅访问 Amazon Secrets Manager 来自不同账户的秘密。

    3. 选择下一步。

  4. 在 Configure secret(配置密钥)页面上,执行以下操作:

    1. 输入一个描述性的 Secret name(密钥名称)和 Description(说明)。密钥名称可以包含 1-512 个字母数字和 /_+=.@- 字符。

    2. (可选)如果您创建了外部密钥,请输入持有该密钥的 Secrets Manager 合作伙伴所需的元数据。

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

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

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

    6. 选择下一步。

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

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

    Secrets Manager 将返回到密钥列表。如果您的新密钥未显示,请选择 Refresh(刷新)按钮。

Amazon CLI

当您在命令 shell 中输入命令时,存在访问命令历史记录或实用程序可以访问您命令参数的风险。请参阅降低使用存储 Amazon Secrets Manager 密钥 Amazon CLI 的风险。

例根据 JSON 文件中的数据库凭证创建密钥

以下 create-secret 示例将根据文件中的凭证创建密钥。有关更多信息,请参阅《 Amazon CLI 用户指南》中的从文件加载 Amazon CLI 参数。

要使 Secrets Manager 能够轮换密钥,您必须确保 JSON 符合密钥的 JSON 结构。

aws secretsmanager create-secret \ --name 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" }
例创建密钥

以下 create-secret 示例将创建包含两个键值对的密钥。

aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}'
例创建密钥

以下 create-secret 示例将创建包含两个标签的密钥。

aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string '{"user":"diegor","password":"EXAMPLE-PASSWORD"}' \ --tags '[{"Key": "FirstTag", "Value": "FirstValue"}, {"Key": "SecondTag", "Value": "SecondValue"}]'

Amazon SDK

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