我想允許 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 啟動類型
若要存取適用於 EC2 啟動類型的 Amazon ECR 映像儲存庫,請完成下列步驟:
- 開啟 AWS Identity and Access Management (IAM) 主控台。
- 在導覽窗格中,選擇角色,然後選擇建立角色。
- 選擇 AWS 服務角色類型。
- 在使用案例區段中,選擇 EC2。然後,選擇下一步。
- 選擇預設的 AmazonEC2ContainerServiceforEC2Role 受管理政策,然後選擇下一步。
注意:AmazonEC2ContainerServiceforEC2Role 政策還可讓您將容器執行個體註冊到 ECS 叢集,並在 Amazon CloudWatch 中開啟日誌串流。
- (選擇性) 將標籤新增至政策,然後選擇下一步。
- 對於角色名稱,輸入唯一名稱 (例如 EcsRoleForec2),然後選擇建立角色。
- 使用最新的 Amazon ECS 最佳化 Amazon Linux Amazon Machine Image (AMI) 來啟動新的容器執行個體。
- 將角色附加至新容器執行個體。
- 建立任務定義。
重要事項:在任務定義的容器區段中,對於映像 URI,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag。
- 使用您的任務定義來執行任務或服務。
- (選擇性) 如果不想為執行個體設定檔提供權限,請將權限授予 ECS 任務執行角色。然後,在任務定義中指定 ecsTaskExecutionRole,並使用此任務定義來執行任務或服務。
Fargate 啟動類型
Amazon ECS 任務執行角色會自動在 Amazon ECS 主控台首次執行體驗中建立。如果找不到角色或角色已刪除,請完成下列步驟:
- 開啟 IAM 主控台。
- 在導覽窗格中,選擇角色,然後選擇建立角色。
- 在選取信任實體類型區段中,選擇彈性容器服務。
- 對於選取您的使用案例,選擇彈性容器服務任務,然後選擇下一步。
- 在附加權限政策區段中,搜尋 AmazonECSTaskExecutionRolePolicy。選取政策,然後選擇下一步。
**注意:**此政策還提供使用 awslogs 日誌驅動程式的權限。
- 對於角色名稱,輸入 ecsTaskExecutionRole,然後選擇建立角色。
- 建立任務定義。
重要事項:在任務定義的容器區段中,對於映像 URI,指定 ECR 映像 aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag。此外,請指定您建立的 IAM 角色。
- 使用您的任務定義來執行任務或服務。
相關資訊
搭配使用 Amazon ECR 映像與 Amazon ECS