

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon S3 策略语法和示例
<a name="orgs_manage_policies_s3_syntax"></a>

[Amazon S3 策略是一个按照 JSON 规则构造的纯文本文件。](http://json.org)Amazon S3 策略的语法遵循所有管理策略类型的语法。有关更多信息，请参阅 [了解管理策略继承](orgs_manage_policies_inheritance_mgmt.md)。本主题重点介绍如何将该通用语法应用于 Amazon S3 策略的具体要求以及它们帮助管理的阻止公共访问设置。

以下 Amazon S3 策略示例显示了基本策略语法：

```
{
    "s3_attributes": {
        "public_access_block_configuration": {
            "@@assign": "all"
        }
    }
}
```

## Amazon S3 策略语法包括以下元素
<a name="s3-policy-syntax-elements"></a>

`s3_attributes`  
Amazon S3 策略配置的顶级密钥。

`public_access_block_configuration`  
定义组织的 “阻止公共访问权限” 行为。

`@@assign`  
接受以下两个值之一的赋值运算符：  
+ `"all"`-在组织级别启用所有四个 Amazon S3 阻止公共访问设置
+ `"none"`-在组织级别禁用所有四个 Amazon S3 阻止公共访问设置
Amazon S3 阻止公共访问有四种控制公共访问的设置：  

1. **BlockPublicAcls**-Amazon S3 将阻止应用于新添加的存储桶或对象的公共访问权限，并阻止为现有存储桶和对象创建新的公共访问控制列表 (ACLs)。此设置不会更改允许公众使用访问 Amazon S3 资源的任何现有权限 ACLs。

1. **BlockPublicPolicy**-Amazon S3 将阻止新的存储桶和接入点策略，这些策略授予对存储桶和对象的公开访问权限。此设置不会更改任何允许公众访问 Amazon S3 资源的现有策略。

1. **IgnorePublicAcls**-Amazon S3 将忽略所有授予 ACLs 对存储桶和对象的公开访问权限的内容。

1. **RestrictPublicBuckets**-Amazon S3 将忽略存储桶或访问点的公有和跨账户访问权限，其策略授予对存储桶和对象的公开访问权限。
设置`@@assign`为时`"all"`，所有四项设置都将在组织级别合并启用，从而提供全面保护，防止组织中所有账户的公开访问。如果您想在账户级别管理 Amazon S3 阻止公共访问权限，则应在组织级别禁用 S3 策略类型