Amazon ECS CodeDeploy IAM角色 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 主控台) 建立服務角色
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在IAM主控台的導覽窗格中,選擇角色 ,然後選擇建立角色

  3. 對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務

  4. 針對服務或使用案例 ,選擇 CodeDeploy,然後選擇 CodeDeploy - ECS 使用案例。

  5. 選擇 Next (下一步)

  6. 連接許可政策區段中,確保已選取AWSCodeDeployRoleForECS政策。

  7. 選擇 Next (下一步)

  8. 針對角色名稱 ,輸入ecsCodeDeploy角色

  9. 檢閱角色,然後選擇 Create role (建立角色)。

AWS CLI

取代全部 user input 使用您自己的資訊。

  1. 建立名為 的檔案codedeploy-trust-policy.json,其中包含要用於角色的 CodeDeploy IAM信任政策。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. ecsCodedeployRole 使用上一個步驟中建立的信任政策來建立名為 IAM的角色。

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. AWSCodeDeployRoleForECSAWSCodeDeployRoleForECSLimited 受管政策連接至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政策編輯器建立政策
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在左側的導覽窗格中,選擇 Policies (政策)

    如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)

  3. 在頁面頂端,選擇 Create policy (建立政策)

  4. 政策編輯器區段中,選擇 JSON選項。

  5. 輸入下列JSON政策文件:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  6. 選擇 Next (下一步)

    注意

    您可以隨時在視覺化JSON編輯器選項之間切換。不過,如果您在視覺化編輯器中進行變更或選擇下一步, IAM可能會重組您的政策,以將其最佳化為視覺化編輯器。如需詳細資訊,請參閱 IAM 使用者指南 中的政策重組

  7. 檢視與建立頁面上,為您在建立的政策輸入政策名稱描述 (選用)。檢視此政策中定義的許可,來查看您的政策所授予的許可。

  8. 選擇 Create policy (建立政策) 儲存您的新政策。

建立政策之後,請將政策連接至 CodeDeploy 角色。如需有關如何將政策連接至角色的資訊,請參閱 AWS Identity and Access Management 使用者指南 中的修改角色許可政策 (主控台)

AWS CLI

取代全部 user input 使用您自己的資訊。

  1. 建立稱為 blue-green-iam-passrole.json 的檔案,其中具有以下內容。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  2. 使用以下命令,使用IAM政策文件檔案建立JSON政策。

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. 擷取您使用以下命令建立ARNIAM的政策。

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
  4. 使用以下命令將政策 CodeDeploy連接至IAM角色。

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy