特定の AWS アカウントとの AMI の共有 - Amazon Elastic Compute Cloud

特定の AWS アカウントとの AMI の共有

AMI を一般公開せず、特定の AWS アカウントとだけ共有することもできます。これに必要なものは AWS アカウント ID のみです。

考慮事項

特定の AWS アカウントで AMI を共有する場合は、以下について検討してください。

  • 共有制限なし – AMI を共有できる AWS アカウントの数に制限はありません。

  • タグ – 共有 AMI にアタッチしたユーザー定義のタグは、自分の AWS アカウントでのみ利用でき、AMI を共有している他のアカウントでは利用できません。

  • 暗号化とキー — 暗号化されていないスナップショットと暗号化されたスナップショットによってバックアップされた AMI を共有できます。

    • 暗号化されたスナップショットは、カスタマーマネージド型キーを使用して暗号化する必要があります。デフォルトの AWS 管理キーで暗号化されたスナップショットでバックアップされた AMI を共有することはできません。詳細については、Amazon EBS スナップショットの共有 を参照してください。

    • 暗号化されたスナップショットによってバックアップされた AMI を共有する場合、スナップショットの暗号化に使用されたカスタマーマネージド型キーの使用を AWS アカウントに許可する必要があります。詳細については、「組織と OU に KMS キーの使用を許可する」を参照してください。

  • リージョン – AMI はリージョンのリソースです。共有した AMI は、そのリージョンでのみ使用できます。AMI を他のリージョンで利用できるようにするには、AMI をそのリージョンにコピーし、共有します。詳細については、AMI のコピー を参照してください。

  • 使用 — AMI を共有する場合、ユーザーは AMI からのインスタンスのみを起動できます。AMI はそれを削除、共有、または変更することはできません。ただし、AMI を使用してインスタンスを起動した後は、インスタンスから AMI を作成できます。

  • 共有 AMI のコピー — 別のアカウントのユーザーが共有 AMI をコピーする場合は、AMI をバックアップするストレージに対する読み取り権限をそのユーザーに付与する必要があります。詳細については、アカウント間のコピー を参照してください。

  • 請求 — 他の AWS アカウントがお客様の AMI を使用してインスタンスを起動しても、お客様には請求されません。AMI を使用してインスタンスを起動するアカウントには、起動するインスタンスに対して請求されます。

AMI の共有 (コンソール)

New console

コンソールを使用して明示的な起動許可を与えるには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [AMIs] (AMI) を選択します。

  3. リストで AMI を選択し、[Actions] (アクション) から [Edit AMI permissions] (AMI 権限の編集) を選択します。

  4. [Private] (プライベート) を選択します。

  5. [Shared accounts] (共有アカウント) で、[Add account ID] (アカウント ID の追加) を選択します。

  6. AWS アカウント ID には、AMI を共有したい AWS アカウント ID を入力し、[Share AMI] (AMI の共有) を選択します。

    この AMI を複数のアカウントで共有するには、必要なアカウント ID がすべて追加されるまでステップ 5 と 6 を繰り返します。

    注記

    AMI を共有するために、AMI の参照先の Amazon EBS スナップショットを共有する必要はありません。共有する必要があるのは AMI 自体だけです。起動の際に、参照先の Amazon EBS スナップショットへのインスタンスアクセスが自動的に提供されます。ただし、AMI が参照するスナップショットを暗号化するために使用した KMS キー は共有する必要があります。詳細については、Amazon EBS スナップショットの共有 を参照してください。

  7. 完了したら、[Save changes] (変更を保存) を選択します。

  8. (オプション) AMI を共有した AWS アカウント ID を表示するには、リストから AMI を選択し、[アクセス許可] タブを開きます。共有されている AMI を見つけるには、「共有 AMI の検索」を参照してください。

Old console

コンソールを使用して明示的な起動許可を与えるには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [AMIs] を選択します。

  3. リストで AMI を選択し、[Actions] から [Modify Image Permissions] を選択します。

  4. [AWS Account Number] フィールドに AMI を共有するユーザーの AWS アカウント番号を指定し、[Add Permission] を選択します。

    この AMI を複数のユーザーと共有するには、この手順を繰り返して、必要なすべてのユーザーを追加します。

    注記

    AMI を共有するために、AMI の参照先の Amazon EBS スナップショットを共有する必要はありません。共有する必要があるのは AMI 自体だけです。起動の際に、参照先の Amazon EBS スナップショットへのインスタンスアクセスが自動的に提供されます。ただし、AMI が参照するスナップショットを暗号化するために使用した KMS キー は共有する必要があります。詳細については、Amazon EBS スナップショットの共有 を参照してください。

  5. 完了したら、[保存] を選択します。

  6. (オプション) AMI を共有した AWS アカウント ID を表示するには、リストから AMI を選択し、[アクセス許可] タブを開きます。共有されている AMI を見つけるには、「共有 AMI の検索」を参照してください。

AMI の共有 (AWS CLI)

AMI を共有するには、次の例のように modify-image-attribute コマンド (AWS CLI) を使用します。

明示的な起動許可を与えるには

次のコマンドを使用すると、指定した AWS アカウントに対し、指定した AMI の起動許可が与えられます。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{UserId=123456789012}]"
注記

AMI を共有するために、AMI の参照先の Amazon EBS スナップショットを共有する必要はありません。共有する必要があるのは AMI 自体だけです。起動の際に、参照先の Amazon EBS スナップショットへのインスタンスアクセスが自動的に提供されます。ただし、AMI が参照するスナップショットを暗号化するために使用した KMS キー は共有する必要があります。詳細については、「Amazon EBS スナップショットの共有」を参照してください。

アカウントに与えた起動許可を取り消すには

次のコマンドを使用すると、指定した AWS アカウントから指定した AMI の起動許可が削除されます。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{UserId=123456789012}]"

すべての起動許可を取り消すには

次のコマンドを使用すると、指定した AMI からパブリック起動許可と明示的起動許可がすべて削除されます。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。

aws ec2 reset-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission