

# 在 Amazon ECS 中以编程方式传递 Systems Manager Parameter Store 密钥
<a name="secrets-app-ssm-paramstore"></a>

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 容器代理配置](ecs-agent-config.md)。
+ 任务定义必须使用具有额外 Systems Manager Parameter Store 权限的任务角色。有关更多信息，请参阅 [Amazon ECS 任务 IAM 角色](task-iam-roles.md)。

## 创建 参数
<a name="secrets-app-ssm-paramstore-create-secret"></a>

您可以使用 Systems Manager 控制台为您的敏感数据创建 Systems Manager Parameter Store 参数。有关更多信息，请参阅**《Amazon Systems Manager 用户指南》中的[创建 Systems Manager 参数（控制台）](https://docs.amazonaws.cn/systems-manager/latest/userguide/parameter-create-console.html)或[创建 Systems Manager 参数（Amazon CLI）](https://docs.amazonaws.cn/systems-manager/latest/userguide/param-create-cli.html)。

## 更新应用程序以通过编程方式检索 Systems Manager Parameter Store 密钥
<a name="secrets-app-ssm-paramstore-update-app"></a>

要检索存储在 Systems Manager Parameter Store 参数中存储的敏感数据，请参阅 *Amazon SDK 代码示例代码库*中的[使用 Amazon SDK 的 Systems Manager 的代码示例](https://docs.amazonaws.cn/code-library/latest/ug/ssm_code_examples.html)。