在 Amazon S3 中存放 Amazon ECS 容器執行個體組態 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon S3 中存放 Amazon ECS 容器執行個體組態

Amazon ECS 容器代理程式組態是以環境變數控制。當容器代理程式啟動並隨之設定代理程式時,Linux 版的 Amazon ECS 最佳化 AMI 會在 /etc/ecs/ecs.config 中尋找這些變數。非敏感環境變數,例如 ECS_CLUSTER,可以在啟動時透過 Amazon EC2 使用者資料傳遞至容器執行個體,並寫入此檔案,而不會產生任何結果。不過,其他敏感資訊,例如您的 AWS 登入資料或ECS_ENGINE_AUTH_DATA變數,都不應該傳遞給使用者資料中的執行個體,或以允許它們出現在.bash_history檔案中/etc/ecs/ecs.config的方式寫入 。

在 Amazon S3 中的私有儲存貯體內存放組態資訊,並對容器執行個體 IAM 角色授予唯讀存取權,這是一種允許容器執行個體在啟動時進行設定的安全且便利方法。您可以將 ecs.config 文件的複本儲存在私有儲存貯體中。然後,您可以使用 Amazon EC2 使用者資料來安裝 , AWS CLI 並在執行個體啟動/etc/ecs/ecs.config時將您的組態資訊複製到 。

若要在 Amazon S3 中存放 ecs.config 檔案
  1. 您必須授予容器執行個體角色 (ecsInstanceRole) 許可,才能擁有 Amazon S3 的唯讀存取權。您可以將 AmazonS3ReadOnlyAccess 指派給ecsInstanceRole角色來執行此操作。如需有關如何將政策連接至角色的資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的更新角色的許可

  2. 使用下列格式建立包含有效 Amazon ECS 代理程式組態變數的 ecs.config 檔案。本範例將設定私有登錄檔身分驗證。如需詳細資訊,請參閱在 Amazon ECS 中使用非AWS 容器映像

    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 容器代理程式

  3. 若要存放您的組態檔案,請在 Amazon S3 中建立私有儲存貯體。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的建立儲存貯體。

  4. ecs.config 檔案上傳至 S3 儲存貯體。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的上傳物件

若要在啟動時從 Amazon S3 載入 ecs.config 檔案
  1. 完成本節稍早的程序,以允許 Amazon S3 以唯讀方式存取您的容器執行個體,並將 ecs.config 檔案存放在私有 S3 儲存貯體。

  2. 啟動新的容器執行個體,並在 EC2 使用者資料中使用下列範例指令碼。指令碼會安裝 , AWS 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