共有プロジェクトの使用 - AWS CodeBuild

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

共有プロジェクトの使用

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

プロジェクトを共有するための前提条件

プロジェクトを共有するには、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 を更新します。次の例では、「123456789012」で識別される AWS アカウントの root ユーザーに、読み取り専用アクセスを付与します。

    { "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-resource-policy コマンドを使用します。

    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 の「promote-resource-share-created-from-policy」コマンドを実行します。

    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 コマンドを使用して、自分に共有されているプロジェクトを返します。

共有プロジェクトへのアクセス許可

所有者のアクセス許可

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

コンシューマーのアクセス許可

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