

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

# 数据隔离
<a name="S3-buckets-data-isolation"></a>

将 S3 存储桶添加到 RES 时，您可以选择将存储桶内的数据隔离给特定的项目和用户。在**添加存储桶**页面上，您可以选择只读 (R) 或读写 (R/W) 模式。

**只读**

如果选中，`Read Only (R)`则根据存储桶 ARN 的前缀（Amazon 资源名称）强制执行数据隔离。例如，如果管理员使用 ARN `arn:aws:s3:::{{bucket-name}}{{/example-data}}/` 向 RES 添加存储分区，并将此存储分区与项目 A 和项目 B 关联，则从项目 A 和项目 B 中启动 VDI 的用户只能读取位于路径`{{bucket-name}}`下方的数据。`{{/example-data}}`他们将无法访问该路径之外的数据。如果存储桶 ARN 中没有附加前缀，则整个存储桶将可供与其关联的任何项目使用。

**读和写**

如果`Read and Write (R/W)`选中，则仍会根据存储桶 ARN 的前缀强制执行数据隔离，如上所述。此模式还有其他选项，允许管理员为 S3 存储桶提供基于变量的前缀。选中后`Read and Write (R/W)`，“自定义前缀” 部分将变为可用，该部分提供包含以下选项的下拉菜单：
+ 没有自定义前缀
+ /%p
+ /%p/%u

![添加带有自定义前缀下拉列表的存储桶页面](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/add-bucket-custom-prefix.png)


**没有自定义数据隔离 **  
如果`No custom prefix`选择 “**自定义前缀**”，则在不进行任何自定义数据隔离的情况下添加存储桶。这允许与存储桶关联的任何项目具有读取和写入权限。例如，如果管理员使用`No custom prefix`选定的 ARN `arn:aws:s3:::{{bucket-name}}` 将存储分区添加到 RES，并将此存储分区与项目 A 和项目 B 相关联，则从项目 A 和项目 B 中启动 VDI 的用户将拥有对该存储分区的无限制读写权限。

**在每个项目层面进行数据隔离 **  
如果`/%p`选择 “**自定义前缀**”，则存储桶中的数据将与其关联的每个特定项目隔离。该`%p`变量表示项目代码。例如，如果管理员使用`/%p`选定的 ARN `arn:aws:s3:::{{bucket-name}}`、**挂载点**为的存储桶添加存储桶{{/bucket}}，并将该存储桶与项目 A 和项目 B 关联起来，则项目 A 中的用户 A 可以向写入文件。{{/bucket}}项目 A 中的用户 B 也可以看到用户 A 写入的文件{{/bucket}}。但是，如果用户 B 在项目 B 中启动 VDI 并进行查看{{/bucket}}，他们将看不到用户 A 写入的文件，因为数据是按项目隔离的。用户 A 写入的文件位于前缀下的 S3 存储桶中，`/ProjectA`而用户 B 只有在使用项目 B 中的 VDI `/ProjectB` 时才能访问

**在每个项目、每个用户级别上进行数据隔离 **  
如果`/%p/%u`选择 “**自定义前缀**”，则存储桶中的数据将与该项目关联的每个特定项目和用户隔离。`%p`变量代表项目代码，`%u`代表用户名。例如，管理员使用 ARN `arn:aws:s3:::{{bucket-name}}` 将存储桶添加到 RES 中，`/%p/%u`选中且挂载点为。{{/bucket}}此存储桶与项目 A 和项目 B 相关联。项目 A 中的用户 A 可以向其写入文件{{/bucket}}。与之前仅使用`%p`隔离的场景不同，在这种情况下，用户 B 将看不到用户 A 在项目 A 中写入的文件{{/bucket}}，因为数据由项目和用户隔离。用户 A 写入的文件位于前缀下的 S3 存储桶中，`/ProjectA/UserA`而用户 B 只能在项目 A 中使用其 VDI `/ProjectA/UserB` 时才能访问。