本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 執行個體角色
AWS Batch運算環境中會填入 Amazon ECS 容器執行個體。他們在本機執行 Amazon ECS 容器代理程式。Amazon ECS 容器代理程式會代表您呼叫各種 AWS API 作業。因此,執行代理程式的容器執行個體需要這些服務的 IAM 政策和角色,才能辨識該代理程式屬於您。您必須建立 IAM 角色和執行個體設定檔,以便容器執行個體啟動時使用。否則,您無法建立運算環境並在其中啟動容器執行個體。此要求適用於使用或不使用 Amazon 提供的 Amazon ECS 優化 AMI 啟動的容器執行個體。如需詳細資訊,請參閱 Amazon 彈性容器服務開發人員指南中的 Amazon ECS 容器執行個體 IAM 角色。
Amazon ECS 執行個體角色和執行個體設定檔會在主控台首次執行體驗中自動為您建立。但是,您可以按照以下步驟檢查您的帳戶是否已具有 Amazon ECS 執行個體角色和執行個體設定檔。下列步驟也涵蓋如何附加受管 IAM 政策。
在 IAM 主控台中檢查 ecsInstanceRole
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇角色。
-
搜尋
ecsInstanceRole
的角色清單。如果角色不存在,請使用下列步驟建立角色。-
選擇建立角色。
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
對於常見使用案例,請選擇 EC2。
-
選擇下一步。
-
對於許可政策,請搜索亞馬遜 EC2 角色。ContainerServicefor
-
選擇亞馬遜 ContainerServicefor EC2Role 旁邊的核取方塊,然後選擇下一步。
-
針對 Role Name (角色名稱),輸入
ecsInstanceRole
,然後選擇 Create Role (建立角色)。注意
如果您使用AWS Management Console為 Amazon EC2 建立角色,則主控台會建立與該角色名稱相同的執行個體設定檔。
-
或者,您可以使AWS CLI用建立 ecsInstanceRole
IAM 角色。下列範例會建立具有信任政策和AWS受管政策的 IAM 角色。
建立 IAM 角色和執行個體設定檔 (AWS CLI)
-
建立下列信任原則,並將其儲存在名為的文字檔中
ecsInstanceRole-role-trust-policy.json
。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
-
使用「創建角色」命令來創建角色。
ecsInstanceRole
在assume-role-policy-document
參數中指定信任原則檔案位置。$
aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://ecsInstanceRole-role-trust-policy.json
以下是回應範例。
{ "Role": { "Path": "/", "RoleName: "ecsInstanceRole", "RoleId": "AROAT46P5RDIY4EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/ecsInstanceRole". "CreateDate": "2022-12-12T23:46:37.247Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service: "ec2.amazonaws.com" } "Action": "sts:AssumeRole", } ] } }
-
使用指create-instance-profile令建立名為的執行個體設定檔
ecsInstanceRole
。注意
您需要在和 AWS API 中將角色和執行個體設定檔建立為個別動作。AWS CLI
$
aws iam create-instance-profile --instance-profile-name ecsInstanceRole
以下是回應範例。
{ "InstanceProfile": { "Path": "/", "InstanceProfileName": "ecsInstanceRole", "InstanceProfileId": "AIPAT46P5RDITREXAMPLE", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole", "CreateDate": "2022-06-30T23:53:34.093Z", "Roles": [], } }
-
使用 add-role-to-instance-profile 指令將
ecsInstanceRole
角色新增至ecsInstanceRole
執行個體設定檔。aws iam add-role-to-instance-profile \ --role-name ecsInstanceRole --instance-profile-name ecsInstanceRole
-
使用命attach-role-policy令將
AmazonEC2ContainerServiceforEC2Role
AWS受管理的策略附加到ecsInstanceRole
角色。$
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole