プロジェクト共有により、プロジェクト所有者は他の AWS アカウントまたはユーザーと AWS CodeBuild プロジェクトを共有できます。このモデルでは、プロジェクトを所有するアカウント (所有者) は、他のアカウント (コンシューマー) とプロジェクトを共有します。コンシューマーは、プロジェクトを編集または実行できません。
プロジェクトを共有
コンシューマーは、共有しているプロジェクトとビルドを表示するために AWS CLI と AWS CodeBuild コンソールの両方を使用できます。コンシューマーは、プロジェクトを編集または実行できません。
既存のリソース共有にプロジェクトを追加すること、そして、AWS RAM コンソール
注記
リソース共有に追加されたビルドを含むプロジェクトは削除できません。
組織単位または組織全体でプロジェクトを共有するには、AWS Organizations との共有を有効にする必要があります。詳細については、AWS RAM ユーザーガイドの「AWS Organizations で共有を有効化する」を参照してください。
所有しているプロジェクトを共有するには、AWS CodeBuild コンソール、AWS RAM コンソール、または AWS CLI を使用できます。
プロジェクトを共有するための前提条件
プロジェクトの共有を開始する前に、AWS アカウントがそのプロジェクトを所有していることを確認してください。自身が共有を受けているプロジェクトは共有できません。
所有するプロジェクトを共有するには (CodeBuild コンソール)
AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home
) を開きます。 -
ナビゲーションペインで、[Build projects] を選択します。
注記
デフォルトでは、最新の 10 個のビルドプロジェクトのみが表示されます。さらに多くのビルドプロジェクトを表示するには、歯車アイコンを選択して [Projects per page (ページ毎プロジェクト数)] で別の値を選択するか、前後の矢印を使用します。
-
共有するプロジェクトを選択し、[Share (共有)] を選択します。詳細については、AWS RAM ユーザーガイドの「リソースの共有の作成」を参照してください。
所有するプロジェクトを共有するには (AWS RAM コンソール)
AWS RAM ユーザーガイド の「リソース共有の作成」を参照してください。
所有するプロジェクトを共有するには (AWS RAM コマンド)
create-resource-share コマンドを使用します。
所有するプロジェクトを共有するには (CodeBuild コマンド)
put-resource-policy コマンドを使用します:
-
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>
" }] } -
共有するプロジェクト ARN と識別子で
policy.json
を更新します。次の例では、「123456789012」で識別される 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" }] }
-
put-resource-policy コマンドを使用します。
aws codebuild put-resource-policy --resource-arn
<project-arn>
--policy file://policy.json -
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>
値は、次のステップで使用します。 -
AWS RAM の「promote-resource-share-created-from-policy」コマンドを実行します。
aws ram promote-resource-share-created-from-policy --resource-share-arn
<resource-share-arn>
関連サービス
プロジェクト共有は、AWS Resource Access Manager (AWS RAM) と統合されます。これは、任意の AWS アカウントまたは AWS Organizations を通じて AWS リソースを共有することを可能にするサービスです。AWS RAM では、リソースを共有するリソースとコンシューマを指定するリソース共有を作成して、リソースを共有します。コンシューマーは、個別の AWS アカウントや、AWS Organizations 内の組織単位または AWS Organizations 組織全体として指定できます。
詳細については、AWS RAM ユーザーガイドを参照してください。