本页面介绍了使用 Identity and Access Management (IAM) 和访问控制列表 (ACL) 管理数据访问权限的最佳做法。
IAM 政策和 ACL 需要有效管理才能生效。在允许其他用户访问某一存储桶或对象之前,请务必明确您想要与谁分享该存储桶或对象以及您希望他们分别拥有什么角色。一段时间后,如果项目管理、使用模式和组织所有权发生变化,您可能需要修改存储桶和项目的 IAM 或 ACL 设置(特别是当您在大型组织中或面对大规模用户的情况下管理 Cloud Storage 时)。在评估和规划访问权限控制设置时,请谨记以下最佳做法:
授予存储桶或对象访问权限时,请遵循最小权限原则。
最小权限原则是关于授予对资源的访问权限的一项安全准则。根据最小权限原则授予访问权限时,您将为用户授予其完成所分配任务而需要的最小权限。例如,如果您想要与他人分享文件,则应向其授予
storage.objectViewer
IAM 角色或READER
ACL 权限,而不是storage.admin
IAM 角色或OWNER
ACL 权限。请勿向不了解的人授予包含
setIamPolicy
权限的 IAM 角色或授予 ACLOWNER
权限。授予
setIamPolicy
IAM 权限或OWNER
ACL 权限会允许用户更改权限和控制数据。只有在您希望将对象和存储桶的管理控制权委托给他人时,您才应为其授予具有这些权限的角色。向匿名用户授予权限时请务必注意方式方法。
只有允许互联网上的任何人读取和分析您的数据时,才应使用
allUsers
和allAuthenticatedUsers
主账号类型。虽然在某些应用和情景中使用这些权限范围会非常有用,但我们建议您一般情况下最好不要向所有用户授予某些权限,比如 IAM 权限setIamPolicy
、update
、create
、delete
或 ACLOWNER
权限。请确保将您存储分区的管理控制权委托给他人。
如果具有管理员权限的某个人离开了群组,则您应确保您的资源仍可由其他团队成员管理。
为防止资源变得无法访问,您可以执行以下任一操作:
将项目的 Storage Admin IAM 角色授予给群组(而非个人)
将项目的 Storage Admin IAM 角色至少授予给两个人
将存储桶的
OWNER
ACL 权限至少授予给两个人
请注意 Cloud Storage 的互操作行为。
使用 XML API 与其他存储服务(如 Amazon S3)进行互操作访问时,签名标识符决定了 ACL 语法。例如,如果您使用的工具或库向 Cloud Storage 发出检索 ACL 的请求,并且该请求使用其他存储服务商的签名标识符,则 Cloud Storage 将返回一个使用相应存储服务商的 ACL 语法的 XML 文档。如果您使用的工具或库向 Cloud Storage 发出应用 ACL 的请求,并且该请求使用其他存储服务商的签名标识符,则 Cloud Storage 应会收到一个使用相应存储服务商的 ACL 语法的 XML 文档。
如需详细了解如何使用 XML API 实现与 Amazon S3 之间的互操作性,请参阅从 Amazon S3 轻松迁移到 Cloud Storage。