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

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

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

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

考慮事項

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

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

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

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

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

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

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

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

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

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

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

AMI の共有 (コンソール)

コンソールを使用して明示的な起動許可を与えるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [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 を選択し、[Permissions] (アクセス許可) タブを開きます。共有されている AMI を見つけるには、「共有 AMI の検索」を参照してください。

AMI の共有 (AWS CLI)

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

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

次のコマンドを実行すると、指定した AWS アカウント に対し、指定した AMI の起動許可が与えられます。次の例では、例の AMI ID を有効な AMI ID に置き換え、12 桁の AWS アカウント ID を account-id に置き換えます。

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

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

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

次のコマンドを実行すると、指定した AWS アカウント から指定した AMI の起動許可が削除されます。次の例では、例の AMI ID を有効な AMI ID に置き換え、12 桁の AWS アカウント ID を account-id に置き換えます。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{UserId=account-id}]"
すべての起動許可を取り消すには

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

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