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

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

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

AWS アカウント ID は、AWS アカウント を一意に識別する 12 桁の数値です (012345678901 など)。詳細については、「AWS アカウント管理 リファレンスガイド」の「AWS アカウント 識別子の表示」を参照してください。

考慮事項

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

  • 所有権 — AMI を共有するには、お客様の AWS アカウント がその AMI を所有している必要があります。

  • 共有制限 – リージョン内で AMI を共有できるエンティティの最大数については、「Amazon EC2 Service Quotas」をご覧ください。

  • タグ - ユーザー定義タグ (AMI にアタッチするタグ) は共有できません。AMI を共有する場合、ユーザー定義タグは AMI が共有されている AWS アカウント では使用できません。

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

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

    • 暗号化されたスナップショットは、KMS キーを使用して暗号化する必要があります。デフォルトの AWS 管理キーで暗号化されたスナップショットでバックアップされた AMI を共有することはできません。

    • 暗号化されたスナップショットによってバックアップされた AMI を共有する場合、スナップショットの暗号化に使用された KMS キーの使用を AWS アカウント に許可する必要があります。詳細については、「組織と OU に KMS キーの使用を許可する」を参照してください。暗号化にカスタマー管理されたキーを使用する際に、Auto Scaling インスタンスの起動に必要となるキーポリシーを設定するには、 「Amazon EC2 Auto Scaling ユーザーガイド」の「暗号化ボリュームで使用するために必要な AWS KMS key ポリシー」を参照してください。

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

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

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

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

Console
明示的な起動許可を与えるには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで [AMI] を選択してください。

  3. リストで AMI を選択し、[アクション] から [AMI 権限の編集] を選択してください。

  4. [プライベート] を選択してください。

  5. [共有アカウント] で、[アカウント ID の追加] () を選択してください。

  6. AWS アカウント ID には、AMI を共有したい AWS アカウント ID を入力し、[AMI の共有] を選択してください。

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

  7. 完了したら、変更を保存 を選択してください。

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

AWS CLI

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

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

次の例では、指定した AWS アカウントに対し、指定した AMI の起動許可が与えられます。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{UserId=123456789012}]"
アカウントに与えた起動許可を取り消すには

次の例では、指定した 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
PowerShell

AMI を共有するには、次の例のように Edit-EC2ImageAttribute コマンド (Windows PowerShell用ツール) を使用します。

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

次の例では、指定した AWS アカウントに対し、指定した AMI の起動許可が与えられます。

Edit-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -Attribute launchPermission ` -OperationType add ` -UserId "123456789012"
アカウントに与えた起動許可を取り消すには

次の例では、指定した AWS アカウントから指定した AMI の起動許可が削除されます。

Edit-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -Attribute launchPermission -OperationType remove ` -UserId "123456789012"
すべての起動許可を取り消すには

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

Reset-EC2ImageAttribute ` -ImageId ami-0abcdef1234567890 ` -Attribute launchPermission