本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EC2 策略语法和示例
本页介绍了 EC2 策略语法并提供了示例。
注意事项
-
当您使用 EC2 策略配置服务属性时,它可能会影响多个 API。任何不合规的操作都将失败。
-
账户管理员将无法在个人账户级别修改服务属性的值。
EC2 策略的语法
EC2 策略是根据 JSON 规则构造的纯文本文件。
以下示例显示了基本的 EC2 策略语法:
{ "ec2_attributes": { "exception_message": { "@@assign": "Your custom error message.https://myURL" } } }
-
ec2_attributes字段键名称。声明式策略始终以给 AWS 服务定密钥的固定密钥名称开头。它是上面示例策略中的顶行。 -
在
ec2_attributes下,您可以使用exception_message设置自定义错误消息。有关更多信息,请参阅 EC2 策略的自定义错误消息。 -
在下方
ec2_attributes,您可以插入一个或多个支持的 EC2 策略。有关这些架构,请参阅支持的 EC2 策略。
支持的 EC2 策略
以下是 EC2 策略支持的 AWS 服务 和属性。在以下某些示例中,可能会压缩 JSON 空白格式以节省空间。
-
VPC 屏蔽公共访问权限
-
Serial Console 访问权限
-
映像屏蔽公共访问权限
-
允许的映像设置
-
实例元数据
-
快照屏蔽公共访问权限
- VPC Block Public Access
-
策略效果
控制 Amazon VPC 和子网中的资源能否通过互联网网关(IGW)访问互联网。有关更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的互联网访问配置。
策略内容
{ "ec2_attributes": { "vpc_block_public_access": { "internet_gateway_block": { "mode": { "@@assign": "block_ingress" }, "exclusions_allowed": { "@@assign": "enabled" } } } } }以下是此属性的可用字段:
-
"internet_gateway":-
"mode":-
"off":VPC BPA 未启用。 -
"block_ingress":流向 VPC 的所有互联网流量(排除的 VPC 或子网除外)均被阻止。仅允许进出 NAT 网关和仅出口互联网网关的流量,因为这些网关仅允许建立出站连接。 -
"block_bidirectional":进出互联网网关和仅出口互联网网关的所有流量(排除的 VPC 和子网除外)均被阻止。
-
-
-
"exclusions_allowed":排除是一种可以应用于单个 VPC 或子网的模式,可将其排除在账户的 VPC BPA 模式之外,并允许双向或仅出口访问。-
"enabled":可由账户创建排除项。 -
"disabled":无法由账户创建排除项。
注意
您可以使用该属性配置是否允许排除项,但不能使用该属性本身创建排除项。要创建排除项,必须在拥有 VPC 的账户中创建。有关创建 VPC BPA 排除项的更多信息,请参阅《Amazon VPC 用户指南》中的创建和删除排除项。
-
注意事项
如果您在 EC2 策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
-
ModifyVpcBlockPublicAccessOptions -
CreateVpcBlockPublicAccessExclusion -
ModifyVpcBlockPublicAccessExclusion
-
- Serial Console Access
-
策略效果
控制 EC2 Serial Console 是否可访问。有关 EC2 Serial Console 的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的 EC2 Serial Console。
策略内容
{ "ec2_attributes": { "serial_console_access": { "status": { "@@assign": "enabled" } } } }以下是此属性的可用字段:
-
"status":-
"enabled":允许访问 EC2 Serial Console。 -
"disabled":阻止访问 EC2 Serial Console。
-
注意事项
如果您在 EC2 策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
-
EnableSerialConsoleAccess -
DisableSerialConsoleAccess
-
- Image Block Public Access
-
策略效果
控制亚马逊机器映像(AMI)是否可以公开共享。有关 AMI 的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的亚马逊机器映像(AMI)。
策略内容
{ "ec2_attributes": { "image_block_public_access": { "state": { "@@assign": "block_new_sharing" } } } }以下是此属性的可用字段:
-
"state":-
"unblocked":对 AMI 的公开共享不设限制。 -
"block_new_sharing":阻止新的 AMI 公开共享。已经公开共享的 AMI 仍可公开访问。
-
注意事项
如果您在 EC2 策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
-
EnableImageBlockPublicAccess -
DisableImageBlockPublicAccess
-
- Allowed Images Settings
-
策略效果
使用“允许的 AMI”控制在 Amazon EC2 中对亚马逊机器映像(AMI)的发现和使用。有关 AMI 的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的使用“允许的 AMI”控制在 Amazon EC2 中对 AMI 的发现和使用。
策略内容
以下是此属性的可用字段:
{ "ec2_attributes": { "allowed_images_settings": { "state": { "@@assign": "enabled" }, "image_criteria": { "criteria_1": { "allowed_image_providers": { "@@append": [ "amazon" ] } } } } } }-
"state":-
"enabled":该属性处于活动状态且已强制执行。 -
"disabled":该属性处于活动状态且未强制执行。 -
"audit_mode":该属性处于审核模式。这意味着它会识别不合规的映像,但不会阻止其使用。
-
-
"image_criteria":条件列表。最多支持 10 个条件,名称从 criteria_1 到 criteria_10-
"allowed_image_providers":amazon、aws_marketplace、aws_backup_vault 的 12 位数账户 ID 或所有者别名的列表,以逗号分隔。 -
"image_names":允许的映像的名称。名称可以包含通配符(? 和 *)。长度:1–128 个字符。使用 ? 时,最小长度为 3 个字符。 -
"marketplace_product_codes":允许的图片的 AWS Marketplace 商品代码。长度:1–25 个字符,有效字符:字母(A–Z、a–z)和数字(0–9) -
"creation_date_condition":允许的映像的最大期限。-
"maximum_days_since_created":自映像创建以来经过的最长天数。有效范围:最小值为 0。最大值为 2147483647。
-
-
"deprecation_time_condition":自弃用允许的映像以来的最长期限。-
"maximum_days_since_deprecated":自映像弃用以来经过的最长天数。有效范围:最小值为 0。最大值为 2147483647。
-
-
注意事项
如果您在 EC2 策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
-
EnableAllowedImagesSettings -
ReplaceImageCriteriaInAllowedImagesSettings -
DisableAllowedImagesSettings
-
- Instance Metadata
-
策略效果
控制所有新 EC2 实例启动时的 IMDS 默认值和 IMDSv2 强制执行。有关 IMDS 默认值和 IMDSv2 强制执行的更多信息,请参阅 Amazon EC2 用户指南中的使用实例元数据管理您的 EC2 实例。
策略内容
以下是此属性的可用字段:
{ "ec2_attributes": { "instance_metadata_defaults": { "http_tokens": { "@@assign": "required" }, "http_put_response_hop_limit": { "@@assign": "4" }, "http_endpoint": { "@@assign": "enabled" }, "instance_metadata_tags": { "@@assign": "enabled" }, "http_tokens_enforced": { "@@assign": "enabled" } } } }-
"http_tokens":-
"no_preference":其他默认值适用。例如 AMI 默认值(如适用)。 -
"required":必须使用 IMDSv2。不允许使用 IMDSv1。 -
"optional":允许同时使用 IMDSv1 和 IMDSv2。
注意
元数据版本
在将
http_tokens设置为required(必须使用 IMDSv2)之前,请确保所有实例都没有进行 IMDSv1 调用。有关更多信息,请参阅 Amazon EC2 用户指南中的步骤 1:使用 imdsv2=Optional 识别实例并审计 imdsv1 的使用情况。 -
-
"http_put_response_hop_limit":-
":-1 至 64 之间的整数值,表示元数据令牌可以传输的最大跃点数。要表示无首选项,请指定 -1。Integer"
注意
跃点限制
如果将
http_tokens设置为required,则建议至少将http_put_response_hop_limit设置为 2。有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的实例元数据访问注意事项。 -
-
"http_endpoint":-
"no_preference":其他默认值适用。例如 AMI 默认值(如适用)。 -
"enabled":实例元数据服务端点可访问。 -
"disabled":实例元数据服务端点不可访问。
-
-
"instance_metadata_tags":-
"no_preference":其他默认值适用。例如 AMI 默认值(如适用)。 -
"enabled":可以从实例元数据访问实例标签。 -
"disabled":无法从实例元数据访问实例标签。
-
-
"http_tokens_enforced":-
"no_preference":其他默认值适用。例如 AMI 默认值(如适用)。 -
"enabled":必须使用 IMDSv2。尝试启动 imdsv1 实例或在现有实例上启用 imdsv1 将失败。 -
"disabled":允许同时使用 IMDSv1 和 IMDSv2。
警告
IMDSv2 强制使用
在允许 imdsv1 和 imdsv2(令牌可选)的同时启用 imdsv2 强制将导致启动失败,除非通过启动参数或 AMI 默认设置明确禁用 imdsv1。有关更多信息,请参阅 Amazon EC2 用户指南中的启动 IMDSv1-enabled 实例失败。
-
-
- Snapshot Block Public Access
-
策略效果
控制 Amazon EBS 快照是否可以公开访问。有关 EBS 快照的更多信息,请参阅《Amazon Elastic Block Store User Guide》中的 Amazon EBS snapshots。
策略内容
{ "ec2_attributes": { "snapshot_block_public_access": { "state": { "@@assign": "block_new_sharing" } } } }以下是此属性的可用字段:
-
"state":-
"block_all_sharing":阻止所有公开共享快照的行为。已公开共享的快照将被视为私有快照,不可再公开访问。 -
"block_new_sharing":阻止新的公开共享快照的行为。已经公开共享的快照仍可公开访问。 -
"unblocked":对快照的公开共享不设限制。
-
注意事项
如果您在 EC2 策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
-
EnableSnapshotBlockPublicAccess -
DisableSnapshotBlockPublicAccess
-