Amazon ECS CodeDeploy IAM 角色 - Amazon Elastic Container Service

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

Amazon ECS CodeDeploy IAM 角色

在您搭配使用 CodeDeploy 藍/綠部署類型與 Amazon ECS 之前,CodeDeploy 服務需要許可來代您更新 Amazon ECS 服務。這些許可由 CodeDeploy IAM 角色 (ecsCodeDeployRole) 提供。

注意

使用者也需要許可來使用 CodeDeploy;所需的 IAM 許可 中描述了這些許可。

提供兩個受管政策。如需詳細資訊,請參閱《 AWS 受管政策參考指南》中的下列其中一項:

建立 CodeDeploy 角色

您可以使用下列程序為 Amazon ECS 建立 CodeDeploy 角色

AWS Management Console
建立 CodeDeploy 的服務角色 (IAM 主控台)
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。

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

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

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

  5. 選擇下一步

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

  7. 選擇下一步

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

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

AWS CLI

所有使用者輸入取代為您自己的資訊。

  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 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 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. 選擇下一步

    注意

    您可以隨時切換視覺化JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱 IAM 使用者指南中的調整政策結構

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

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

建立政策之後,請將政策連接至 CodeDeploy 角色。如需有關如何將政策連接至角色的資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的更新角色的許可

AWS CLI

所有使用者輸入取代為您自己的資訊。

  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. 使用以下命令,使用 JSON 政策文件檔案建立 IAM 政策。

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

    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