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

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

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

Amazon ECS容器代理程式組態是以環境變數控制。當容器代理程式啟動並相應地設定代理程式/etc/ecs/ecs.config時,Amazon ECS最佳化的 Linux 變體會在 中AMI尋找這些變量。某些無害環境變數,例如 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 中使用非AWS 容器映像 ECS

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
    注意

    如需可用 Amazon ECS代理程式組態變數的完整清單,請參閱 上的 Amazon ECS Container Agent GitHub。

  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