本页面介绍了如何对 Cloud Storage 的存储桶启用和停用统一存储桶级访问权限,以及如何检查该功能的状态。
所需的角色
如需获得设置和管理存储桶的统一存储桶级访问权限所需的权限,请让管理员向您授予存储桶的 Storage Admin (roles/storage.admin
) 角色。此预定义角色包含设置和管理统一存储桶级访问权限所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.get
storage.buckets.list
- 仅当您计划使用Trusted Cloud 控制台执行本页面上的说明时,才需要此权限。
storage.buckets.update
您也可以使用自定义角色来获取这些权限。
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
检查 ACL 使用情况
启用统一存储桶级访问权限之前,请使用 Cloud Monitoring 确保您的存储桶没有将 ACL 用于任何工作流。如需了解详情,请参阅检查对象 ACL 的使用情况。
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
调用 Monitoring JSON API:curl \ 'https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%20%3D%20%22storage.googleapis.com%2Fauthz%2Facl_operations_count%22&interval.endTime=END_TIME&interval.startTime=START_TIME' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Accept: application/json'
其中:
PROJECT_ID
是您要查看其 ACL 使用情况的项目 ID 或编号,例如my-project
。END_TIME
是您要查看其 ACL 使用情况的时间范围的结束时间,例如2019-11-02T15:01:23.045123456Z
。START_TIME
是您要查看其 ACL 使用情况的时间范围的开始时间,例如2016-10-02T15:01:23.045123456Z
。
如果请求返回空对象 {}
,则说明您的项目最近没有使用 ACL。
设置统一存储桶级访问权限
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,找到要启用或停用统一存储桶级访问权限的存储桶,然后点击其名称。
选择页面顶部附近的权限标签。
在名为访问权限控制的字段中,点击切换到链接。
在出现的菜单中,选择统一或精细。
点击保存。
如需了解如何在 Trusted Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用 gcloud storage buckets update
命令:
gcloud storage buckets update gs://BUCKET_NAME --STATE
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。STATE
可以为uniform-bucket-level-access
以启用统一存储桶级访问权限,或者为no-uniform-bucket-level-access
以停用统一存储桶级访问权限。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上启用统一存储桶级访问权限:
以下示例在存储桶上禁用统一存储桶级访问权限:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。创建一个包含以下信息的 JSON 文件:
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": STATE } } }
其中 STATE 为
true
或false
。使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。
XML API
XML API 不能用于处理统一存储桶级访问权限。请改用其他 Cloud Storage 工具之一,例如 gcloud CLI。
查看统一存储桶级访问权限状态
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
点击您要查看其状态的存储桶的名称。
点击配置标签页。
您可以在访问权限控制字段中找到存储桶的统一存储桶级访问权限状态。
如需了解如何在 Trusted Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有 --format
标志的 gcloud storage buckets describe
命令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(uniform_bucket_level_access)"
其中 BUCKET_NAME
是相关存储桶的名称,例如 my-bucket
。
如果成功,响应将如下所示:
uniform_bucket_level_access: true
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过包含所需fields
的GET
Bucket 请求调用 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
其中
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。如果存储桶启用了统一存储桶级访问权限,则响应将类似于如下所示:
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true, "lockedTime": "LOCK_DATE" } } }
XML API
XML API 不能用于处理统一存储桶级访问权限。请改用其他 Cloud Storage 工具之一,例如 gcloud CLI。