共有 AMI の検索 - Amazon Elastic Compute Cloud

共有 AMI の検索

Amazon EC2 コンソールまたはコマンドラインを使用して、共有 AMI を検索できます。

AMI はリージョンのリソースです。共有 AMI (パブリックまたはプライベート) を検索するときには、それの共有元のリージョンから実行する必要があります。AMI を他のリージョンで利用できるようにするには、AMI をそのリージョンにコピーし、共有します。詳細については、「AMI のコピー」を参照してください。

共有 AMI の検索 (コンソール)

コンソールを使用して、共有しているプライベート AMI を見つけるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. 最初のフィルタで、[Private images] を選択します。お客様が共有しているすべての AMI が一覧表示されます。詳細な検索を行うには、[Search] (検索) バーを選択し、メニューに用意されたフィルターオプションを使用します。

コンソールを使用して、共有しているパブリック AMI を見つけるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. 最初のフィルタで、[Public images] を選択します。詳細な検索を行うには、[Search] (検索) フィールドを選択し、メニューに用意されたフィルターオプションを使用します。

コンソールを使用して、Amazon 共有パブリック AMI を見つけるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. 最初のフィルタで、[Public images] を選択します。

  4. [Search] (検索) フィールドを選択し、表示されるメニューオプションから、[Owner alias] (所有者エイリアス)、[=][amazon] の順に選択して、Amazon のパブリックイメージのみを表示します。

コンソールを使用して検証済みプロバイダーから共有パブリック AMI を見つけるには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. [コミュニティ AMI] を選択します。

  4. [Verified provider] (検証済みプロバイダー) のラベルは、Amazon または検証済みパートナーからの AMI を示します。

共有 AMI (AWS CLI) を見つけます。

AMI を一覧表示するには、-describe-images コマンド (AWS CLI) を使用します。次の例のように、興味のある種類の AMI に絞って一覧表示できます。

例: すべてのパブリック AMI を一覧表示します。

次のコマンドは、所有しているパブリック AMI を含むすべてのパブリック AMI を一覧表示します。

aws ec2 describe-images --executable-users all
例: 明示的な起動許可を持つ AMI を一覧表示する

次のコマンドを使用すると、お客様が明示的な起動許可を持つ AMI が一覧表示されます。このリストには、お客様が所有する AMI は含まれていません。

aws ec2 describe-images --executable-users self
例: 検証済みプロバイダーが所有する AMI を一覧表示する

次のコマンドは、検証済みプロバイダーが所有する AMI を一覧表示します。検証済みプロバイダー (Amazon または検証済みパートナー) が所有するパブリック AMI には、アカウントフィールドで amazon または aws-marketplace として表示されるエイリアス所有者が存在します。これは、検証済みプロバイダーからの AMI を簡単に見つけるのに役立ちます。他のユーザーは、AMI にエイリアスを設定できません。

aws ec2 describe-images \ --owners amazon aws-marketplace \ --query 'Images[*].[ImageId]' \ --output text
例: アカウントが所有する AMI を一覧表示する

次のコマンドを実行すると、指定した AWS アカウント が所有する AMI が一覧表示されます。

aws ec2 describe-images --owners 123456789012
例: フィルタを使用してスコープ AMI

表示される AMI の数を減らすには、フィルタを使用して、興味のある種類の AMI に限定して表示します。例えば、次のフィルタを使用すると、EBS-backed AMI のみが表示されます。

--filters "Name=root-device-type,Values=ebs"

共有 AMI (Tools for Windows PowerShell) を見つけます。

AMI を一覧表示するには、Get-EC2Image コマンド (Tools for Windows PowerShell) を使用します。次の例のように、興味のある種類の AMI に絞って一覧表示できます。

例: すべてのパブリック AMI を一覧表示します。

次のコマンドは、所有しているパブリック AMI を含むすべてのパブリック AMI を一覧表示します。

PS C:\> Get-EC2Image -ExecutableUser all
例: 明示的な起動許可を持つ AMI を一覧表示する

次のコマンドを使用すると、お客様が明示的な起動許可を持つ AMI が一覧表示されます。このリストには、お客様が所有する AMI は含まれていません。

PS C:\> Get-EC2Image -ExecutableUser self
例: 検証済みプロバイダーが所有する AMI を一覧表示する

次のコマンドは、検証済みプロバイダーが所有する AMI を一覧表示します。検証済みプロバイダー (Amazon または検証済みパートナー) が所有するパブリック AMI には、アカウントフィールドで amazon または aws-marketplace として表示されるエイリアス所有者が存在します。これは、検証済みプロバイダーからの AMI を簡単に見つけるのに役立ちます。他のユーザーは、AMI にエイリアスを設定できません。

PS C:\> Get-EC2Image -Owner amazon aws-marketplace
例: アカウントが所有する AMI を一覧表示する

次のコマンドを実行すると、指定した AWS アカウント が所有する AMI が一覧表示されます。

PS C:\> Get-EC2Image -Owner 123456789012
例: フィルタを使用してスコープ AMI

表示される AMI の数を減らすには、フィルタを使用して、興味のある種類の AMI に限定して表示します。例えば、次のフィルタを使用すると、EBS-backed AMI のみが表示されます。

-Filter @{ Name="root-device-type"; Values="ebs" }

共有 AMI の使用

共有 AMI を使用する前に、次の手順を実行して、インスタンスへの好ましくないアクセスを許可する認証情報が第三者により事前にインストールされていないことと、機密データを第三者に送信する可能性があるリモートロギングが事前設定されていないことを確認します。システムセキュリティ改善についての詳細は、AMI で使用される Linux ディストリビューションの文書を確認してください。

インスタンスへのアクセスを誤って失わないように、SSH セッションを 2 つ開始して、見覚えのない認証情報を削除し、その後も SSH を使用してインスタンスにログインできることが確認されるまで、2 つ目のセッションを開いておくことをお勧めします。

  1. 未許可のパブリック SSH キーを特定し、無効にします。ファイル内の唯一のキーは、AMI の起動に使用したキーである必要があります。次のコマンドを使用すると、authorized_keys ファイルが見つかります。

    [ec2-user ~]$ sudo find / -name "authorized_keys" -print -exec cat {} \;
  2. ルートユーザーにはパスワードベースの認証を無効にします。sshd_config ファイルを開き、次のように PermitRootLogin 行を編集します。

    PermitRootLogin without-password

    または、ルートユーザーとしてインスタンスにログインする機能を無効にできます。

    PermitRootLogin No

    sshd サービスを再起動します。

  3. インスタンスにログインできるユーザーが他にないか確認します。スーパーユーザー権限を持つユーザーが特に危険です。不明のアカウントがあれば、そのパスワードを削除するか、ロックします。

  4. 開いていても使用していないポートと、着信接続をリスニングしている実行中のネットワークサービスをチェックします。

  5. 事前設定されているリモートロギングを防ぐには、既存の設定ファイルを削除し、rsyslog サービスを再起動してください。例:

    [ec2-user ~]$ sudo rm /etc/rsyslog.conf [ec2-user ~]$ sudo service rsyslog restart
  6. すべての cron ジョブが正当であることを確認します。

セキュリティ上のリスクとして考えられるパブリック AMI を発見した際には、AWS セキュリティチームにご連絡ください。詳細については、「AWS セキュリティセンター」を参照してください。