

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ビルドプロジェクトを共有
<a name="project-sharing"></a>

プロジェクト共有を使用すると、プロジェクト所有者は自分の AWS CodeBuild プロジェクトを他の AWS アカウントまたはユーザーと共有できます。このモデルでは、プロジェクトを所有するアカウント (所有者) は、他のアカウント (コンシューマー) とプロジェクトを共有します。コンシューマーは、プロジェクトを編集または実行できません。

**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://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 (AWS RAM) と統合されます。これは、リソースを任意の AWS アカウントまたは を通じて共有できるようにするサービスです AWS Organizations。 AWS RAMでは、リソースを共有するリソースとコンシューマを指定する*リソース共有*を作成して、リソースを共有します。コンシューマーは、個々の AWS アカウント、 の組織単位 AWS Organizations、または の組織全体です AWS Organizations。

詳細については、「*[AWS RAM ユーザーガイド](https://docs.aws.amazon.com/ram/latest/userguide/)*」を参照してください。