EC2 Image Builder リソースを共有 - EC2 Image Builder

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

EC2 Image Builder リソースを共有

EC2 Image Builder は AWS Resource Access Manager (AWS RAM) と統合されているため、 AWS アカウント AWS Organizations特定のリソースを任意のユーザーまたはを介して共有できます。共有できる EC2 Image Builder リソースは下記のとおりです。

  • コンポーネント

  • イメージ

  • recipe

このセクションでは、 EC2 Image Builder リソースの共有に役立つ情報を提供します。

EC2 Image Builder での共有コンポーネント、イメージ、レシピの使用

コンポーネント、イメージ、レシピを共有することで、 AWS アカウント AWS リソース所有者はソフトウェア設定を他のユーザーや組織内で共有できます。リソース共有を一元的に管理し、設定を共有できるアカウントのセットを定義できます。

このモデルでは、コンポーネント、イメージ、 AWS アカウント またはレシピを所有する側 (所有者) がそれを他の AWS アカウント (消費者) と共有します。コンシューマーは、共有コンポーネントをイメージパイプラインに関連付けることにより、共有コンポーネント、イメージ、またはレシピの更新を自動的に利用することができます。

コンポーネント、イメージ、またはレシピの所有者は、これらのリソースを下記のユーザーと共有できます。

  • AWS アカウント 特定の組織内または組織外の組織(内) AWS Organizations。

  • AWS Organizationsの組織内の組織単位 (OU)

  • AWS Organizationsの組織全体。

  • AWS Organizations または組織外の OU。

コンポーネント、イメージ、レシピを共有するための前提条件

Image Builder コンポーネント、イメージ、またはレシピを共有するには :

  • AWS アカウントでコンポーネント、イメージ、またはレシピがあるのは必要です。自身が共有を受けているリソースを他者に共有することはできません。

  • 暗号化されたリソースに関連付けられた AWS Key Management Service (AWS KMS) キーは、対象となるアカウント、組織、または OU と明示的に共有する必要があります。

  • Image Builder AWS Organizations リソースをおよび OU と共有するには AWS RAM、共有を有効にする必要があります。詳細については、「AWS RAM ユーザーガイド」の「AWS Organizationsで共有を有効化する」を参照してください。

  • 暗号化されたイメージを異なるリージョンのアカウントに配布する場合は、ターゲットリージョンごとに KMS キーとエイリアスを作成する必要があります。 AWS KMS さらに、それらのリージョンでインスタンスを起動するユーザーは、キーポリシーで指定された KMS キーにアクセスする必要があります。

Image Builder がパイプラインビルドから作成する以下のリソースは、Image Builder リソースとは見なされません。むしろ、Image Builder がユーザーのアカウント、および配布設定で指定するアカウント、組織または組織単位 (OU) に配布する外部リソースです。 AWS リージョン

  • Amazon マシンイメージ (AMI)

  • Amazon ECR にあるコンテナイメージ。

AMI ディストリビューション設定の詳細については、「AMI ディストリビューション設定の作成と更新」を参照してください。Amazon ECR にあるコンテナイメージのディストリビューション設定の詳細については、「コンテナイメージのディストリビューション設定を作成および更新します。」を参照してください。

AMI を OU と共有する方法の詳細については、「組織または OU AWS Organizations と AMI を共有する」を参照してください。

AWS Resource Access Manager

コンポーネント、イメージ、レシピの共有は AWS Resource Access Manager (AWS RAM) と統合されています。 AWS RAM は、 AWS 任意のアカウントで、 AWS AWS Organizationsまたはそれを介してリソースを共有できるようにするサービスです。では AWS RAM、リソース共有を作成して所有しているリソースを共有します。リソース共有は共有するリソースと、それらを共有するコンシューマーを指定します。コンシューマーは AWS アカウント、個人、組織単位、または組織全体のどちらでもかまいません AWS Organizations。

詳細については AWS RAM、『AWS RAM ユーザーガイド』を参照してください。

リージョン間での共有

共有コンポーネント、イメージ、レシピは、指定された AWS リージョンでのみ共有できます。これらのリソースを共有する際、リージョン間でレプリケートされません。

コンポーネント、イメージ、またはレシピを共有する

Image Builder コンポーネント、イメージ、またはレシピを共有するには、リソース共有に追加する必要があります。リソース共有は、 AWS RAM AWS アカウント間でリソースを共有できるリソースです。リソース共有では、共有対象のリソースと、共有先のコンシューマーを指定します。コンポーネント、イメージ、またはレシピを新しいリソース共有に追加するには、 AWS RAM まずコンソールを使用してリソース共有を作成する必要があります。

AWS Organizations 組織に所属していて、組織内での共有が有効になっている場合、組織内のユーザーには共有コンポーネント、画像、またはレシピへのアクセス権が自動的に付与されます。これに該当しない場合、コンシューマーはリソースへの参加の招待を受け取り、その招待を受け入れた後で、リソースの共有に対するアクセス許可が付与されます。

リソースの共有するには、次のオプションが利用できます:

オプション 1: RAM リソース共有を作成する

RAM リソース共有を作成する時、所有しているコンポーネント、イメージ、またはレシピを 1 つのステップで共有できます。次のいずれかの方法を使用して、リソース共有を作成してください:

  • コンソール

    AWS RAM コンソールを使用してリソース共有を作成するには、『AWS RAM ユーザーガイド』の「AWS 自分が所有するリソースの共有」を参照してください。

  • AWS CLI

    AWS RAM コマンドラインインターフェイスを使用してリソース共有を作成するには、create-resource-shareのコマンドを実行します AWS CLI。

オプション 2: リソースポリシーを適用して RAM リソース共有に昇格する

リソースを共有する 2 つ目の方法では、2 つの手順を実行して、両方の手順でコマンドを実行します。 AWS CLI 最初のステップでは、の Image Builder コマンドを使用して、 AWS CLI リソースベースのポリシーを共有リソースに適用します。2 番目のステップでは、promote-resource-share-created-from-policy AWS RAM 内のコマンドを使用してリソースを RAM AWS CLI リソース共有に昇格させ、そのリソースを共有しているすべてのプリンシパルにリソースが表示されるようにします。

  1. リソースポリシーを適用します。

    リソースポリシーを正常に適用するには、共有を受けているアカウントが基礎的なリソースへのアクセス権限があることを確認する必要があります。

    該当するコマンドのリソースタイプに合ったタブを選択します。

    Image

    リソースポリシーをイメージに適用して、他のユーザーがレシピのベースイメージとして使用できるようにすることができます。

    put-image-policy Image Builder コマンドを実行して AWS CLI、 AWS イメージを共有するプリンシパルを特定します。

    aws imagebuilder put-image-policy --image-arn arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": ["imagebuilder:GetImage", "imagebuilder:ListImages"], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image/my-example-image/2019.12.03/1" ] } ] }'
    Component

    クロスアカウント共有を有効にするには、リソースポリシーを適用して、コンポーネントをビルトまたはテストします。このコマンドは、他のアカウントにレシピ内のあなたのコンポーネントを使用する権限を付与します。リソースポリシーを正常に適用するには、共有を受けているアカウントが基礎的なリソースへのアクセス権限があることを確認する必要があります。

    put-component-policy Image Builder コマンドを実行して AWS CLI、 AWS コンポーネントを共有するプリンシパルを特定します。

    aws imagebuilder put-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetComponent", "imagebuilder:ListComponents" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.03/1" ] } ] }'
    Image recipe

    リソースポリシーをイメージ レシピに適用して、クロスアカウント共有を有効にできます。このコマンドは、レシピを使用して自分のアカウントにイメージを作成する権限を他のアカウントに与えます。リソースポリシーを正常に適用するには、共有するアカウントに、ベースイメージや選択されたコンポーネントなど、レシピが参照するすべてのリソースにアクセスする権限があることを確認する必要があります。

    put-image-recipe-policy Image Builder コマンドを実行して AWS CLI、 AWS イメージを共有するプリンシパルを特定します。

    aws imagebuilder put-image-recipe-policy --image-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetImageRecipe", "imagebuilder:ListImageRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-image-recipe/2019.12.03" ] } ] }'
    Container recipe

    リソースポリシーをイメージ レシピに適用して、クロスアカウント共有を有効にできます。このコマンドは、レシピを使用して自分のアカウントにイメージを作成する権限を他のアカウントに与えます。リソースポリシーを正常に適用するには、共有するアカウントに、ベースイメージや選択されたコンポーネントなど、レシピが参照するすべてのリソースにアクセスする権限があることを確認する必要があります。

    put-container-recipe-policy Image Builder コマンドを実行して AWS CLI、 AWS イメージを共有するプリンシパルを特定します。

    aws imagebuilder put-container-recipe-policy --container-recipe-arn arn:aws:imagebuilder:us-west-2:123456789012:container-recipe/my-example-container-recipe/2021.12.03 --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": [ "imagebuilder:GetContainerRecipe", "imagebuilder:ListContainerRecipes" ], "Resource": [ "arn:aws:imagebuilder:us-west-2:123456789012:container-recipe/my-example-container-recipe/2021.12.03" ] } ] }'
    注記

    リソースの共有と共有解除に関する正しいポリシーを設定するには、imagebuilder:put* リソース所有者に権限が必要です。

  2. RAM リソース共有として昇格する

    リソースを共有したすべてのプリンシパルにリソースが表示されるようにするには、promote-resource-share-created-from-policy AWS RAM 内のコマンドを実行します。 AWS CLI

共有コンポーネント、イメージ、またはレシピの共有を解除する

所有する共有コンポーネント、イメージ、またはレシピを共有または共有を解除するには、リソース共有から削除する必要があります。そのためには、 AWS Resource Access Manager コンソールまたはを使用します。 AWS CLI

注記

コンポーネント、イメージ、レシピの共有を解除する場合、コンシューマーはそれらに依存することはできません。コンシューマーは、所有者が共有を解除する前に、共有リソースの依存関係をすべて削除する必要があります。

AWS Resource Access Manager コンソールを使用して、所有する共有コンポーネント、イメージ、またはレシピを共有解除できます。

AWS RAM ユーザーガイドリソース共有の更新を参照してください。

AWS CLIを使用して所有するコンポーネント、イメージ、またはレシピを共有解除できます。

disassociate-resource-share」コマンドを使用してリソースの共有を停止します。

共有コンポーネント、イメージ、またはレシピを識別しています。

所有者と利用者は、Image Builder コマンドを AWS CLIで 使用して、共有コンポーネント、イメージ、およびイメージレシピを識別できます。

共有コンポーネントの識別

list-components コマンドを実行して、所有しているコンポーネントと共有しているコンポーネントのリストを取得します。get-component コマンドはコンポーネント所有者の AWS アカウント ID を表示します。

共有イメージの識別

list-images コマンドを実行して、所有しているイメージと共有されているイメージのリストを取得します。get-image コマンドはイメージ所有者の AWS アカウント ID を表示します。

共有コンテナイメージを識別

list-images コマンドを実行して、所有しているイメージと共有されているイメージのリストを取得します。「get-image」 コマンドはイメージ所有者の AWS アカウント ID を表示します。

共有イメージレシピを識別

list-image-recipesコマンドを実行して、所有しているイメージレシピと共有されているイメージレシピのリストを取得します。get-image-recipeこのコマンドは、 AWS アカウント イメージレシピの所有者の ID を表示します。

共有コンテナレシピを識別

list-container-recipesコマンドを実行して、所有しているコンテナレシピと共有されているコンテナレシピのリストを取得します。get-container-recipeこのコマンドは、 AWS アカウント コンテナレシピ所有者の ID を表示します。

共有コンポーネント、イメージ、及びレシピのアクセス許可

所有者のアクセス許可

所有者は、共有コンポーネント、イメージ、またはイメージレシピが共有されなくなるまで削除できません。所有者は、利用者が誰もリソースに依存しなくなるまで、これらのリソースの共有を解除することはできません。

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

コンシューマーはコンポーネント、イメージ、またはイメージレシピを読み取ることはできますが、変更することはできません。リソースの所有者や他のコンシューマーが所有している場合、リソースを表示したり変更したりすることはできません。コンシューマーは共有コンポーネントとイメージをイメージレシピの中で使用して独自のカスタムイメージを作成できます。コンシューマーは共有イメージレシピを使用して独自のカスタムイメージを作成できます。

請求と使用量測定

EC2 Image Builder の使用には料金はかかりません。

リソースの制限

共有コンポーネント、イメージ、およびイメージレシピは、所有者のみが対応するリソース制限にカウントされます。共有されたリソースは、コンシューマーのリソース制限に影響はありません。