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