適用於 AWS CodePipeline的 Identity and Access Management - AWS CodePipeline

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

適用於 AWS CodePipeline的 Identity and Access Management

AWS Identity and Access Management (IAM) 是一種 AWS 服務 ,可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制誰可以進行身分驗證 (登入) 和授權 (具有許可) 來使用 CodePipeline 資源。IAM 是 AWS 服務 您可以免費使用的 。

目標對象

使用方式 AWS Identity and Access Management (IAM) 會有所不同,取決於您在 CodePipeline 中執行的工作。

服務使用者 – 如果您使用 CodePipeline 服務來執行您的任務,您的管理員會為您提供所需的登入資料和許可。當您使用更多 CodePipeline 功能來執行工作時,您可能需要額外的許可。了解存取許可的管理方式可協助您向管理員請求正確的許可。如果您無法存取 CodePipeline 中的功能,請參閱 對 AWS CodePipeline 身分與存取進行疑難排解

服務管理員 – 如果您在公司負責 CodePipeline 資源,您可能可以完整存取 CodePipeline。您的任務是判斷服務使用者應存取哪些 CodePipeline 功能和資源。接著,您必須將請求提交給您的 IAM 管理員,來變更您服務使用者的許可。檢閱此頁面上的資訊,了解 IAM 的基本概念。若要進一步了解貴公司如何搭配 CodePipeline 使用 IAM,請參閱 AWS CodePipeline 如何使用 IAM

IAM 管理員 – 如果您是 IAM 管理員,建議您了解撰寫政策以管理 CodePipeline 存取的詳細資訊。若要檢視您可以在 IAM 中使用的 CodePipeline 身分型政策範例,請參閱 AWS CodePipeline 身分型政策範例

使用身分驗證

驗證是 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者身分、IAM 使用者身分或擔任 IAM 角色來驗證 (登入 AWS)。

您可以使用透過身分來源提供的憑證,以聯合身分 AWS 身分身分身分登入 。 AWS IAM Identity Center (IAM Identity Center) 使用者、您公司的單一登入身分驗證,以及您的 Google 或 Facebook 登入資料,都是聯合身分的範例。您以聯合身分登入時,您的管理員先前已設定使用 IAM 角色的聯合身分。當您使用聯合 AWS 身分存取 時,您會間接擔任角色。

視您身分的使用者類型而定,您可以登入 AWS Management Console 或 AWS 存取入口網站。如需登入的詳細資訊 AWS,請參閱AWS 登入 《 使用者指南》中的如何登入您的 AWS 帳戶

如果您以 AWS 程式設計方式存取 , AWS 會提供軟體開發套件 (SDK) 和命令列界面 (CLI),以使用您的登入資料以密碼編譯方式簽署您的請求。如果您不使用 AWS 工具,則必須自行簽署請求。如需使用建議的方法自行簽署請求的詳細資訊,請參閱《IAM 使用者指南》中的適用於 API 請求的AWS Signature 第 4 版

無論您使用何種身分驗證方法,您可能都需要提供額外的安全性資訊。例如, AWS 建議您使用多重要素驗證 (MFA) 來提高帳戶的安全性。如需更多資訊,請參閱《AWS IAM Identity Center 使用者指南》中的多重要素驗證和《IAM 使用者指南》中的 IAM 中的AWS 多重要素驗證

AWS 帳戶根使用者

當您建立 時 AWS 帳戶,您會從一個登入身分開始,該身分可完整存取 帳戶中的所有 AWS 服務 和資源。此身分稱為 AWS 帳戶 Theroot 使用者,可透過使用您用來建立帳戶的電子郵件地址和密碼登入來存取。強烈建議您不要以根使用者處理日常任務。保護您的根使用者憑證,並將其用來執行只能由根使用者執行的任務。如需這些任務的完整清單,了解需以根使用者登入的任務,請參閱《IAM 使用者指南》中的需要根使用者憑證的任務

IAM 使用者和群組

IAM 使用者是 中具有單一個人或應用程式特定許可 AWS 帳戶 的身分。建議您盡可能依賴臨時憑證,而不是擁有建立長期憑證 (例如密碼和存取金鑰) 的 IAM 使用者。但是如果特定使用案例需要擁有長期憑證的 IAM 使用者,建議您輪換存取金鑰。如需更多資訊,請參閱 IAM 使用者指南中的為需要長期憑證的使用案例定期輪換存取金鑰

IAM 群組是一種指定 IAM 使用者集合的身分。您無法以群組身分簽署。您可以使用群組來一次為多名使用者指定許可。群組可讓管理大量使用者許可的程序變得更為容易。例如,您可以擁有一個名為 IAMAdmins 的群組,並給予該群組管理 IAM 資源的許可。

使用者與角色不同。使用者只會與單一人員或應用程式建立關聯,但角色的目的是在由任何需要它的人員取得。使用者擁有永久的長期憑證,但角色僅提供臨時憑證。如需更多資訊,請參閱《IAM 使用者指南》中的 IAM 使用者的使用案例

IAM 角色

IAM 角色是 中具有特定許可 AWS 帳戶 的身分。它類似 IAM 使用者,但不與特定的人員相關聯。若要暫時在 中擔任 IAM 角色 AWS Management Console,您可以從使用者切換至 IAM 角色 (主控台)。您可以透過呼叫 AWS CLI 或 AWS API 操作或使用自訂 URL 來擔任角色。如需使用角色的方法詳細資訊,請參閱《IAM 使用者指南》中的擔任角色的方法

使用臨時憑證的 IAM 角色在下列情況中非常有用:

  • 聯合身分使用者存取 — 如需向聯合身分指派許可,請建立角色,並為角色定義許可。當聯合身分進行身分驗證時,該身分會與角色建立關聯,並獲授予由角色定義的許可。如需有關聯合角色的相關資訊,請參閱《IAM 使用者指南》中的為第三方身分提供者 (聯合) 建立角色如果您使用 IAM Identity Center,則需要設定許可集。為控制身分驗證後可以存取的內容,IAM Identity Center 將許可集與 IAM 中的角色相關聯。如需有關許可集的資訊,請參閱 AWS IAM Identity Center 使用者指南中的許可集

  • 暫時 IAM 使用者許可 – IAM 使用者或角色可以擔任 IAM 角色來暫時針對特定任務採用不同的許可。

  • 跨帳戶存取權:您可以使用 IAM 角色,允許不同帳戶中的某人 (信任的主體) 存取您帳戶的資源。角色是授予跨帳戶存取權的主要方式。不過,對於某些 AWS 服務,您可以直接將政策連接到資源 (而不是使用角色做為代理)。如需了解使用角色和資源型政策進行跨帳戶存取之間的差異,請參閱《IAM 使用者指南》中的 IAM 中的跨帳戶資源存取

  • 跨服務存取 – 有些 AWS 服務 使用其他 中的功能 AWS 服務。例如,當您在服務中進行呼叫時,該服務通常會在 Amazon EC2 中執行應用程式或將物件儲存在 Amazon Simple Storage Service (Amazon S3) 中。服務可能會使用呼叫主體的許可、使用服務角色或使用服務連結角色來執行此作業。

    • 轉送存取工作階段 (FAS) – 當您使用 IAM 使用者或角色在 中執行動作時 AWS,您會被視為主體。使用某些服務時,您可能會執行某個動作,進而在不同服務中啟動另一個動作。FAS 使用呼叫 的委託人許可 AWS 服務,並結合 AWS 服務 請求向下游服務提出請求。FAS 請求只有在服務收到需要與其他 AWS 服務 或 資源互動才能完成的請求時才會提出。在此情況下,您必須具有執行這兩個動作的許可。如需提出 FAS 請求時的政策詳細資訊,請參閱《轉發存取工作階段》

    • 服務角色 – 服務角色是服務擔任的 IAM 角色,可代表您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以委派許可權給 AWS 服務

    • 服務連結角色 – 服務連結角色是連結至 的服務角色類型 AWS 服務。服務可以擔任代表您執行動作的角色。服務連結角色會出現在您的 中 AWS 帳戶 ,並由服務擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。

  • 在 Amazon EC2 上執行的應用程式 – 您可以使用 IAM 角色來管理在 EC2 執行個體上執行之應用程式的臨時登入資料,以及提出 AWS CLI 或 AWS API 請求。這是在 EC2 執行個體內儲存存取金鑰的較好方式。若要將 AWS 角色指派給 EC2 執行個體並將其提供給其所有應用程式,您可以建立連接至執行個體的執行個體描述檔。執行個體設定檔包含該角色,並且可讓 EC2 執行個體上執行的程式取得臨時憑證。如需詳細資訊,請參閱《IAM 使用者指南》中的使用 IAM 角色來授予許可權給 Amazon EC2 執行個體上執行的應用程式

使用政策管理存取權

您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策是 中的物件, AWS 當與身分或資源相關聯時, 會定義其許可。當委託人 (使用者、根使用者或角色工作階段) 發出請求時, 會 AWS 評估這些政策。政策中的許可決定是否允許或拒絕請求。大多數政策會以 JSON 文件 AWS 的形式存放在 中。如需 JSON 政策文件結構和內容的詳細資訊,請參閱 IAM 使用者指南中的 JSON 政策概觀

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說,哪個主體在什麼條件下可以對什麼資源執行哪些動作

預設情況下,使用者和角色沒有許可。若要授予使用者對其所需資源執行動作的許可,IAM 管理員可以建立 IAM 政策。然後,管理員可以將 IAM 政策新增至角色,使用者便能擔任這些角色。

IAM 政策定義該動作的許可,無論您使用何種方法來執行操作。例如,假設您有一個允許 iam:GetRole 動作的政策。具有該政策的使用者可以從 AWS Management Console AWS CLI、 或 API AWS 取得角色資訊。

身分型政策

身分型政策是可以附加到身分 (例如 IAM 使用者、使用者群組或角色) 的 JSON 許可政策文件。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。如需了解如何建立身分型政策,請參閱《IAM 使用者指南》中的透過客戶管理政策定義自訂 IAM 許可

身分型政策可進一步分類成內嵌政策受管政策。內嵌政策會直接內嵌到單一使用者、群組或角色。受管政策是獨立的政策,您可以連接到 中的多個使用者、群組和角色 AWS 帳戶。受管政策包括 AWS 受管政策和客戶受管政策。如需了解如何在受管政策及內嵌政策之間選擇,請參閱《IAM 使用者指南》中的在受管政策和內嵌政策間選擇

資源型政策

資源型政策是連接到資源的 JSON 政策文件。資源型政策的最常見範例是 IAM 角色信任政策和 Amazon S3 儲存貯體政策。在支援資源型政策的服務中,服務管理員可以使用它們來控制對特定資源的存取權限。對於附加政策的資源,政策會定義指定的主體可以對該資源執行的動作以及在何種條件下執行的動作。您必須在資源型政策中指定主體。委託人可以包含帳戶、使用者、角色、聯合身分使用者或 AWS 服務。

資源型政策是位於該服務中的內嵌政策。您無法在資源型政策中使用來自 IAM 的 AWS 受管政策。

其他政策類型

AWS 支援其他較不常見的政策類型。這些政策類型可設定較常見政策類型授予您的最大許可。

  • 許可界限 – 許可範圍是一種進階功能,可供您設定身分型政策能授予 IAM 實體 (IAM 使用者或角色) 的最大許可。您可以為實體設定許可界限。所產生的許可會是實體的身分型政策和其許可界限的交集。會在 Principal 欄位中指定使用者或角色的資源型政策則不會受到許可界限限制。所有這類政策中的明確拒絕都會覆寫該允許。如需許可界限的詳細資訊,請參閱 IAM 使用者指南中的 IAM 實體許可界限

  • 服務控制政策 SCPs) – SCPs是 JSON 政策,可指定 in. 中組織或組織單位 (OU) 的最大許可 AWS Organizations。 AWS Organizations 是一種用於分組和集中管理您企業擁有 AWS 帳戶 的多個的服務。若您啟用組織中的所有功能,您可以將服務控制政策 (SCP) 套用到任何或所有帳戶。SCP 會限制成員帳戶中實體的許可,包括每個實體 AWS 帳戶根使用者。如需 Organizations 和 SCP 的詳細資訊,請參閱《AWS Organizations 使用者指南》中的服務控制政策

  • 資源控制政策 (RCP) - RCP 是 JSON 政策,可用來設定您帳戶中資源的可用許可上限,採取這種方式就不需要更新附加至您所擁有的每個資源的 IAM 政策。RCP 會限制成員帳戶中資源的許可,並可能影響身分的有效許可,包括 AWS 帳戶根使用者,無論它們是否屬於您的組織。如需 Organizations 和 RCPs的詳細資訊,包括 AWS 服務 支援 RCPs的 清單,請參閱AWS Organizations 《 使用者指南》中的資源控制政策 RCPs)

  • 工作階段政策 – 工作階段政策是一種進階政策,您可以在透過撰寫程式的方式建立角色或聯合使用者的暫時工作階段時,做為參數傳遞。所產生工作階段的許可會是使用者或角色的身分型政策和工作階段政策的交集。許可也可以來自資源型政策。所有這類政策中的明確拒絕都會覆寫該允許。如需詳細資訊,請參閱 IAM 使用者指南中的工作階段政策

管理 CodePipeline 服務角色

CodePipeline 服務角色設定了一或多個政策,控制對管道所用 AWS 資源的存取。您可能想要將更多政策連接至此角色、編輯連接至該角色的政策,或設定其他 服務角色的政策 AWS。在設定跨帳戶存取您的管道時,您可能也會想要將政策連接到角色。

重要

修改政策說明或將其他政策連接到角色,可能會導致您的管道停止運作。在以任何方式修改 CodePipeline 的服務角色之前,請務必了解其含意。對服務角色進行任何變更之後,務必測試您的管道。

注意

在主控台,在 2018 年 9 月之前建立的服務角色是以名稱 oneClick_AWS-CodePipeline-Service_ID-Number 建立。

2018 年 9 月之後建立的服務角色使用服務角色名稱格式 AWSCodePipelineServiceRole-Region-Pipeline_Name。例如,對於 MyFirstPipeline中名為 的管道eu-west-2,主控台會命名角色和政策 AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline

從 CodePipeline 服務角色移除許可

您可以編輯服務角色說明,移除您未使用的資源存取。例如,如果您的管道都不包含 Elastic Beanstalk,您可以編輯政策陳述式來移除授予 Elastic Beanstalk 資源存取權的區段。

同樣地,如果沒有任何管道包含 CodeDeploy,您可以編輯政策陳述式來移除授予 CodeDeploy 資源存取權的區段:

{ "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:RegisterApplicationRevision" ], "Resource": "*", "Effect": "Allow" },

將許可新增至 CodePipeline 服務角色

您必須使用預設服務角色政策陳述式中 AWS 服務 未包含 的許可來更新服務角色政策陳述式,才能在管道中使用它。

如果您在將支援新增至 CodePipeline 的 之前建立管道使用的服務角色,這尤其重要 AWS 服務。

下表顯示何時新增其他 的支援 AWS 服務。

AWS 服務 CodePipeline 支援日期
Amazon Elastic Container Registry ECRBuildAndPublishAction 動作 2024 年 11 月 22 日
Amazon Inspector InspectorScan動作 2024 年 11 月 22 日
命令動作 2024 年 10 月 3 日
AWS CloudFormation 2020 年 12 月 30 日
CodeCommit 完全複製輸出成品格式 2020 年 11 月 11 日
CodeBuild 批次組建 2020 年 7 月 30 日
AWS AppConfig 2020 年 6 月 22 日
AWS Step Functions 2020 年 5 月 27 日
AWS CodeStar 連線 2019 年 12 月 18 日
CodeDeployToECS 動作 2018 年 11 月 27 日
Amazon ECR 2018 年 11 月 27 日
Service Catalog 2018 年 10 月 16 日
AWS Device Farm 2018 年 7 月 19 日
Amazon ECS 2017 年 12 月 12 日/2017 年 7 月 21 日更新選擇加入標記授權
CodeCommit: 2016 年 4 月 18 日
AWS OpsWorks 2016 年 6 月 2 日
AWS CloudFormation 2016 年 11 月 3 日
AWS CodeBuild 2016 年 12 月 1 日
Elastic Beanstalk 初始服務啟動

請依照下列步驟為支援的服務新增許可:

  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在 IAM 主控台的導覽窗格中,選擇角色,然後從AWS-CodePipeline-Service角色清單中選擇您的角色。

  3. 許可索引標籤的內嵌政策中,在您的服務角色政策的 列中,選擇編輯政策

  4. 政策文件方塊中新增必要的許可。

    注意

    建立 IAM 政策時,請遵循授予最低權限的標準安全建議,也就是僅授予執行任務所需的許可。某些 API 呼叫支援資源型許可,並且允許限制存取。例如,在此範例中,如要限制呼叫 DescribeTasksListTasks 時的許可,您可以將萬用字元 (*) 取代成資源 ARN,或是使用包含萬用字元 (*) 的資源 ARN。如需建立授予最低權限存取的政策的詳細資訊,請參閱 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

    例如,針對 CodeCommit 支援,將下列項目新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:UploadArchive", "codecommit:GetUploadArchiveStatus", "codecommit:CancelUploadArchive" ], "Resource": "resource_ARN" },

    如需 AWS OpsWorks 支援,請將下列項目新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "opsworks:CreateDeployment", "opsworks:DescribeApps", "opsworks:DescribeCommands", "opsworks:DescribeDeployments", "opsworks:DescribeInstances", "opsworks:DescribeStacks", "opsworks:UpdateApp", "opsworks:UpdateStack" ], "Resource": "resource_ARN" },

    如需 AWS CloudFormation 支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "iam:PassRole" ], "Resource": "resource_ARN" },

    請注意,cloudformation:DescribeStackEvents許可是選用的。它可讓 AWS CloudFormation 動作顯示更詳細的錯誤訊息。如果您不希望資源詳細資訊出現在管道錯誤訊息中,可以從 IAM 角色撤銷此許可。如需詳細資訊,請參閱AWS CloudFormation 部署動作參考

    針對 CodeBuild 支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "resource_ARN" },
    注意

    稍後新增批次建置的支援。請參閱步驟 11 以取得將 新增至批次建置服務角色的許可。

    如需 AWS Device Farm 支援,請將下列項目新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "resource_ARN" },

    對於 Service Catalog 支援,請將下列項目新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "servicecatalog:ListProvisioningArtifacts", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:DescribeProvisioningArtifact", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:UpdateProduct" ], "Resource": "resource_ARN" }, { "Effect": "Allow", "Action": [ "cloudformation:ValidateTemplate" ], "Resource": "resource_ARN" }
  5. 針對 Amazon ECR 支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "ecr:DescribeImages" ], "Resource": "resource_ARN" },
  6. 對於 Amazon ECS,下列是使用 Amazon ECS 部署動作建立管道所需的最低許可。

    { "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:UpdateService" ], "Resource": "resource_ARN" },

    您可以選擇在 Amazon ECS 中使用標記授權。選擇加入後,您必須授予下列許可:ecs:TagResource。如需如何選擇加入和判斷是否需要許可和是否強制執行標籤授權的詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的標記授權時間表

    您還必須新增iam:PassRole許可,才能將 IAM 角色用於任務。如需詳細資訊,請參閱 Amazon ECS 任務執行 IAM 角色任務的 IAM 角色。使用下列政策文字。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::aws_account_ID:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }
  7. 對於 CodeDeployToECS動作 (藍/綠部署),下列是使用 CodeDeploy 建立管道到 Amazon ECS 藍/綠部署動作所需的最低許可。

    { "Effect": "Allow", "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetDeployment", "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:GetDeploymentConfig", "ecs:RegisterTaskDefinition", "ecs:TagResource" ], "Resource": "resource_ARN" },

    您可以選擇在 Amazon ECS 中使用標記授權。選擇加入後,您必須授予下列許可:ecs:TagResource。如需有關如何選擇加入和判斷是否需要許可和是否強制執行標籤授權的詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的標記授權時間表

    您還必須新增iam:PassRole許可,才能將 IAM 角色用於任務。如需詳細資訊,請參閱 Amazon ECS 任務執行 IAM 角色任務的 IAM 角色。使用下列政策文字。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::aws_account_ID:role/ecsTaskExecutionRole_or_TaskRole_name" ] } ] }

    您也可以將 ecs-tasks.amazonaws.com新增至iam:PassedToService條件下的 服務清單,如本範例所示。

    { "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "resource_ARN", "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "cloudformation.amazonaws.com", "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } },
  8. 對於 AWS CodeStar 連線,需要下列許可,才能使用 Bitbucket Cloud 等連線的來源來建立管道。

    { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "resource_ARN" },

    如需連線的 IAM 許可的詳細資訊,請參閱連線許可參考

  9. 對於 StepFunctions動作,下列是使用 Step Functions 呼叫動作建立管道所需的最低許可。

    { "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:DescribeExecution", "states:StartExecution" ], "Resource": "resource_ARN" },
  10. 對於 AppConfig動作,下列是使用 a AWS AppConfig 叫用動作建立管道所需的最低許可。

    { "Effect": "Allow", "Action": [ "appconfig:StartDeployment", "appconfig:GetDeployment", "appconfig:StopDeployment" ], "Resource": "resource_ARN" },
  11. 針對批次建置的 CodeBuild 支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": "resource_ARN" },
  12. 對於 AWS CloudFormation StackSets 動作,需要下列最低許可。

    • 針對 CloudFormationStackSet動作,將下列項目新增至您的政策陳述式:

      { "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "resource_ARN" },
    • 針對 CloudFormationStackInstances動作,將下列項目新增至您的政策陳述式:

      { "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "resource_ARN" },
  13. 對於完整複製選項的 CodeCommit 支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": "resource_ARN" },
    注意

    若要確保您的 CodeBuild 動作可以使用完整的複製選項搭配 CodeCommit 來源,您還必須將codecommit:GitPull許可新增至專案 CodeBuild 服務角色的政策陳述式。

  14. 對於 Elastic Beanstalk,下列是使用ElasticBeanstalk部署動作建立管道所需的最低許可。

    { "Effect": "Allow", "Action": [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "rds:*", "sqs:*", "ecs:*" ], "Resource": "resource_ARN" },
    注意

    您應該將資源政策中的萬用字元取代為您想要限制存取的帳戶的資源。如需建立授予最低權限存取的政策的詳細資訊,請參閱 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

  15. 對於您要為 CloudWatch Logs 設定的管道,以下是您需要新增至 CodePipeline 服務角色的最低許可。

    { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "resource_ARN" },
    注意

    您應該將資源政策中的萬用字元取代為您想要限制存取的帳戶的資源。如需建立授予最低權限存取的政策的詳細資訊,請參閱 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

  16. 對於 命令動作支援,請將下列內容新增至您的政策陳述式:

    { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] }
    注意

    使用服務角色政策陳述式中的資源型許可,將許可範圍縮小到管道資源層級。如需詳細資訊,請參閱 中的政策範例服務角色政策許可

  17. 如需ECRBuildAndPublish動作支援,請將下列項目新增至您的政策陳述式:

    { "Statement": [ { "Sid": "ECRRepositoryAllResourcePolicy", "Effect": "Allow", "Action": [ "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability" ], "Resource": "PrivateECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken", "ecr-public:DescribeRepositories", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload", "ecr-public:PutImage", "ecr-public:BatchCheckLayerAvailability", "sts:GetServiceBearerToken" ], "Resource": "PublicECR_Resource_ARN" }, { "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" } ] }

    此外,如果尚未新增命令動作,請將下列許可新增至您的服務角色,以檢視 CloudWatch 日誌。

    { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "resource_ARN" },
    注意

    使用服務角色政策陳述式中的資源型許可,將許可範圍縮小到管道資源層級。

  18. 如需InspectorScan動作支援,請將下列項目新增至您的政策陳述式:

    { "Effect": "Allow", "Action": "inspector-scan:ScanSbom", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "resource_ARN" },

    此外,如果尚未新增命令動作,請將下列許可新增至您的服務角色,以檢視 CloudWatch 日誌。

    { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "resource_ARN" },
    注意

    使用服務角色政策陳述式中的資源型許可,將許可範圍縮小到管道資源層級。

  19. 選擇檢閱政策,確保政策沒有任何錯誤。當政策沒有錯誤時,請選擇套用政策