使用共用專案 - AWS CodeBuild

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

使用共用專案

專案共享功能可讓專案擁有者共用其AWS CodeBuild項目與其他AWS帳户或用户。在此模型中,擁有專案的帳戶 (擁有者) 將專案分享給其他帳戶 (消費者)。消費者無法編輯或執行專案。

共用專案的先決條件

若要共用專案,您的 AWS 帳戶必須擁有該專案。您無法將已分享給您的專案再分享出去。

存取與您共用之專案的先決條件

若要存取共用專案,消費者的 IAM 角色需要BatchGetProjects許可。您可以將下列政策連接至其 IAM 角色:

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:BatchGetProjects" ] }

如需詳細資訊,請參閱 將以身分為基礎的政策用於 AWS CodeBuild

專案共用功能與 AWS Resource Access Manager (AWS RAM) 服務整合。該服務可讓您將您的 AWS 資源分享給任何 AWS 帳戶或透過 AWS Organizations 來共用。有了 AWS RAM,您可以建立資源共用,指定資源及要與之分享的消費者,以分享資源。消費者可以是個別的 AWS 帳戶,或 AWS Organizations 中的組織單位或 AWS Organizations 中的整個組織。

如需詳細資訊,請參閱《AWS RAM 使用者指南》。

共用專案

消費者可以使用AWS CLI和AWS CodeBuild主控台來檢視您已共用的專案和建置。消費者無法編輯或執行專案。

您可以將專案新增至現有的資源分享,或在 AWS RAM 主控台中建立資源分享。

注意

您無法刪除其建置已新增至資源分享的專案。

若要與組織單位或整個組織共用專案,必須啟用透過 AWS Organizations 來共用的功能。如需詳細資訊,請參閱 AWS RAM 使用者指南中的透過 AWS Organizations 啟用共用

您可以使用 AWS CodeBuild 主控台、AWS RAM 主控台或 AWS CLI 來共用自己擁有的專案。

共用您擁有的專案 (CodeBuild 主控台)

  1. 開啟AWS CodeBuild主控台https://console.aws.amazon.com/codesuite/codebuild/home

  2. 在導覽窗格中,選擇 Build projects (建置專案)

    注意

    根據預設,只會顯示最新的 10 個組建專案。若要檢視更多組建專案,請選擇齒輪圖示,然後針對 Projects per page (每頁顯示專案數) 選擇不同的值,或使用向前和向後箭頭。

  3. 選擇您要共用的專案,然後選擇 Share (共用)。如需詳細資訊,請參閱「」建立資源共享中的AWS RAM使用者指南

共用您擁有的專案 (AWS RAM 主控台)

請參閱建立資源共享中的AWS RAM使用者指南

共用您擁有的專案 (AWS RAM 命令)

使用 create-resource-share 命令。

共用您擁有的專案 (CodeBuild 命令)

使用 put-resource-policy 命令:

  1. 建立名為 policy.json 的檔案,並將以下命令複製到其中。

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"<consumer-aws-account-id-or-user>" }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"<arn-of-project-to-share>" }] }
  2. 使用專案 ARN 和識別符更新 policy.json,以與之共用。下列範例會將唯讀存取權授予以存取AWS帳户已經確定。

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS": [ "123456789012" ] }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"arn:aws:codebuild:us-west-2:123456789012:project/my-project" }] }
  3. 執行put-紮實命令。

    aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
  4. 獲取AWS RAM資源共享 ARN。

    aws ram list-resources --resource-owner SELF --resource-arns <project-arn>

    這會傳回類似以下的回應:

    { "resources": [ { "arn": "<project-arn>", "type": "<type>", "resourceShareArn": "<resource-share-arn>", "creationTime": "<creation-time>", "lastUpdatedTime": "<last-update-time>" } ] }

    從響應中,複製<resource-share-arn>值以便在下一個步驟使用。

  5. 執行AWS RAM 促銷資源共享創建自策略命令。

    aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>

取消共用已共用的專案

只有其擁有者可以存取已取消共享的專案 (包括其建置)。如果您取消共享專案,您之前與之共用的任何 AWS 帳戶或使用者無法存取專案或其建置。

若要取消共享您擁有的已共用專案,您必須從資源共享中移除它。您可以使用 AWS CodeBuild 主控台、AWS RAM 主控台或 AWS CLI 執行此作業。

取消共享您擁有的共用專案 (AWS RAM 主控台)

請參閱 AWS RAM 使用者指南中的更新資源共享

取消共享您擁有的共用專案 (AWS CLI)

使用 disassociate-resource-share 命令。

取消共享您擁有的專案 (CodeBuild 命令)

執行 delete-resource-policy 命令並指定您要取消共享之專案的 ARN:

aws codebuild delete-resource-policy --resource-arn project-arn

識別共用的專案

擁有者和消費者可以使用 AWS CLI 識別已共用的專案。

識別與 AWS 帳戶或使用者 (AWS CLI) 共用的專案

使用 list-shared-projects 命令執行已與您共用的專案。

共用的專案許可

擁有者的許可

專案擁有者可以編輯專案,並用它執行建置。

消費者的許可

專案消費者可以檢視專案及其建置,但無法編輯專案或使用它來執行建置。