AWS CodeStar 專案層級政策與許可 - AWS CodeStar

2024 年 7 月 31 日,Amazon Web Services (AWS) 將停止建立和檢視AWS CodeStar專案的支援。2024 年 7 月 31 日之後,您將無法再存取AWS CodeStar主控台或建立新專案。但是AWS CodeStar,由建立的AWS資源 (包括您的來源儲存庫、管道和組建) 將不受此變更的影響,並將繼續運作。 AWS CodeStar連線和AWS CodeStar通知不會受到此停止的影響。

 

如果您想要追蹤工作、開發程式碼以及建置、測試和部署應用程式,Amazon CodeCatalyst 提供簡化的入門程序和其他功能來管理軟體專案。進一步了解 Amazon 的功能定價 CodeCatalyst。

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

AWS CodeStar 專案層級政策與許可

建立專案時,建AWS CodeStar立管理專案資源所需的 IAM 角色和政策。政策可分為三個類別:

  • 用於專案團隊成員的 IAM 政策。

  • 用於工作者角色的 IAM 政策。

  • 用於執行時間執行角色的 IAM 政策。

用於專案團隊成員的 IAM 政策

建立專案時,AWS CodeStar 會為存取專案的擁有者、參與者和檢視者建立三個客戶受管政策。所有 AWS CodeStar 專案均包含用於以下三個存取層級的 IAM 政策。這些存取層級是專案特定的,並由具有標準名稱的 IAM 受管政策定義,其中 AWS CodeStar project id 是專案的 ID (例如):my-first-projec

  • CodeStar_project-id_Owner

  • CodeStar_project-id_Contributor

  • CodeStar_project-id_Viewer

重要

這些政策會隨時由 AWS CodeStar 變更。不得以手動方式編輯這些類別。如果要新增或變更許可,請將其他政策附加至 IAM 使用者。

新增專案團隊成員 (IAM 使用者) 到專案並選擇他們的存取層級時,對應的政策會連接到該 IAM 使用者,授與該使用者一組適當許可,能夠對專案資源執行動作。在大多數情況下,您不需要直接附加或管理 IAM 中的政策或許可。不建議將AWS CodeStar存取層級政策手動附加至 IAM 使用者。如果絕對必要,作為AWS CodeStar存取層級政策的補充,您可以建立自己的受管或內嵌政策,將自己的許可層級套用至 IAM 使用者。

政策將緊密限定在專案資源和特定動作。新資源新增到基礎設施堆疊時,AWS CodeStar 會嘗試更新團隊成員政策以包含存取新資源的許可 (如果它們屬於其中一個支援的資源類型)。

注意

AWS CodeStar 專案中的存取層級政策僅適用於該專案。這有助於確保使用者只能看到他們擁有相關許可的 AWS CodeStar 專案並與其互動,許可層級則取決於他們的角色。只有要建立 AWS CodeStar 專案的使用者才應該套用政策,以允許存取所有 AWS CodeStar 資源,無論專案為何。

所有 AWS CodeStar 存取層級政策皆不相同,依據與存取層級關聯專案相關聯的 AWS 資源而定。不同於其他 AWS 服務,這些政策是在建立專案時自訂的,並隨著專案資源變更而更新。因此,並沒有正式的擁有者、作者群或檢視者受管政策。

AWS CodeStar 擁有者角色政策

CodeStar_project-id_Owner 客戶受管政策允許使用者執行 AWS CodeStar 專案中的所有操作,沒有限制。這是唯一允許使用者新增或移除團隊成員的政策。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 擁有者角色原則

具有此政策的 IAM 使用者可以在專案中執行所有AWS CodeStar動作,但與具有該AWSCodeStarFullAccess政策的 IAM 使用者不同,使用者無法建立專案。codestar:* 許可僅適用於特定資源 (與該專案 ID 關聯的 AWS CodeStar 專案) 的範圍內。

AWS CodeStar 作者群角色政策

CodeStar_project-id_Contributor 客戶受管政策允許使用者構成專案並變更專案儀表板,但不允許使用者新增或移除團隊成員。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 作者群角色政策

AWS CodeStar 檢視者角色政策

CodeStar_project-id_Viewer 客戶受管政策允許使用者檢視 AWS CodeStar 中的專案,但不能變更其資源或新增或移除團隊成員。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 檢視者角色原則

用於工作者角色的 IAM 政策

如果您在太平洋標準時間 2018 年 12 月 6 日之後建立AWS CodeStar專案,AWS CodeStar 會建立兩個背景工作角色,以CodeStar-project-id-ToolChainCodeStar-project-id-CloudFormation。工作者角色是一個 AWS CodeStar 建立用來傳送到服務的專案特定 IAM 角色。它會授與許可,使得服務可以在您的 AWS CodeStar 專案的內容中建立資源和執行動作。工具鏈背景工作者角色具有與工具鏈服務 (例如 CodeBuild、 CodeDeploy和) 建立的信任關係。 CodePipeline專案團隊成員 (擁有者和貢獻者) 會獲授與許可,可將工作者角色傳遞至信任的下游服務。如需此角色的內嵌政策陳述式範例,請參閱AWS CodeStar工具鏈背景工作者角色政策 (在 2018 年 12 月 6 日 (太平洋標準時間)

CloudFormation Worker 角色包括所支援的選定資源的許可AWS CloudFormation,以及在應用程式堆疊中建立 IAM 使用者、角色和政策的許可。它還與 AWS CloudFormation 建立信任關係。若要降低權限提升和破壞性動作的風險,AWS CloudFormation 角色政策包含的條件要求在基礎設施堆疊中,針對每個 IAM 實體 (使用者或角色) 建立專案特定許可界限。如需此角色的內嵌政策陳述式範例,請參閱AWS CloudFormation 工作者角色政策

對於 2018 年 12 月 6 日之前建立的 AWS CodeStar 專案,PDT AWS CodeStar 會為工具鏈資源 (例如 CodePipeline、 CodeBuild和 CloudWatch 事件) 建立個別的工作者角色,並為支援有限資源集的工作者角色建立工作者角色。AWS CloudFormation這每個角色已與對應的服務建立信任關係。專案團隊成員 (擁有者和貢獻者) 和與些其他工作者角色會獲授與許可,可將角色傳遞至信任的下游服務。工作者角色的許可會在內嵌政策中定義,它可將範圍限縮在角色可以對一組專案資源執行的一組基本動作。這些許可是靜態的。它們包含專案建立時包含資源的許可,但不會在對專案新增新資源時更新。如需這些政策陳述式的範例,請參閱:

執行角色的 IAM 政策

針對在 2018 年 12 月 6 日 (太平洋標準時間) 之後建立的專案,AWS CodeStar 會為應用程式堆疊中的範例專案建立一般執行角色。系統會使用許可界限政策,將該角色範圍限縮在專案資源。當您擴展範例專案時,您可以建立其他 IAM 角色,而AWS CloudFormation角色政策要求使用權限界限將這些角色限定為範圍,以避免權限提升。如需詳細資訊,請參閱將 IAM 角色新增至專案

對於在 2018 年 12 月 6 日 (太平洋標準時間) 之前建AWS CodeStar立的 Lambda 專案,該角色會建立 Lambda 執行角色,該角色具有內嵌政策的權限,可對專案AWS SAM堆疊中的資源執行動作。當新資源新增至 SAM 範本時,會AWS CodeStar嘗試更新 Lambda 執行角色原則,以將權限納入新資源 (如果這些權限是受支援的資源類型之一)。

IAM 許可界限

在 2018 年 12 月 6 日 (太平洋標準時間) 之後,當您建立專案時,AWS 會 CodeStar 建立客戶受管政策,並將該政策指派為 IAM 許可界限給專案中的 IAM 角色。AWS CodeStar 要求在應用程式堆疊中建立的所有 IAM 實體都必須具有許可界限。許可界限可控制角色可以有的最大許可,但無法提供該角色任何許可。許可政策可定義角色的許可。這表示無論新增多少額外的許可至角色,使用該角色的任何人都無法執行超過許可界限中包含的動作。有關如何評估許可政策和許可邊界的詳細資訊,請參閱《IAM 使用者指南》中的政策評估邏輯

AWS CodeStar 使用專案特定的許可界限來防止專案外部資源的權限提升。AWS CodeStar 許可界限包括專案資源的 ARN。如需此政策陳述式的範例,請參閱AWS CodeStar 許可邊界政策

當您透過應用程式堆疊 (template.yml) 從專案新增或移除支援的資源時,AWS CodeStar 轉換會更新此政策。

新增 IAM 許可界限至現有的專案

如果您擁有在 2018 年 12 月 6 日 PDT 之前建立的 AWS CodeStar 專案,則應手動將權限界限新增至專案中的 IAM 角色。做為最佳實務,建議您使用只包含專案中資源的專案特定界限,以防止將權限提升至專案外部的資源。請按照以下步驟使用隨專案發展而更新的 AWS CodeStar 受管許可界限。

  1. 登入 AWS CloudFormation 主控台,並找到專案中工具鏈堆疊的範本。此範本名為 awscodestar-project-id

  2. 依序選擇範本、Actions (動作)View/Edit template in Designer (在 Designer 中檢視/編輯範本)

  3. 找到 Resources 區段,並在區段上方包含下列程式碼片段。

    PermissionsBoundaryPolicy: Description: Creating an IAM managed policy for defining the permissions boundary for an AWS CodeStar project Type: AWS::IAM::ManagedPolicy Properties: ManagedPolicyName: !Sub 'CodeStar_${ProjectId }_PermissionsBoundary' Description: 'IAM policy to define the permissions boundary for IAM entities created in an AWS CodeStar project' PolicyDocument: Version: '2012-10-17' Statement: - Sid: '1' Effect: Allow Action: ['*'] Resource: - !Sub 'arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/awscodestar-${ProjectId}-*'

    您可能需要其他 IAM 許可才能從AWS CloudFormation主控台更新堆疊。

  4. (選擇性) 如果要建立應用程式特定的 IAM 角色,請完成此步驟。從 IAM 主控台更新附加至專案AWS CloudFormation角色的內嵌政策,以包含下列程式碼片段。您可能需要其他 IAM 資源才能更新政策。

    { "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::{AccountId}:role/CodeStar-{ProjectId}*", "Effect": "Allow" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:DeleteRole", "iam:DeleteUser" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRolePolicy", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPermissionsBoundary", "iam:PutRolePermissionsBoundary" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::{AccountId}:policy/CodeStar_{ProjectId}_PermissionsBoundary" } }, "Effect": "Allow" }
  5. 透過專案管道推送變更,讓 AWS 以適當的許可更 CodeStar 新許可界限。

如需詳細資訊,請參閱將 IAM 角色新增至專案