

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

# 共用建置專案
<a name="project-sharing"></a>

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

**Topics**
+ [共用專案](#project-sharing-share)
+ [相關服務](#project-sharing-related)
+ [存取與您共用的 CodeBuild 專案](project-sharing-access-prereqs.md)
+ [取消共用共用專案](project-sharing-unshare.md)
+ [識別共用專案](project-sharing-identify.md)
+ [共用的專案許可](project-sharing-perms.md)

## 共用專案
<a name="project-sharing-share"></a>

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

您可以將專案新增至現有的資源分享，或在 [AWS RAM 主控台](https://console.aws.amazon.com/ram)中建立資源分享。

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

若要與組織單位或整個組織共用專案，必須啟用透過 AWS Organizations來共用的功能。如需詳細資訊，請參閱《*AWS RAM 使用者指南*》中的[透過 AWS Organizations啟用共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)。

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

**共用專案的先決條件**  
開始共用專案之前，請確定 AWS 您的帳戶擁有該專案。您無法將已分享給您的專案再分享出去。

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

1. 在 https：//[https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) 開啟 AWS CodeBuild 主控台。

1. 在導覽窗格中，選擇 **Build projects (建置專案)**。
**注意**  
根據預設，只會顯示最新的 10 個組建專案。若要檢視更多組建專案，請選擇齒輪圖示，然後針對 **Projects per page (每頁顯示專案數)** 選擇不同的值，或使用向前和向後箭頭。

1. 選擇您要共用的專案，然後選擇 **Share (共用)**。如需詳細資訊，請參閱*《AWS RAM 使用者指南》*中的[建立資源共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create)。

**共用您擁有的專案AWS RAM （主控台）**  
請參閱 *AWS RAM 使用者指南*中的[建立資源共用](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

**共用您擁有的專案 (AWS RAM 命令）**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

**共用您擁有的專案 (CodeBuild 命令）**<a name="codebuild-command"></a>

使用 [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html) 命令：

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

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement":[{
       "Effect":"Allow",
       "Action":[
         "codebuild:BatchGetProjects",
         "codebuild:BatchGetBuilds",
         "codebuild:ListBuildsForProject"],
       "Resource":"{{arn:aws:iam::*:role/Service*}}"
     }]
   }
   ```

------

1. 使用專案 ARN 和識別符更新 `policy.json`，以與之共用。下列範例會將唯讀存取權授予 123456789012 所識別 AWS 帳戶的根使用者。

------
#### [ JSON ]

****  

   ```
   {
     "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"
     }]
   }
   ```

------

1. 執行 [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html) 命令。

   ```
   aws codebuild put-resource-policy --resource-arn {{<project-arn>}} --policy file://policy.json
   ```

1. 取得 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>}} 值。

1. 執行 AWS RAM [promote-resource-share-created-from-policy](https://docs.aws.amazon.com/cli/latest/reference/ram/promote-resource-share-created-from-policy.html) 命令。

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

## 相關服務
<a name="project-sharing-related"></a>

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

如需詳細資訊，請參閱*「[AWS RAM 使用者指南」](https://docs.aws.amazon.com/ram/latest/userguide/)*。