2024 年 7 月 31 日,Amazon Web Services (AWS) 將停止建立和檢視 AWS CodeStar 專案的支援。2024 年 7 月 31 日之後,您將無法再存取 AWS CodeStar 主控台或建立新專案。但是 AWS CodeStar,由建立的 AWS 資源 (包括您的來源儲存庫、管道和組建) 將不受此變更的影響,並將繼續運作。 AWS CodeStar 連線和 AWS CodeStar 通知不會受到此停止的影響。
如果您想要追蹤工作、開發程式碼以及建置、測試和部署應用程式,Amazon CodeCatalyst 提供簡化的入門程序和其他功能來管理軟體專案。進一步了解 Amazon 的功能
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CodeStar 專案層級原則和權限
建立專案時, AWS CodeStar 會建立管理專案資源所需的IAM角色和政策。政策可分為三個類別:
-
IAM專案團隊成員的原則。
-
IAM背景工作者角色的原則。
-
IAM執行階段執行角色的原則。
IAM團隊成員的政策
建立專案時, AWS CodeStar 會為專案的擁有者、參與者和檢視者存取權建立三個客戶管理的政策。所有 AWS CodeStar 專案都包含這三個存取層級的IAM政策。這些存取層級是專案特定的,並由具有標準名稱的IAM受管理原則定義,其中 project-id
是 AWS CodeStar 專案的 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_
客戶管理策略允許用戶不受任何限制地執行 AWS CodeStar 項目中的所有操作。這是唯一允許使用者新增或移除團隊成員的政策。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 擁有者角色原則。project-id
_Owner
具有此原則的IAM使用者可以在專案中執行所有 AWS CodeStar 動作,但與具有該AWSCodeStarFullAccess
策略的IAM使用者不同,使用者無法建立專案。codestar:*
權限限制在特定資源 (與該專案 ID 關聯的 AWS CodeStar 專案) 的範圍內。
AWS CodeStar 貢獻者角色原則
CodeStar_
客戶受管政策允許使用者構成專案並變更專案儀表板,但不允許使用者新增或移除團隊成員。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 作者群角色政策。project-id
_Contributor
AWS CodeStar 檢視者角色原則
CodeStar_
客戶受管政策允許使用者檢視 AWS CodeStar中的專案,但不能變更其資源或新增或移除團隊成員。政策的內容可能因與專案關聯的資源而有所不同。如需範例,請參閱AWS CodeStar 檢視者角色原則 。project-id
_Viewer
IAM背景工作者角色原則
如果您在 2018 年 PDT 12 月 6 日之後建立 AWS CodeStar 專案,則AWS CodeStar 會建立兩個背景工作角色,以CodeStar-
及project-id
-ToolChainCodeStar-
。Worker 角色是專案特定IAM角色,可 AWS CodeStar 建立以傳遞至服務。它會授與權限,以便服務可以在專案的內容中建立資源並執行動 AWS CodeStar 作。工具鏈背景工作者角色具有與工具鏈服務 (例如 CodeBuild、 CodeDeploy和) 建立的信任關係。 CodePipeline專案團隊成員 (擁有者和貢獻者) 會獲授與許可,可將工作者角色傳遞至信任的下游服務。如需此角色的內嵌政策陳述式範例,請參閱AWS CodeStar 工具鏈背景工作者角色政策 (2018 年 PDT 12 月 6 日之後)。project-id
-CloudFormation
CloudFormation Worker 角色包括所支援之所選資源的權限 AWS CloudFormation,以及在應用程式堆疊中建立IAM使用者、角色和原則的權限。它還與建立了信任關係 AWS CloudFormation。為了減輕權限提升和破壞性動作的風險, AWS CloudFormation 角色原則包含一個條件,該條件需要基礎結構堆疊中建立的每個IAM實體 (使用者或角色) 的專案特定權限界限。如需此角色的內嵌政策陳述式範例,請參閱AWS CloudFormation 工作者角色原則。
對於 2018 年 12 月 6 日之前建PDT AWS CodeStar 立的AWS CodeStar 專案,會為工具鏈資源 (例如 CodePipeline、 CodeBuild和 E CloudWatch vents) 建立個別的 Worker 角色,並為支援有限資源集的 AWS CloudFormation 工作者角色建立工作者角色。這每個角色已與對應的服務建立信任關係。專案團隊成員 (擁有者和貢獻者) 和與些其他工作者角色會獲授與許可,可將角色傳遞至信任的下游服務。工作者角色的許可會在內嵌政策中定義,它可將範圍限縮在角色可以對一組專案資源執行的一組基本動作。這些許可是靜態的。它們包含專案建立時包含資源的許可,但不會在對專案新增新資源時更新。如需這些政策陳述式的範例,請參閱:
IAM執行角色的原則
針對 2018 年 12 月 6 日之後建立的專案PDT,AWS CodeStar 會為應用程式堆疊中的範例專案建立一般執行角色。系統會使用許可界限政策,將該角色範圍限縮在專案資源。當您在範例專案上展開時,您可以建立其他IAM角色,而且 AWS CloudFormation 角色原則要求使用權限界限來限定這些角色的範圍,以避免權限提升。如需詳細資訊,請參閱將 IAM 角色新增至專案。
對於 2018 年 12 月 6 日之前建立的 Lambda 專案PDT, AWS CodeStar 會建立 Lambda 執行角色,該角色具有內嵌政策的內嵌政策,可對專案 AWS SAM 堆疊中的資源執行動作。當新資源新增至SAM範本時,如果 Lambda 執行角色原則是受支援的資源類型之一,則會 AWS CodeStar 嘗試更新 Lambda 執行角色原則,以包含新資源的權限。
IAM 許可界限
2018 年 12 月 6 日之後PDT,當您建AWS CodeStar 立專案時,會建立客戶管理的政策,並將該原則指派為IAM權限界限給專案中的IAM角色。AWS CodeStar需要在應用程式堆疊中建立的所有IAM實體具有權限界限。許可界限可控制角色可以有的最大許可,但無法提供該角色任何許可。許可政策可定義角色的許可。這表示無論新增多少額外的許可至角色,使用該角色的任何人都無法執行超過許可界限中包含的動作。如需有關如何評估權限原則和權限界限的詳細資訊,請參閱《IAM使用指南》中的《原則評估邏輯》。
AWS CodeStar 使用專案特定的權限界限來防止專案外部資源的權限提升。AWS CodeStar 權限界限包括ARNs專案資源。如需此政策陳述式的範例,請參閱AWS CodeStar 權限界限原則。
當您透過應用程式堆疊 (template.yml
) 從專案新增或移除支援的資源時,AWS CodeStar 轉換會更新此原則。
將IAM權限邊界新增至現有專案
如果您有在 2018 年 12 月 6 日之前建立的AWS CodeStar 專案PDT,則應手動將權限界限新增至專案中的IAM角色。做為最佳實務,建議您使用只包含專案中資源的專案特定界限,以防止將權限提升至專案外部的資源。請依照下列步驟使用隨專案發展而更新的AWS CodeStar 受管理權限界限。
-
登入 AWS CloudFormation 主控台,並在專案中找到工具鏈堆疊的範本。此範本名為
awscodestar-
。project-id
-
依序選擇範本、Actions (動作) 和 View/Edit template in Designer (在 Designer 中檢視/編輯範本)。
-
找到
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 主控台更新堆疊。
-
(選擇性) 如果您要建立應用程式特定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" }
-
透過專案管道推送變更,以便使用適當的權限更AWS CodeStar 新權限界限。
如需詳細資訊,請參閱將 IAM 角色新增至專案。