禁用 AMI - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

禁用 AMI

您可以禁用 AMI,以防止系统将其用于实例启动。您无法从已禁用的 AMI 启动新实例。您可以重新启用已禁用的 AMI,使其可以再次用于实例启动。

警告

禁用 AMI 会移除其所有启动权限。

当 AMI 被禁用时:

  • AMI 的状态会更改为 disabled

  • 无法共享已禁用的 AMI。如果 AMI 为公用性质或以前共享过,则会将其设为私有。如果与 Amazon Web Services 账户、组织或组织单位共享了 AMI,则它们将无法访问已禁用的 AMI。

  • 默认情况下,已禁用的 AMI 不会出现在 DescribeImages API 调用中。

  • 禁用的 AMI 不会在我拥有的控制台筛选条件下显示。要查找已禁用的 AMI,请使用已禁用的映像控制台筛选条件。

  • 已禁用的 AMI 不可在 EC2 控制台中选择用于实例启动。例如,已禁用的 AMI 不会出现在启动实例向导的 AMI 目录中,创建启动模板时也不会显示。

  • 启动服务(如启动模板和自动扩缩组)可以继续引用已禁用的 AMI。从已禁用的 AMI 发起的后续实例启动将失败,因此我们建议更新启动模板和自动扩缩组,使其仅引用可用的 AMI。

  • 之前使用随后被禁用的 AMI 启动的 EC2 实例不会受到影响,可以停止、启动和重新启动。

  • 无法删除与已禁用的 AMI 关联的快照。尝试删除关联的快照会导致 snapshot is currently in use 错误。

重新启用 AMI 时:

  • AMI 的状态将更改为 available,可用于启动实例。

  • AMI 可以共享。

  • 在 AMI 被禁用后失去对其的访问权限的 Amazon Web Services 账户、组织和组织单位不会自动重新获得访问权限,但可以再次与它们共享 AMI。

您可以禁用私有和公用 AMI。

成本

当您禁用 AMI 时,不会删除该 AMI。如果 AMI 是 EBS-backed AMI,则您需要继续为 AMI 的 EBS 快照付费。如果您想保留此类 AMI,则可以通过归档快照来降低存储成本。有关更多信息,请参阅《Amazon EBS 用户指南》中的归档 Amazon EBS 快照。如果您不想保留此类 AMI 及其快照,则必须取消注册相关 AMI 并删除相应快照。有关更多信息,请参阅 清除Amazon EBS-backed AMI

先决条件

要禁用或重新启用 AMI,您必须是 AMI 的所有者。

所需的 IAM 权限

要禁用和重新启用 AMI,您必须拥有以下 IAM 权限:

  • ec2:DisableImage

  • ec2:EnableImage

禁用 AMI

您可以使用 EC2 控制台或 Amazon Command Line Interface(Amazon CLI)禁用 AMI。您必须是 AMI 拥有者才能执行此过程。

Console
要禁用 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择 AMI

  3. 从筛选栏中选择 Owned by me(我拥有的)。

  4. 选择 AMI,然后依次选择操作禁用 AMI。您可以同时选择多个 AMI,一并将其禁用。

  5. 禁用 AMI窗口中,选择禁用 AMI

Amazon CLI
要禁用 AMI

使用 disable-image 命令并指定 AMI 的 ID。

aws ec2 disable-image --image-id ami-1234567890abcdef0

预期输出

{ "Return": "true" }

描述已禁用的 AMI

您可以在 EC2 控制台中或使用 Amazon CLI 查看已禁用的 AMI。

您必须是 AMI 所有者才能查看已禁用的 AMI。由于已禁用的 AMI 被设为私有,因此如果您不是所有者,则无法对其进行查看。

Console
要查看已禁用的 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择 AMI

  3. 从筛选栏中选择已禁用的映像

    
									“已禁用的映像”筛选器。
Amazon CLI

默认情况下,当您使用 describe-images 命令描述所有 AMI 时,已禁用的 AMI 不会出现在结果中。这是因为默认值为 --no-include-disabled。要在结果中包括已禁用的 AMI,您必须指定 --include-disabled 参数。

要在描述所有 AMI 时包括所有已禁用的 AMI

使用 describe-images 命令并指定 --include-disabled 参数,以检索已禁用的 AMI 以及所有其他 AMI。或者,指定 --owners self,以便仅检索您拥有的 AMI。

aws ec2 describe-images \ --region us-east-1 \ --owners self --include-disabled

如果您指定了已禁用的 AMI 的 ID,但未指定 --include-disabled,则结果中将返回相应已禁用的 AMI。

aws ec2 describe-images \ --region us-east-1 \ --image-ids ami-1234567890EXAMPLE
要仅检索已禁用的 AMI

指定 --filters Name=state,Values=disabled。您必须指定 --include-disabled,否则将会收到错误。

aws ec2 describe-images \ --include-disabled \ --filters Name=state,Values=disabled

示例输出

State 字段显示 AMI 的状态。disabled 表示 AMI 已被禁用。

{ "Images": [ { "VirtualizationType": "hvm", "Description": "Provided by Red Hat, Inc.", "PlatformDetails": "Red Hat Enterprise Linux", "EnaSupport": true, "Hypervisor": "xen", "State": "disabled", "SriovNetSupport": "simple", "ImageId": "ami-1234567890EXAMPLE", "DeprecationTime": "2023-05-10T13:17:12.000Z" "UsageOperation": "RunInstances:0010", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "SnapshotId": "snap-111222333444aaabb", "DeleteOnTermination": true, "VolumeType": "gp2", "VolumeSize": 10, "Encrypted": false } } ], "Architecture": "x86_64", "ImageLocation": "123456789012/RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2", "RootDeviceType": "ebs", "OwnerId": "123456789012", "RootDeviceName": "/dev/sda1", "CreationDate": "2019-05-10T13:17:12.000Z", "Public": false, "ImageType": "machine", "Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2" } ] }

重新启用已禁用的 AMI

您可以重新启用已禁用的 AMI。您必须是 AMI 拥有者才能执行此过程。

Console
要重新启用已禁用的 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择 AMI

  3. 从筛选栏中选择已禁用的映像

  4. 选择 AMI,然后依次选择操作启用 AMI。您可以同时选择多个 AMI,一并将其重新启用。

  5. 启用 AMI窗口中,选择启用

Amazon CLI
要重新启用已禁用的 AMI

使用 enable-image 命令并指定 AMI 的 ID。

aws ec2 enable-image --image-id ami-1234567890abcdef0

预期输出

{ "Return": "true" }