创建一个 AWS Secrets Manager secret - AWS Secrets Manager

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

创建一个 AWS Secrets Manager secret

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

提示

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

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

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

当你创建密钥时,Secrets Manager 会生成一个 CloudTrail 日志条目。有关更多信息,请参阅 使用记录 AWS Secrets Manager 事件 AWS CloudTrail

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

  2. 选择 存储新密钥

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

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

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

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

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

        API key

        以键/值对的形式输入:

        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 –---
    2. 对于加密密钥,选择 AWS KMS key Secrets Manager 使用它来加密密钥值。有关更多信息,请参阅 密钥加密和解密

      • 在大多数情况下,请选择 aws/secretsM anager 来使用 AWS 托管式密钥 适用于 Secrets Manager。使用此密钥不产生任何费用。

      • 如果你需要从其他人那里访问密钥 AWS 账户,或者,如果您想使用自己的KMS密钥以便可以轮换密钥或对其应用密钥策略,请从列表中选择客户管理的密钥或选择添加新密钥来创建一个。有关使用客户托管密钥的成本的信息,请参阅 定价

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

    3. 选择下一步

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

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

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

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

    4. (可选)在 “复制密钥” 中,将您的密钥复制到另一个密钥 AWS 区域,选择 “复制密钥”。您可以现在复制密钥,也可以回头再复制。有关更多信息,请参阅 跨区域复制密钥

    5. 选择下一步

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

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

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

AWS CLI

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

例 在JSON文件中使用数据库凭据创建密钥

以下 create-secret 示例将根据文件中的凭证创建密钥。有关更多信息,请参阅加载 AWS CLI 来自文件中的参数 AWS 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\"}"

AWS SDK

要使用其中一个来创建密钥 AWS SDKs,使用CreateSecret操作。有关更多信息,请参阅 AWS SDKs