教程:创建和检索密钥 - AWS Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

教程:创建和检索密钥

在本教程中,您将创建一个密钥并将其存储在 AWS Secrets Manager 中。然后使用 AWS 管理控制台或 AWS CLI 检索密钥。由于您只需创建和存储密钥,因此本教程不需要将数据库与密钥结合使用。

步骤 1:在 AWS Secrets Manager 中创建并存储密钥

在此步骤中,您创建一个密钥并提供 AWS Secrets Manager 所需的基本信息。

步骤 2:从 AWS Secrets Manager 中检索密钥

接下来,您使用 Secrets Manager 控制台和 AWS CLI 检索解码的密钥。

先决条件

本教程假定您可以访问 AWS 账户,并且可以作为有权在 AWS Secrets Manager 控制台中创建和检索密钥的 IAM 用户登录到 AWS,或者在 AWS CLI 中执行等效的命令。

步骤 1:在 AWS Secrets Manager 中创建并存储密钥

在此步骤中,您以 IAM 用户身份登录并创建一个密钥。

从控制台创建和存储密钥

  1. 登录 AWS Secrets Manager 控制台 (https://console.amazonaws.cn/secretsmanager/)。

  2. 在服务介绍页面或 Secret (密钥) 列表页面上,选择Store a new secret (存储新密钥)

  3. 存储新密钥页上,选择其他密钥类型

  4. Specify key/value pairs to be stored in the secret (指定要存储在密钥中的键/值对) 下,在第一个字段中,键入 tutorials/MyFirstTutorialSecret。这会将您的密钥存储在虚拟文件夹 tutorials 中,其值为 MyFirstTutorialSecret。要配置密码,请在下一个字段中添加值。

    提供您的密钥信息,例如凭证和连接详细信息,作为键名称和值字符串对。例如,您可以将“UserName”指定为键名称,并将该用户的登录名称指定为值。再例如,可以将“Password”指定为键名称,并将实际密码指定为值。您还可以为“IpAddress”、“TcpPort”、“ServiceName”或任何其他有用值创建对。

  5. 选择 Plaintext (明文) 以查看存储在密钥的 SecretString 字段中的密钥文本的 JSON 版本。

  6. 对于 Select the encryption key (选择加密密钥),选择 DefaultEncryptionKey。如果使用 Secrets Manager 在您的账户中创建的默认 AWS 托管密钥,则 AWS 不会收取任何费用。如果选择使用自定义 KMS 密钥,则可能按标准 AWS KMS 费率对您收费。

  7. 选择 Next (下一步)

  8. Secret name (密钥名称) 下,在文本字段中键入密钥的名称。您必须仅使用字母数字字符和字符 /_+=.@-。

  9. Description (描述) 字段中键入规则的说明。

    对于 Description (描述),例如可键入 The secret I created for the first tutorial.

  10. Tags (标签) 部分,在 Key (键)Value - optional (值 - 可选) 文本字段中添加所需的标签。

    在本教程中,您可以将标签留空。

  11. 选择 Next (下一步)

  12. 在本教程中,选择 Disable automatic rotation (禁用自动轮换),然后选择 Next (下一步)

  13. Review (审核) 页面上,您可以检查密钥设置。另外,请务必查看包含启用了剪切并粘贴的代码的 Sample (示例代码) 部分,您可以将其添加到自己的应用程序中,并使用该密钥检索凭证。每个选项卡显示使用不同编程语言的代码。

  14. 要保存更改,请选择 Store (存储)

    Secrets Manager 控制台将返回您的账户中的密钥列表,并且在列表中现在包含新的密钥。

步骤 1:使用 CLI 在 AWS Secrets Manager 中创建和存储密钥

  1. 打开命令提示符以运行 AWS CLI。如果您尚未安装 AWS CLI,请参阅安装 AWS Command Line Interface

  2. 创建密钥

    键入以下命令和参数:

    $ aws secretsmanager create-secret --name tutorials/MyFirstTutorialSecret --description "The secret I created for the first tutorial"

命令的输出显示以下信息:

{ "ARN": "&region-arn;secretsmanager:us-west-2:123456789012:secret:tutorials/MyFirstTutorialSecret-a1b2c3", "Name": "tutorials/MyFirstTutorialSecret", }

步骤 2:从 AWS Secrets Manager 中检索密钥

在该步骤中,您使用 Secrets Manager 控制台和 AWS CLI 检索密钥。

在 AWS Secrets Manager 控制台中检索密钥

  1. 如果尚未登录到控制台,请转到位于 https://console.amazonaws.cn/secretsmanager/ 的控制台并登录 Secrets Manager 服务。

  2. Secrets (密钥) 列表页面上,选择您创建的密钥的名称。

    Secrets Manager 显示您的密钥的 Secrets details (密钥详细信息) 页面。

  3. 密钥值部分中,选择检索密钥值

  4. 您可以按键/值对或 JSON 文本结构形式查看您的密钥。

使用 AWS Secrets Manager CLI 检索密钥

  1. 打开命令提示符以运行 AWS CLI。如果您尚未安装 AWS CLI,请参阅安装 AWS Command Line Interface

  2. 通过使用有权访问您的密钥的凭证,键入下面的命令和参数。

    查看密钥的所有详细信息,但加密文本除外:

    $ aws secretsmanager describe-secret --secret-id tutorials/MyFirstTutorialSecret { "ARN": "&region-arn;secretsmanager:region:123456789012:secret:tutorials/MyFirstTutorialSecret-jiObOV", "Name": "tutorials/MyFirstTutorialSecret", "Description": "My First Secret", "LastChangedDate": 1522680794.8, "LastAccessedDate": 1522627200.0, "VersionIdsToStages": { "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [ "AWSCURRENT" ] } }

    查看 VersionIdsToStages 响应值。输出包含密钥的所有活动版本以及附加到每个版本的暂存标签的列表。在本教程中,您将会看到单一版本 ID(UUID 类型值)映射到单个 AWSCURRENT 暂存标签。

    查看密钥中的加密文本:

    $ aws secretsmanager get-secret-value --secret-id tutorials/MyFirstTutorialSecret --version-stage AWSCURRENT { "ARN": "&region-arn;secretsmanager:region:123456789012:secret:tutorials/MyFirstTutorialSecret-jiObOV", "Name": "tutorials/MyFirstTutorialSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "SecretString": "{\"username\":\"myserviceusername\",\"password\":\"MyVerySecureP@ssw0rd!\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1522680764.668 }

    如果您需要具有不同于 --version-stage 的暂存标签的版本的详细信息,则必须在上一个命令中包含 AWSCURRENT 参数。Secrets Manager 将 AWSCURRENT 作为默认值。

    输出的剩余部分在 SecretString 响应字段中包含 JSON 版本的密钥值。

摘要

本教程说明了如何可以轻松创建简单密钥,以及在需要密钥值时检索该值。有关创建密钥和配置自动轮换的另一个教程,请参阅教程:为 AWS 数据库轮换密钥