本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS CodeDeploy IAM角色
在您搭配 Amazon 使用 CodeDeploy 藍/綠部署類型之前ECS, CodeDeploy 服務需要許可才能代表您更新 Amazon ECS服務。這些許可由角色 () CodeDeploy IAM提供ecsCodeDeployRole
。
使用者還需要許可才能使用 CodeDeploy;這些許可如 中所述必要的IAM許可。
提供兩個受管政策。如需詳細資訊,請參閱 AWS 受管政策參考指南 中的下列其中一項:
建立 CodeDeploy 角色
您可以使用下列程序來建立 Amazon CodeDeploy 的角色 ECS
- AWS Management Console
-
為 CodeDeploy (IAM 主控台) 建立服務角色
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/。
-
在IAM主控台的導覽窗格中,選擇角色 ,然後選擇建立角色 。
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
針對服務或使用案例 ,選擇 CodeDeploy,然後選擇 CodeDeploy - ECS 使用案例。
-
選擇 Next (下一步)。
-
在連接許可政策區段中,確保已選取AWSCodeDeployRoleForECS政策。
-
選擇 Next (下一步)。
-
針對角色名稱 ,輸入ecsCodeDeploy角色 。
-
檢閱角色,然後選擇 Create role (建立角色)。
- AWS CLI
-
取代全部 user input
使用您自己的資訊。
-
建立名為 的檔案codedeploy-trust-policy.json
,其中包含要用於角色的 CodeDeploy IAM信任政策。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": ["codedeploy.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
-
ecsCodedeployRole
使用上一個步驟中建立的信任政策來建立名為 IAM的角色。
aws iam create-role \
--role-name ecsCodedeployRole
\
--assume-role-policy-document file://codedeploy-trust-policy.json
-
將 AWSCodeDeployRoleForECS
或 AWSCodeDeployRoleForECSLimited
受管政策連接至ecsTaskRole
角色。
aws iam attach-role-policy \
--role-name ecsCodedeployRole
\
--policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECS
aws iam attach-role-policy \
--role-name ecsCodedeployRole
\
--policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECSLimited
當您服務中的任務需要任務排除角色時,您必須將每個任務執行角色或任務角色覆寫的iam:PassRole
許可作為政策新增至該 CodeDeploy 角色。
任務執行角色許可
當您服務中的任務需要任務排除角色時,您必須將每個任務執行角色或任務角色覆寫的iam:PassRole
許可作為政策新增至該 CodeDeploy 角色。如需詳細資訊,請參閱 Amazon ECS任務執行IAM角色 和 Amazon ECS任務IAM角色。然後,您將該政策連接至 CodeDeploy 角色
建立 政策
- AWS Management Console
-
使用JSON政策編輯器建立政策
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/。
-
在左側的導覽窗格中,選擇 Policies (政策)。
如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)。
-
在頁面頂端,選擇 Create policy (建立政策)。
-
在政策編輯器區段中,選擇 JSON選項。
-
輸入下列JSON政策文件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
選擇 Next (下一步)。
您可以隨時在視覺化和JSON編輯器選項之間切換。不過,如果您在視覺化編輯器中進行變更或選擇下一步, IAM可能會重組您的政策,以將其最佳化為視覺化編輯器。如需詳細資訊,請參閱 IAM 使用者指南 中的政策重組。
-
在檢視與建立頁面上,為您在建立的政策輸入政策名稱與描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。
-
選擇 Create policy (建立政策) 儲存您的新政策。
建立政策之後,請將政策連接至 CodeDeploy 角色。如需有關如何將政策連接至角色的資訊,請參閱 AWS Identity and Access Management 使用者指南 中的修改角色許可政策 (主控台)。
- AWS CLI
-
取代全部 user input
使用您自己的資訊。
-
建立稱為 blue-green-iam-passrole.json
的檔案,其中具有以下內容。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
使用以下命令,使用IAM政策文件檔案建立JSON政策。
aws iam create-policy \
--policy-name cdTaskExecutionPolicy
\
--policy-document file://blue-green-iam-passrole.json
-
擷取您使用以下命令建立ARNIAM的政策。
aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy
`].Arn'
-
使用以下命令將政策 CodeDeploy連接至IAM角色。
aws iam attach-role-policy \
--role-name ecsCodedeployRole
\
--policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy