Amazon ECS CodeDeploy IAM 角色 - Amazon Elastic Container Service

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

Amazon ECS CodeDeploy IAM 角色

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

注意

使用者也需要使用權限 CodeDeploy;這些權限在中有所說明所需的 IAM 許可

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

建立角 CodeDeploy 色

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

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. 選擇下一步

  6. [附加權限原則] 區段中,確定已選取AWSCodeDeployRoleForECS原則。

  7. 選擇下一步

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

  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. 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 政策編輯器來建立政策
  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. 選擇下一步

    注意

    您可以隨時切換視覺化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