查找共享 AMI - Amazon Elastic Compute Cloud

查找共享 AMI

可以使用 Amazon EC2 控制台或命令行查找共享 AMI。

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)

使用 describe-images 命令 (AWS CLI) 可以列出 AMI。可以将该列表范围确定为所需的 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 具有一个别名拥有者,它将在账户字段中显示为 amazonaws-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 支持的 AMI。

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

使用共享 AMI

使用共享 AMI 之前,应执行以下步骤以确认没有预安装凭证允许第三方对您的实例进行不希望的访问,并且没有可能将敏感数据传输给第三方的预配置远程登录。查看 AMI 使用的 Linux 发行版的文档以了解有关提高系统安全性的信息。

为了确保您不会在无意中丢失对您的实例的访问,我们建议您启动两个 SSH 会话并将第二个会话保持为打开状态,直到您删除了无法识别的凭证并确认您仍可以使用 SSH 登录您的实例。

  1. 标识并禁用任何未经授权的公有 SSH 密钥。该文件中的唯一密钥应是您用于启动 AMI 的密钥。以下命令查找 authorized_keys 文件:

    [ec2-user ~]$ sudo find / -name "authorized_keys" -print -exec cat {} \;
  2. 对根用户禁用基于密码的身份验证。打开 sshd_configPermitRootLogin 文件并编辑 行,如下所示:

    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 安全中心