本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 容器執行個體 (包括 Amazon EC2 和外部執行個體) 會執行 Amazon ECS 容器代理程式,並要求 IAM 角色,才能讓服務知道該代理程式為您所有。在您啟動容器執行個體並將它們註冊到叢集之前,您必須先為要使用的容器執行個體建立 IAM 角色。角色會在您用來登入主控台或執行 AWS CLI 命令的帳戶中建立。
重要
如果您要向叢集註冊外部執行個體,則您使用的 IAM 角色也需要 Systems Manager 許可。如需詳細資訊,請參閱Amazon ECS Anywhere IAM 角色。
Amazon ECS 提供 AmazonEC2ContainerServiceforEC2Role
受管 IAM 政策,其中包含使用完整 Amazon ECS 功能集所需的許可。此受管政策可連接至 IAM 角色,並與您的容器執行個體相關聯。或者,您可以在建立要使用的自訂政策時,使用受管政策作為指南。容器執行個體角色提供 Amazon ECS 容器代理程式和 Docker 協助程式代表您呼叫 AWS APIs所需的許可。如需受管政策的詳細資訊,請參閱 AmazonEC2ContainerServiceforEC2Role。
Amazon ECS 支援使用受支援的 Amazon EC2 執行個體類型,以更高的 ENI 密度來啟動容器執行個體。當您使用此功能時,我們建議您建立 2 個容器執行個體角色。為一個角色啟用awsvpcTrunking
帳戶設定,並將該角色用於需要 ENI 中繼的任務。如需awsvpcTrunking
帳戶設定的相關資訊,請參閱使用帳戶設定存取 Amazon ECS功能。
建立容器執行個體角色
重要
如果您要向叢集註冊外部執行個體,請參閱 Amazon ECS Anywhere IAM 角色。
您可手動建立角色並連接容器執行個體的受管 IAM 政策,讓 Amazon ECS 為日後推出的功能和改進新增許可。如有需要,請使用下列程序連接 受管 IAM 政策。
建立 Elastic Container Service (IAM 主控台) 的服務角色
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在 IAM 主控台的導覽窗格中,選擇角色,然後選擇建立角色。
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
針對服務或使用案例,選擇彈性容器服務,然後選擇彈性容器服務的 EC2 角色使用案例。
-
選擇 Next (下一步)。
-
在許可政策區段中,確認已選取 AmazonEC2ContainerServiceforEC2Role 政策。
重要
AmazonEC2ContainerServiceforEC2Role 受管政策應連接至容器執行個體 IAM 角色,否則您會使用 來建立叢集 AWS Management Console 而收到錯誤。
-
選擇 Next (下一步)。
-
針對角色名稱,輸入 ecsInstanceRole
-
檢閱角色,然後選擇 Create role (建立角色)。
建立角色之後,請為角色新增下列功能的其他許可。
功能 | 額外許可 |
---|---|
Amazon ECR 具有容器映像 |
|
讓 CloudWatch Logs 監控容器執行個體 | |
Amazon S3 儲存貯體中的主機組態檔案 |
Amazon ECR 許可
搭配容器執行個體使用的 Amazon ECS 容器執行個體角色,必須具有下列 Amazon ECR 的 IAM 政策許可。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer",
"ecr:GetAuthorizationToken"
],
"Resource": "*"
}
]
}
如果您的容器執行個體使用 AmazonEC2ContainerServiceforEC2Role
受管政策,則您的角色具有適當的許可。若要檢查您的角色是否支援 Amazon ECR,請參閱 Amazon Elastic Container Service 開發人員指南中的 Amazon ECS 容器執行個體 IAM 角色。
Amazon S3 唯讀存取
在 Amazon S3 中的私有儲存貯體內存放組態資訊,並對容器執行個體 IAM 角色授予唯讀存取權,這是一種允許容器執行個體在啟動時進行設定的安全且便利方法。您可以在私有儲存貯體中存放ecs.config
檔案的複本,使用 Amazon EC2 使用者資料安裝 , AWS CLI 然後在執行個體啟動/etc/ecs/ecs.config
時將您的組態資訊複製到 。
如需建立 ecs.config
檔案、將其存放在 Amazon S3 以及使用此組態啟動執行個體的詳細資訊,請參閱 在 Amazon S3 中存放 Amazon ECS 容器執行個體組態。
您可以使用下列 AWS CLI 命令來允許容器執行個體角色的 Amazon S3 唯讀存取。將 ecsInstanceRole
取代為您建立的角色名稱。
aws iam attach-role-policy \ --role-name
ecsInstanceRole
\ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
您也可以使用 IAM 主控台將 Amazon S3 唯讀存取 (AmazonS3ReadOnlyAccess
) 新增至您的角色。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的更新角色的許可。
監控容器執行個體許可
在容器執行個體將日誌資料傳送至 CloudWatch Logs 之前,您必須建立 IAM 政策,以允許 Amazon ECS 代理程式將客戶的應用程式日誌寫入 CloudWatch (通常透過awslogs
驅動程式處理)。建立政策之後,請將該政策連接至 ecsInstanceRole
。
若要使用 JSON 政策編輯器來建立政策
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在左側的導覽窗格中,選擇 Policies (政策)。
如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)。
-
在頁面頂端,選擇 Create policy (建立政策)。
-
在政策編輯器中,選擇 JSON 選項。
-
輸入下列 JSON 政策文件:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
-
選擇 Next (下一步)。
注意
您可以隨時切換視覺化與 JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱 IAM 使用者指南中的調整政策結構。
-
在檢視與建立頁面上,為您正在建立的政策輸入政策名稱與描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。
-
選擇 Create policy (建立政策) 儲存您的新政策。
建立政策之後,請將政策連接至容器執行個體角色。如需有關如何將政策連接至角色的資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的更新角色的許可。