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

以编程方式检索 Amazon Systems Manager Parameter Store 参数

Systems Manager Parameter Store 提供了密钥的安全存储和管理。可以将密码、数据库字符串、Amazon Elastic Compute Cloud(Amazon EC2)实例 ID、AMI ID 和许可证代码等数据存储为参数值。可以将值存储为纯文本或加密数据。

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

建议使用这种方法来检索敏感数据,因为如果随后更新 Systems Manager Parameter Store 参数,应用程序会自动检索最新版本。

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

注意事项

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

  • 仅支持存储文本数据的密钥。不支持存储二进制数据的密钥。

  • 使用接口 VPC 端点增强安全控制。

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

所需的 IAM 权限

要使用此功能,您必须具有 Amazon ECS 任务角色,并在任务定义中引用它。这允许容器代理提取必要的 Systems Manager 资源。有关更多信息,请参阅 Amazon ECS 任务角色

重要

对于使用 EC2 启动类型的任务,必须使用 ECS 代理配置变量 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true 才能使用此功能。您可以在创建容器实例的过程中将其添加到 ./etc/ecs/ecs.config 文件中,也可以将其添加到现有实例中,然后重新启动 ECS 代理。有关更多信息,请参阅 Amazon ECS 容器代理配置

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

  • ssm:GetParameters — 当您在任务定义中引用 Systems Manager Parameter Store 参数时是必需的。添加检索 Systems Manager 参数的权限。

  • secretsmanager:GetSecretValue — 当您直接引用 Secrets Manager 密钥或者您的 System Manager Parameter Store 参数在任务定义中引用 Secrets Manager 密钥时,这是必需的。添加从 Secrets Manager 中检索密钥的权限。

  • kms:Decrypt — 仅当您的密钥使用客户托管键而不是默认键时才需要。您的自定义密钥的 ARN 应添加为资源。添加解密客户托管密钥的权限。

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:region:aws_account_id:parameter/parameter_name", "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name", "arn:aws:kms:region:aws_account_id:key/key_id" ] } ] }

创建 参数

您可以使用 Systems Manager 控制台为您的敏感数据创建 Systems Manager Parameter Store 参数。有关更多信息,请参阅《Amazon Systems Manager 用户指南》中的创建 Systems Manager 参数(控制台)创建 Systems Manager 参数 (Amazon CLI)

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

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