如何允許 Amazon Elastic Container Service (Amazon ECS) 任務從 Amazon Elastic Container Registry (Amazon ECR) 映像儲存庫中提取映像?
簡短描述
若要使用啟動類型存取 Amazon ECR 映像儲存庫,請選擇下列其中一個選項:
- 對於 Amazon Elastic Compute Cloud (Amazon EC2) 啟動類型,您必須提供對 ecsTaskExecutionRole 或與容器執行個體關聯的執行個體設定檔的權限。但為 **ecsTaskExecutionRole 提供 Amazon ECR 權限始終是最佳做法。**如果同時提供了權限給執行個體和角色,則 ecsTaskExecutionRole 優先。
- 對於 AWS Fargate 啟動類型,您必須授予 Amazon ECS 任務執行角色存取 Amazon ECR 映像儲存庫的權限。
解決方法
適用於 EC2 啟動類型
- 開啟 AWS Identity and Access Management (IAM) 主控台。
- 在導覽窗格中,選擇角色,然後選擇建立角色。
- 選擇 AWS 服務角色類型。
- 在使用案例區段中,選取 EC2。然後,選取下一步。
- 選擇預設的 AmazonEC2ContainerServiceforEC2Role 受管理政策,然後選擇下一步。
注意:AmazonEC2ContainerServiceforEC2Role 政策還可讓您將容器執行個體註冊到 ECS 叢集,並在 Amazon CloudWatch 中啟用日誌串流。
- 如果需要,為政策新增標籤,然後選擇下一步。
- 對於角色名稱,輸入唯一名稱 (例如 EcsRoleForec2),然後選擇建立角色。
- 使用最新的 Amazon ECS 最佳化 Amazon Linux AMI 啟動新容器執行個體。
- 將您建立的角色附加至新容器執行個體。
- 建立任務定義。
**重要:**在任務定義的 containerDefinitions 區段中,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 為映像屬性。
- 使用您在步驟 10 中建立的任務定義執行任務或服務。
- (選用) 如果不想為執行個體設定檔提供權限,請將權限授予 ECS 任務執行角色。然後,使用您在步驟 10 中建立的任務定義執行任務或服務。
適用於 Fargate 啟動類型
Amazon ECS 任務執行角色會自動在 Amazon ECS 主控台首次執行體驗中建立。如果找不到角色或角色已刪除,請完成下列步驟:
- 開啟 IAM 主控台。
- 在導覽窗格中,選擇角色,然後選擇建立角色。
- 在選取信任實體類型區段中,選擇彈性容器服務。
- 在選取您的使用案例中,選擇彈性容器服務任務,然後選擇下一步。
- 在附加權限政策區段中,搜尋 AmazonECSTaskExecutionRolePolicy,選取政策,然後選擇下一步。
**注意:**此政策還提供使用 awslogs 日誌驅動程式的權限。
- 對於角色名稱,輸入 ecsTaskExecutionRole,然後選擇建立角色。
- 建立任務定義。
**重要:**在任務定義的 containerDefinitions 區段中,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag 為映像屬性。指定在步驟 6 中建立的 IAM 角色。
- 使用您在步驟 7 中建立的任務定義執行任務或服務。
您的任務或服務現在可以從 Amazon ECR 映像儲存庫中提取映像。
相關資訊
搭配使用 Amazon ECR 映像與 Amazon ECS