以编程方式检索 Secrets Manager 密钥 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

以编程方式检索 Secrets Manager 密钥

使用 Secrets Manager 保护敏感数据,并在数据库凭证、API 键和其他密钥的整个生命周期内对其进行轮换、管理和检索。

您可以使用 Secrets Manager 来存储敏感数据,而不是在应用程序中以纯文本形式对敏感信息进行硬编码。

我们建议使用这种方法来检索敏感数据,因为如果随后更新 Secrets Manager 密钥,应用程序会自动检索该密钥的最新版本。

可以在 Secrets Manager 中创建秘密。创建 Secrets Manager 密钥后,更新应用程序代码以检索该密钥。

注意事项

在 Secrets Manager 中保护敏感数据之前,请查看以下注意事项。

  • 仅存储文本数据的机密,这些机密是使用 SecretString 参数 CreateSecret 支持 API。不支持存储二进制数据的密钥,这些密钥是使用 CreateSecret API 的 SecretBinary 参数创建的。

  • 使用接口 VPC 端点增强安全控制。您必须为 Secrets Manager 创建接口 VPC 端点。有关 VPC 端点的信息,请参阅《Amazon Secrets Manager 用户指南》中的创建 VPC 端点

  • 您的任务使用的 VPC 必须使用 DNS 解析。

所需的 IAM 权限

要使用此功能,您必须具有 Amazon ECS 任务角色,并在任务定义中引用它。有关更多信息,请参阅 Amazon ECS 任务角色

要提供对您创建的 Secrets Manager 密钥的访问权限,请将以下权限手动添加到任务执行角色。有关如何管理权限的信息,请参阅《IAM 用户指南》中的添加和删除 IAM 身份权限

  • secretsmanager:GetSecretValue – 在引用 Secrets Manager 密钥时是必需的。添加从 Secrets Manager 中检索密钥的权限。

以下示例策略添加了所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" ] } ] }

创建 Secrets Manager 密钥

您可以使用 Secrets Manager 控制台为您的敏感数据创建密钥。有关如何创建密钥的信息,请参阅《Amazon Secrets Manager 用户指南》中的创建 Amazon Secrets Manager 密钥

更新应用程序以通过编程方式检索 Secrets Manager 密钥

您可以直接从应用程序调用 Secrets Manager API 来检索密钥。有关信息,请参阅《Amazon Secrets Manager 用户指南》中的从 Amazon Secrets Manager 中检索密钥

要检索存储在 Amazon Secrets Manager 中的敏感数据,请参阅 Amazon SDK 代码示例代码库中的使用 Amazon SDK 的 Amazon Secrets Manager 的代码示例