Amazon EC2 で使用するために AMI を公開する
AMI をすべての AWS アカウント と共有することで公開できます。
AMI がパブリックに共有されないようにしたい場合は、AMI のパブリックアクセスをブロックできます。これにより、AMI を公開しようとするあらゆる試みがブロックされ、不正アクセスや AMI データの悪用を防ぐのに役立ちます。パブリックアクセスのブロックを有効にしても、既に公開されている AMI には影響しないことに注意してください。AMI は引き続き公開されています。詳細については、「AMI のパブリックアクセスのブロックについて」を参照してください。
特定のアカウントのみが AMI を使用してインスタンスを起動可能にする方法については、「特定の AWS アカウントとの AMI の共有」を参照してください。
考慮事項
AMI を公開する前に、以下の点を検討してください。
-
所有権 — AMI を公開するには、お客様の AWS アカウント がその AMI を所有している必要があります。
-
リージョン – AMI はリージョンのリソースです。共有した AMI は、共有したリージョンでのみ使用できます。AMI を他のリージョンで利用できるようにするには、AMI をそのリージョンにコピーし、共有します。詳細については、「Amazon EC2 AMI のコピー」を参照してください。
-
パブリックアクセスをブロック – AMI をパブリックに共有するには、AMI をパブリックに共有する各リージョンで AMI のパブリックアクセスのブロックを無効にする必要があります。AMI をパブリックに共有した後で、AMI のパブリックアクセスのブロックを再度有効にして、AMI がそれ以上パブリックに共有されないようにできます。
-
公開できない AMI - 次のコンポーネントが含まれる AMI は公開できません (ただし、AMI を特定の AWS アカウント と共有することはできます)。
-
暗号化されたボリューム
-
暗号化されたボリュームのスナップショット
-
製品コード
-
機密データが公開されないようにする - AMI を共有するときに機密データが公開されないようにするには、「共有 Linux AMI の作成に関する推奨事項」のセキュリティ考慮事項を読み、推奨アクションに従います。
-
使用 — AMI を共有する場合、ユーザーは AMI からのインスタンスのみを起動できます。AMI はそれを削除、共有、または変更することはできません。ただし、AMI を使用してインスタンスを起動した後は、起動したインスタンスから AMI を作成できます。
-
自動非推奨 – すべてのパブリック AMI を非推奨にする日はデフォルトで AMI 作成日の 2 年後になっています。非推奨にする日は 2 年より前の日付に設定できます。非推奨にする日を取り消す場合や、非推奨にする日をもっと先の日付に変える場合は、AMI を特定の AWS アカウント とのみ共有するようにして、AMI を非公開にする必要があります。
-
旧型の AMI の削除 — パブリック AMI の廃止日が過ぎ、その AMI で新しいインスタンスが 6 か月以上起動されなかった場合、AWS はそのパブリック共有プロパティを削除し、古くなった AMI がパブリック AMI リストに表示されないようにします。
-
請求 — 他の AWS アカウント がお客様の AMI を使用してインスタンスを起動しても、お客様には請求されません。AMI を使用してインスタンスを起動するアカウントには、起動するインスタンスに対して請求されます。
すべての AWS アカウントで AMI を共有 (パブリックに共有)
AMI を公開すると、コンソールの [コミュニティ AMI] で使用できるようになります。これには、EC2 コンソールの左側のナビゲーターにある [AMI カタログ] から、またはコンソールを使用してインスタンスを起動するときにアクセスできます。AMI は、公開してから [Community AMIs] に表示されるまでに、しばらく時間がかかることもあります。
- Console
-
[To make an AMI public]
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
ナビゲーションペインで [AMIs] (AMI) を選択します。
-
リストから AMI を選択し、[Actions] (アクション) から [Edit AMI permissions] (AMI 権限の編集) を選択します。
-
[AMI の可用性] で、[パブリック] を選択します。
-
[Save changes] (変更の保存) をクリックします。
- AWS CLI
-
各 AMI には、所有者以外でその AMI を使用してインスタンスを起動できる AWS アカウント を制御する launchPermission
プロパティがあります。AMI の launchPermission
プロパティを変更することで、AMI を公開したり (この場合、すべての AWS アカウント に起動許可が与えられます) 、指定した AWS アカウント とのみ AMI を共有したりすることができます。
AMI の起動許可を持っているアカウントの一覧に対してアカウント ID の追加または削除ができます。AMI を公開するには、all
グループを指定します。パブリック起動許可と明示的起動許可の両方を指定できます。
[To make an AMI public]
-
次のように、modify-image-attribute コマンドを使用して、指定した AMI の launchPermission
リストに all
グループを追加します。
aws ec2 modify-image-attribute \
--image-id ami-0abcdef1234567890
\
--launch-permission "Add=[{Group=all}]"
-
AMI の起動許可を確認するには、describe-image-attribute コマンドを使用します。
aws ec2 describe-image-attribute \
--image-id ami-0abcdef1234567890
\
--attribute launchPermission
-
(オプション) AMI をプライベートに戻すには、その起動許可から all
グループを削除します。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。
aws ec2 modify-image-attribute \
--image-id ami-0abcdef1234567890
\
--launch-permission "Remove=[{Group=all}]"
- PowerShell
-
各 AMI には、所有者以外でその AMI を使用してインスタンスを起動できる AWS アカウント を制御する launchPermission
プロパティがあります。AMI の launchPermission
プロパティを変更することで、AMI を公開したり (この場合、すべての AWS アカウント に起動許可が与えられます) 、指定した AWS アカウント とのみ AMI を共有したりすることができます。
AMI の起動許可を持っているアカウントの一覧に対してアカウント ID の追加または削除ができます。AMI を公開するには、all
グループを指定します。パブリック起動許可と明示的起動許可の両方を指定できます。
[To make an AMI public]
-
次のように、Edit-EC2ImageAttribute コマンドを使用して、指定した AMI の launchPermission
リストに all
グループを追加します。
PS C:\>
Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission -OperationType add -UserGroup all
-
AMI の起動許可を確認するには、次の Get-EC2ImageAttribute コマンドを使用します。
PS C:\>
Get-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission
-
(オプション) AMI をプライベートに戻すには、その起動許可から all
グループを削除します。AMI の所有者には常に起動許可が与えられるため、このコマンドの影響を受けないことにご注意ください。
PS C:\>
Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890
-Attribute launchPermission -OperationType remove -UserGroup all