将 Amazon ECS 容器实例配置存储在 Amazon S3 中
Amazon ECS 容器代理配置通过环境变量来控制。经 Amazon ECS 优化的 AMI Linux 变体将在容器代理启动时在 /etc/ecs/ecs.config 中查找这些变量,并相应地配置代理。非敏感变量(如 ECS_CLUSTER)可在启动时通过 Amazon EC2 用户数据传递到容器实例并写入到此文件,且不会造成任何后果。但是,其他敏感信息(如您的 Amazon 凭证或 ECS_ENGINE_AUTH_DATA 变量)不应通过用户数据传递到某个实例或以它们能够在 .bash_history 文件中显示的方式写入到 /etc/ecs/ecs.config。
将配置信息存储在 Amazon S3 中的私有存储桶中并向您的容器实例 IAM 角色授予只读访问权限,这是一个允许在启动时配置容器实例的安全方便的方法。可以将 ecs.config 文件的副本存储在私有存储桶中。然后,您可以使用 Amazon EC2 用户数据安装 Amazon CLI,并在实例启动时将配置信息复制到 /etc/ecs/ecs.config。
要在 Amazon S3 中储存 ecs.config 文件
- 您必须向容器实例角色(ecsInstanceRole)授予只读访问 Amazon S3 的权限。为此,您可以将 AmazonS3ReadOnlyAccess 分配给 - ecsInstanceRole角色。有关如何将策略附加到角色的信息,请参阅《Amazon Identity and Access Management 用户指南》中的更新角色权限
- 
                使用以下格式创建包含有效 Amazon ECS 代理配置变量的 ecs.config文件。此示例将配置私有注册表身份验证。有关更多信息,请参阅 在 Amazon ECS 中使用非 Amazon 容器映像。ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}注意有关可用 Amazon ECS 代理配置变量的完整列表,请参阅 GitHub 上的 Amazon ECS 容器代理 。 
- 
                要存储您的配置文件,请在 Amazon S3 中创建私有存储桶。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的创建存储桶。 
- 
                将 ecs.config文件上传到 S3 存储桶。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的上传对象。
在启动时从 Amazon S3 加载 ecs.config 文件
- 
                完成本节中的上述过程以允许 Amazon S3 对您的容器实例进行只读访问,并将 ecs.config文件存储在私有 S3 存储桶中。
- 
                启动新的容器实例,并在 EC2 用户数据中使用以下示例脚本。脚本将安装 Amazon CLI 并将您的配置文件复制到 /etc/ecs/ecs.config。有关更多信息,请参阅 启动 Amazon ECS Linux 容器实例。#!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config