在 Amazon ECS 中以编程方式传递 Systems Manager Parameter Store 密钥
Systems Manager Parameter Store 提供了密钥的安全存储和管理。您可以将密码、数据库字符串、EC2 实例 ID 和 AMI ID 以及许可证代码等数据存储为参数值,而不是在应用程序中将这些信息硬编码。可以将值存储为纯文本或加密数据。
建议使用这种方法来检索敏感数据,因为如果随后更新 Systems Manager Parameter Store 参数,应用程序会自动检索最新版本。
在 Systems Manager Parameter Store 中保护敏感数据之前,请查看以下注意事项。
-
仅支持存储文本数据的密钥。不支持存储二进制数据的密钥。
-
使用接口 VPC 端点增强安全控制。
-
您的任务使用的 VPC 必须使用 DNS 解析。
-
对于使用 EC2 启动类型的任务,必须使用 Amazon ECS 代理配置变量
ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true
才能使用此功能。您可以在创建容器实例的过程中将其添加到/etc/ecs/ecs.config
文件中,也可以将其添加到现有实例中,然后重新启动 ECS 代理。有关更多信息,请参阅 Amazon ECS 容器代理配置。 -
任务定义必须使用具有额外 Systems Manager Parameter Store 权限的任务角色。有关更多信息,请参阅 Amazon ECS 任务 IAM 角色。
创建 参数
您可以使用 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 的代码示例。