

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

# ビルドプロジェクトを共有
<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/)*」を参照してください。

# 共有されている CodeBuild プロジェクトにアクセス
<a name="project-sharing-access-prereqs"></a>

共有プロジェクトにアクセスするには、コンシューマーの IAM ロールに `BatchGetProjects` アクセス許可が必要です。次のポリシーを IAM ロールに付けることができます。

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

 詳細については、「[でのアイデンティティベースのポリシーの使用 AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md)」を参照してください。

# 共有プロジェクトを共有解除
<a name="project-sharing-unshare"></a>

ビルドを含む共有されていないプロジェクトには、その所有者のみがアクセスできます。プロジェクトの共有を解除すると、以前に共有した AWS アカウントまたはユーザーはプロジェクトまたはそのビルドにアクセスできなくなります。

自己所有の共有プロジェクトを共有解除するには、それをリソース共有から削除する必要があります。これ AWS CLI を行うには、 AWS CodeBuild コンソール、 AWS RAM コンソール、または を使用できます。

**所有している共有プロジェクトの共有を解除するには (AWS RAM コンソール)**  
*AWS RAM ユーザーガイド* の「[リソース共有の更新](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)」を参照してください。

**所有する共有プロジェクトの共有を解除するには (AWS CLI)**  
[disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) コマンドを使用します。

 **所有するプロジェクトの共有を解除する (CodeBuild コマンド)** 

[delete-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/delete-resource-policy.html) コマンドを実行し、共有を解除するプロジェクトの ARN を指定します。

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

# 共有プロジェクトを識別
<a name="project-sharing-identify"></a>

所有者とコンシューマーは、 AWS CLI を使用して共有プロジェクトを識別できます。

**AWS アカウントまたはユーザーと共有されているプロジェクトを特定するには (AWS CLI)**  
[list-shared-projects](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-shared-projects.html) コマンドを使用して、自分に共有されているプロジェクトを返します。

# 共有プロジェクトへのアクセス許可
<a name="project-sharing-perms"></a>

## 所有者のアクセス許可
<a name="project-perms-owner"></a>

プロジェクトの所有者は、プロジェクトを編集し、それを使用してビルドを実行できます。

## コンシューマーのアクセス許可
<a name="project-perms-consumer"></a>

プロジェクトコンシューマーは、プロジェクトとそのビルドを表示できますが、プロジェクトを編集したり、プロジェクトを使用してビルドを実行することはできません。