将 AMI 设为公用
您可以通过向所有 Amazon Web Services 账户 共享来公开您的 AMI。
如果您想阻止公开共享您的 AMI,可以启用阻止 AMI 的公开访问。这可以阻止任何公开 AMI 的尝试,从而有助于防止未经授权的访问和对 AMI 数据的潜在滥用。请注意,启用阻止公开访问不会影响已经公开提供的 AMI;它们仍然公开可用。
要仅允许特定账户使用您的 AMI 启动实例,请参阅 与特定 Amazon 账户共享 AMI。
注意事项
在将 AMI 设为公用之前,请考虑以下事项。
-
所有权 – 若要将 AMI 设为公有,您的 Amazon Web Services 账户 必须拥有 AMI。
-
区域 – AMI 是一种区域性资源。当您共享 AMI 时,则它只能在您共享该 AMI 的区域使用。要使 AMI 能够在其他区域使用,请将该 AMI 复制到该区域并进行共享。有关更多信息,请参阅复制 AMI。
-
阻止公开访问 – 要公开共享 AMI,必须在 AMI 公开共享的每个区域禁用阻止 AMI 的公开访问。公开共享 AMI 后,您可以重新启用阻止 AMI 的公开访问功能,以防止进一步公开共享您的 AMI。
-
有些 AMI 无法设为公共 – 如果您的 AMI 包含以下组件之一,则无法将其设为公共(但您可以将 AMI 与特定 Amazon Web Services 账户 账户共享):
-
加密卷
-
加密卷的快照
-
产品代码
-
-
避免泄露敏感数据 – 要避免在共享 AMI 时泄露敏感数据,请阅读 共享 Linux AMI 指导原则 中的安全注意事项并遵循建议的操作。
-
使用 – 当您共享 AMI 时,用户只能从该 AMI 启动实例。他们无法删除、共享或修改实例。但是,在他们使用您的 AMI 启动实例后,他们可以从其启动的实例创建 AMI。
-
自动弃用 – 默认情况下,所有公有 AMI 的弃用日期均设置为自 AMI 创建日期起 2 年。您可以将弃用日期设置为早于两年。要取消弃用日期,或将弃用移至未来某一日期,您必须通过仅将 AMI 与特定 Amazon Web Services 账户 共享来将其设为私有。
-
账单 – 当其他 Amazon Web Services 账户 使用您的 AMI 启动实例时,您无需付费。使用 AMI 启动实例的账户将为它们启动的实例付费。
与所有 Amazon 账户共享 AMI(公开共享)
将 AMI 设为公开后,它将在控制台的社区 AMI 中可用,您可以从 EC2 控制台左侧导航器的 AMI 目录中访问此 AMI,或者在使用控制台启动实例时访问该 AMI。请注意,将某个 AMI 设置为公用之后,可能需要一点时间 Community AMIs 中才会显示该 AMI。
阻止公开访问您的 AMI
要防止公开共享您的 AMI,您可以启用阻止公开访问 AMI 功能。此设置已在账户级别启用,但您需要在每个希望防止公开共享 AMI 的 Amazon Web Services 区域 中启用此设置。
启用阻止公开访问后,任何将 AMI 设为公开的尝试都会被自动阻止。但是,如果您已经有公开 AMI,它们将保持公开状态。
如果您想公开共享 AMI,则需要禁用阻止公开访问。共享完成后,最佳实践是重新启用阻止公开访问功能,以防止意外地公开共享您的 AMI。
您可以将 IAM 权限限制为管理员用户,这样只有此类用户可启用或禁用阻止 AMI 的公开访问。
默认设置
根据您的账户是新账户还是现有账户,以及您是否拥有公用 AMI,默认启用或禁用阻止公开访问 AMI 设置。下表列出了默认设置:
Amazon 账户 | “阻止公开访问 AMI”默认设置 |
---|---|
新账户 | 已启用 |
没有公用 AMI 的现有账户¹ |
已启用 |
有一个或多个公用 AMI 的现有账户¹ |
已禁用 |
¹如果您的账户在 2023 年 7 月 15 日当天或之后拥有一个或多个公用 AMI,那么即使您随后将所有 AMI 设为私有,系统仍会为您的账户默认禁用阻止公开访问 AMI。
所需的 IAM 权限
要使用阻止公开访问 AMI 功能,您必须拥有以下 IAM 权限:
-
EnableImageBlockPublicAccess
-
DisableImageBlockPublicAccess
-
GetImageBlockPublicAccessState
启用阻止公开访问 AMI
要防止公开共享您的 AMI,请在账户级别启用阻止公开访问 AMI。您必须在要阻止公开共享 AMI 的每个 Amazon Web Services 区域 中启用阻止公开访问 AMI。如果您已经有公开 AMI,它们将保持公开状态。
禁用阻止公开访问 AMI
要允许您账户中的用户公开共享您的 AMI,请在账户级别禁用阻止公开访问。在要允许公开共享 AMI 的每个 Amazon Web Services 区域 中,您都必须禁用阻止公开访问 AMI。
查看 AMI 的阻止公共访问状态
要查看您的账户中是否禁止公开共享 AMI,您可以查看 AMI 的阻止公开访问状态。您必须在每个希望了解是否阻止 AMI 公开共享的 Amazon Web Services 区域 中查看此状态。