本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS CodeDeploy IAM 角色
在您可以搭配 Amazon ECS 使用 CodeDeploy 藍色/綠色部署類型之前,該 CodeDeploy 服務需要許可以代表您更新 Amazon ECS 服務。這些許可由 CodeDeploy IAM 角色 (ecsCodeDeployRole
) 提供。
提供兩個受管政策。如需詳細資訊,請參閱《AWS 受管理策略參考指南》中的下列其中一項:
建立角 CodeDeploy 色
您可以使用下列程序為 Amazon ECS 建立 CodeDeploy 角色
- AWS Management Console
-
若要為 CodeDeploy (IAM 主控台) 建立服務角色
登入 AWS Management Console 並開啟 IAM 主控台,網址為 https://console.aws.amazon.com/iam/。
-
在 IAM 主控台的導覽窗格中,選擇角色,然後選擇建立角色。
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
對於服務或使用案例,請選擇 CodeDeploy,然後選擇 CodeDeploy -ECS 使用案例。
-
選擇下一步。
-
在 [附加權限原則] 區段中,確定已選取AWSCodeDeployRoleForECS原則。
-
選擇下一步。
-
對於角色名稱,輸入ecsCodeDeploy角色。
-
檢閱角色,然後選擇 Create role (建立角色)。
- AWS CLI
-
以您自己的資訊取代所有使用者輸入
。
-
建立名為的檔案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
當服務中的任務需要任務 ececution 角色時,您必須將每個任務執行角色或任務角色覆寫的iam:PassRole
權限新增至作為原則的 CodeDeploy 角色。
工作執行角色權限
當服務中的任務需要任務 ececution 角色時,您必須將每個任務執行角色或任務角色覆寫的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>"]
}
]
}
-
選擇下一步。
您可以隨時切換視覺化與 JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱 IAM 使用者指南中的調整政策結構。
-
在檢視與建立頁面上,為您正在建立的政策輸入政策名稱與描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。
-
選擇 Create policy (建立政策) 儲存您的新政策。
建立原則之後,請將原則附加至 CodeDeploy 角色。如需如何將原則附加至角色的詳細資訊,請參閱《AWS Identity and Access Management 使用手冊》中的〈修改角色權限原則 (主控台)〉。
- AWS CLI
-
以您自己的資訊取代所有使用者輸入
。
-
建立稱為 blue-green-iam-passrole.json
的檔案,其中具有以下內容。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
使用下列命令,使用 JSON 政策文件檔案建立 IAM 政策。
aws iam create-policy \
--policy-name cdTaskExecutionPolicy
\
--policy-document file://blue-green-iam-passrole.json
-
使用下列命令擷取您建立的 IAM 政策的 ARN。
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