访问权限控制概览

您可以控制哪些用户有权访问您的 Cloud Storage 存储分区和对象及其访问权限级别。

在统一访问权限和精细控制访问权限之间进行选择

在创建存储分区时,您应决定是要使用统一访问权限还是精细控制访问权限来应用权限。

  • 统一(推荐)统一存储分区级访问权限可让您仅需要使用 Cloud Identity and Access Management (Cloud IAM) 来管理权限。Cloud IAM 将权限应用于存储分区中包含的所有对象或者应用于具有通用名称前缀的对象组。Cloud IAM 还允许您使用在使用 ACL 时无法使用的功能,例如 Cloud IAM Conditions 和 Cloud Audit Logs。

  • 精细控制:精细控制选项可让您将 Cloud IAM 和访问控制列表 (ACL) 一起使用来管理权限。ACL 是 Cloud Storage 的旧版访问权限控制系统,专为与 Amazon S3 交互操作而设计。您可以在存储分区级层以及根据单个对象,指定访问权限和应用权限。

如果您的对象包含敏感数据(例如个人身份信息),我们建议您将这些数据存储在启用了统一访问权限的存储分区中,以精简权限。例如:

推荐 不推荐
访问权限控制:统一 访问权限控制:精细
统一 精细控制
此设置造成数据泄露的可能性较小。通过在存储分区级层添加权限,可确保即使将新文件添加到存储分区中,Max 和 Bella 也无法看到彼此的数据。 此设置造成数据泄露的可能性较大。如果您未正确设置对象权限,Max 和 Bella 可能可以看到彼此的照片以及添加到存储分区的新文件。

将 Cloud IAM 权限与 ACL 配合使用

在 Cloud Storage 中,您可以通过以下两个系统向用户授予存储分区和对象的访问权限:Cloud Identity and Access Management (Cloud IAM) 和访问控制列表 (ACL)。这两个系统是并行运行的;为了让用户能够访问 Cloud Storage 资源,您只需通过其中一个系统授予用户权限。

在大多数情况下,建议使用 Cloud IAM 来控制对资源的访问。Cloud IAM 可控制整个 Google Cloud 中的权限,并允许您在存储分区级层和项目级层授予权限。对于任何应用于存储分区中多个对象的权限,你都应该使用 Cloud IAM 来控制,以降低意外泄露的风险。如需专门使用 Cloud IAM,请启用统一存储分区级访问权限,以禁止对所有 Cloud Storage 资源使用 ACL。

ACL 仅控制 Cloud Storage 资源的权限,并且提供的权限选项数量有限,但允许您根据单个对象授予权限。您很可能希望在以下使用场景中使用 ACL:

  • 自定义对存储分区中单个对象的访问权限。
  • 从 Amazon S3 迁移数据。

其他访问权限控制选项

除了 Cloud IAM 和 ACL 之外,您还可以使用以下工具来帮助您控制对资源的访问:

签名网址(查询字符串身份验证)

使用签名网址,通过您生成的网址向用户授予对象的限时读取或写入访问权限。共享了您提供的网址的任何用户都可以在您指定的时间内访问对象(无论他们是否拥有 Google 帐号)。

除了 Cloud IAM 和 ACL 之外,您还可以使用签名网址。例如,您可以仅使用 Cloud IAM 向少数人授予对存储分区的访问权限,然后创建签名网址以允许其他人访问该存储分区内的特定资源。

了解如何创建签名网址:

签名政策文档

使用签名政策文档指定可以上传到存储分区的内容。相比签名网址,政策文档可进一步控制上传内容的大小、类型和其他特征,并且网站所有者可以使用政策文档来允许访问者将文件上传到 Cloud Storage 中。

除 Cloud IAM 和 ACL 之外,您还可以使用签名政策文档。 例如,您可以使用 Cloud IAM,允许组织中的用户上传任何对象,然后创建签名政策文档以允许网站访问者仅上传符合特定条件的对象。

Firebase 安全规则

使用 Firebase 安全规则,通过适用于 Cloud Storage 的 Firebase SDK,为移动应用和 Web 应用提供基于特性的精确访问控制。例如,您可以指定哪些用户能够上传或下载对象、对象的大小上限或对象可下载的时间。

凭据访问边界

使用凭据访问边界来缩小 OAuth 2.0 访问令牌可用的权限范围。首先,定义一个凭据访问边界以指定令牌可以访问的存储分区以及该存储分区上可用权限的上限。然后您可以创建 OAuth 2.0 访问令牌,并将其替换为遵循凭据访问边界的新访问令牌。

后续步骤