本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
声明式策略语法和示例
本页描述了声明式策略语法并提供了示例。
注意事项
当您使用声明式策略配置服务属性时,它可能会影响多个APIs属性。任何不合规的操作都将失败。
账户管理员将无法在个人账户级别修改服务属性的值。
声明式策略的语法
声明性策略是根据的规则构造的纯文本文件。JSON
以下示例显示了基本的声明式策略语法:
{ "ec2_attributes": { "exception_message": { "@@assign": "
Your custom error message.https://myURL
" }, ... [Insert supported service attributes] ... } }
ec2_attributes
字段键名称。声明式策略始终以给 Amazon Web Services 服务定密钥的固定密钥名称开头。它是上面示例策略中的顶行。目前,声明性政策仅支持EC2与Amazon相关的服务。在下方
ec2_attributes
exception_message
,您可以使用设置自定义错误消息。有关更多信息,请参阅声明式策略的自定义错误消息。在下方
ec2_attributes
,您可以插入一个或多个支持的声明式策略。有关这些架构,请参阅支持的声明式策略。
支持的声明式策略
以下是声明式策略支持的 Amazon Web Services 服务 和属性。在以下一些示例中,为了节省JSON空间,可能会对空格格式进行压缩。
- VPC Block Public Access
-
政策效应
控制 Amazon VPCs 和子网中的资源能否通过互联网网关访问互联网(IGWs)。有关更多信息,请参阅 Amazon Virtual Private Cloud 用户指南中的互联网访问配置。
政策内容
"vpc_block_public_access": { "internet_gateway": { // (optional) "mode": { // (required) "@@assign": "
block_ingress
" // off | block_ingress | block_bidirectional }, "exclusions_allowed": { // (required) "@@assign": "enabled
" // enabled | disabled } } }以下是此属性的可用字段:
"internet_gateway"
:"mode"
:"off"
: VPC BPA 未启用。"block_ingress"
:所有流向的互联网流量VPCs(VPCs或不包括的子网除外)都已被阻止。仅允许进出NAT网关和仅限出口 Internet 网关的流量,因为这些网关仅允许建立出站连接。"block_bidirectional"
:所有进出互联网网关和仅限出口的互联网网关(排除的VPCs和子网除外)的流量都已被阻止。
"exclusions_allowed"
:排除是一种可以应用于单个VPC或子网的模式,可将其排除在账户VPCBPA模式之外,并允许双向或仅限出口访问。"enabled"
:排除项可以由账户创建。"disabled"
:该账户无法创建排除项。
注意
您可以使用该属性来配置是否允许排除,但不能使用此属性本身创建排除项。要创建排除项,您必须在拥有的账户中创建排除项。VPC有关创建VPCBPA排除项的更多信息,请参阅《亚马逊VPC用户指南》中的创建和删除排除项。
注意事项
如果您在声明性策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
ModifyVpcBlockPublicAccessOptions
CreateVpcBlockPublicAccessExclusion
ModifyVpcBlockPublicAccessExclusion
- Serial Console Access
-
政策效应
控制是否可以访问EC2串行控制台。有关EC2串行控制台的更多信息,请参阅 Amazon 弹性计算云用户指南中的EC2串行控制台。
政策内容
"serial_console_access": { "status": { // (required) "@@assign": "
enabled
" // enabled | disabled } }以下是此属性的可用字段:
"status"
:"enabled"
: 允许EC2串行控制台访问。"disabled"
: EC2 串行控制台访问已被阻止。
注意事项
如果您在声明性策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
EnableSerialConsoleAccess
DisableSerialConsoleAccess
- Image Block Public Access
-
政策效应
控制 Amazon 机器映像 (AMIs) 是否可公开共享。有关更多信息AMIs,请参阅《亚马逊弹性计算云用户指南》中的亚马逊系统映像 (AMIs)。
政策内容
"image_block_public_access": { "state": { // (required) "@@assign": "
block_new_sharing
" // unblocked | block_new_sharing } }以下是此属性的可用字段:
"state"
:"unblocked"
: 对公开共享没有限制AMIs。"block_new_sharing"
: 阻止新的公开共享AMIs。 AMIs已经公开分享的内容仍然是公开的。
注意事项
如果您在声明性策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
EnableImageBlockPublicAccess
DisableImageBlockPublicAccess
- Allowed Images Settings
-
政策效应
在 “允许” 的情况下控制亚马逊系统映像 (AMI) 的发现和使用AMIs... EC2 有关更多信息AMIs,请参阅《亚马逊弹性计算云用户指南》中的亚马逊系统映像 (AMIs)。
政策内容
以下是此属性的可用字段:
"allowed_images_settings": { "state": { // (required) "@@assign": "
enabled
" // enabled | disabled | audit_mode }, "image_criteria": { // (optional) "criteria_1": { "allowed_image_providers": { // limit 200 "@@append": [ "amazon
" // amazon | aws_marketplace | aws_backup_vault | 12 digit account ID ] } } } }"state"
:"enabled"
:该属性处于活动状态且已强制执行。"disabled"
:该属性处于非活动状态且未强制执行。"audit_mode"
:该属性处于审核模式。这意味着它将识别不合规的图像,但不会阻止其使用。
"image_criteria"
:定义允许AMI来源的allowed_image_providers
对象列表。"allowed_image_providers"
:以逗号分隔的提供商名称或帐户列表。IDs
注意事项
如果您在声明性策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
EnableAllowedImagesSettings
ReplaceImageCriteriaInAllowedImagesSettings
DisableAllowedImagesSettings
- Instance Metadata Defaults
-
政策效应
控制所有新EC2实例启动的IMDS默认值。有关IMDS默认值的更多信息,请参阅IMDS《亚马逊弹性计算云用户指南》。
政策内容
以下是此属性的可用字段:
"instance_metadata_defaults": { "http_tokens": { // (required) "@@assign": "
required
" // no_preference | required | optional }, "http_put_response_hop_limit": { // (required) "@@assign": "4
" // -1 | 1 -> 64 }, "http_endpoint": { // (required) "@@assign": "enabled
" // no_preference | enabled | disabled }, "instance_metadata_tags": { // (required) "@@assign": "enabled
" // no_preference | enabled | disabled } }"http_tokens"
:"no_preference"
: 其他默认值适用。例如,如果适用,则为AMI默认值。"required"
: IMDSv2 必须使用。 IMDSv1是不允许的。"optional"
: 两者IMDSv1IMDSv2都允许。
注意
元数据版本
在设置
http_tokens
为required
(IMDSv2必须使用)之前,请确保您的所有实例都没有进行IMDSv1调用。"http_put_response_hop_limit"
:"
: -1 到 64 之间的整数值,表示元数据令牌可以传输的最大跳数。要表示没有偏好,请指定 -1。Integer
"注意
跳跃限制
如果设置
http_tokens
为required
,则建议至少设置http_put_response_hop_limit
为 2。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的实例元数据访问注意事项。
"http_endpoint"
:"no_preference"
: 其他默认值适用。例如,如果适用,则为AMI默认值。"enabled"
:实例元数据服务终端节点可访问。"disabled"
:无法访问实例元数据服务终端节点。
"instance_metadata_tags"
:"no_preference"
: 其他默认值适用。例如,如果适用,则为AMI默认值。"enabled"
:可以从实例元数据访问实例标签。"disabled"
:无法从实例元数据访问实例标签。
- Snapshot Block Public Access
-
政策效应
控制 Amazon EBS 快照是否可公开访问。有关EBS快照的更多信息,请参阅《亚马逊弹性块存储用户指南》中的亚马逊EBS快照。
政策内容
"snapshot_block_public_access": { "state": { // (required) "@@assign": "
block_new_sharing
" // unblocked | block_new_sharing | block_all_sharing } }以下是此属性的可用字段:
"state"
:"block_all_sharing"
:阻止所有公开共享快照。已公开共享的快照将被视为私有快照,不再公开可用。"block_new_sharing"
:阻止新的快照公开共享。已经公开共享的快照仍可公开获取。"unblocked"
:对公开共享快照没有限制。
注意事项
如果您在声明性策略中使用此属性,则无法使用以下操作来修改范围内账户的强制配置。此列表并不详尽:
EnableSnapshotBlockPublicAccess
DisableSnapshotBlockPublicAccess