使用和锁定保留政策

概览

本页面介绍了如何使用存储桶锁定功能,包括使用保留政策以及将其永久地锁定在存储桶上。

准备工作

请确保您已完成以下部分中的步骤,然后才能使用存储桶锁定功能。

获取所需角色

如需获得使用存储桶锁定所需的权限,请让您的管理员为您授予存储桶的 Storage Admin (roles/storage.admin) 角色。此预定义角色可提供使用存储桶锁定所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

  • storage.buckets.get
  • storage.buckets.list
    • 仅当您计划使用Google Cloud 控制台执行本页面上的说明时,才需要此权限。
  • storage.buckets.update

您也可以使用自定义角色来获取这些权限。

如需了解如何授予存储桶的角色,请参阅设置和管理存储桶的 IAM 政策

在存储桶上设置保留政策

如需在存储桶上添加、修改或移除保留政策,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击要更改保留政策的存储桶的名称。

  3. 选择页面顶部附近的保护标签页。

  4. 保留政策部分中,设置保留政策:

    1. 如果当前没有适用于存储桶的保留政策,请点击 设置保留政策链接。选择保留期限的时间单位和时长。

    2. 如果某个保留政策当前应用于存储桶,它会显示在该部分中。点击修改以修改保留期限,或点击删除以完全移除保留政策。

    如需了解Google Cloud 控制台如何在不同时间单位之间进行转换,请参阅保留期限

如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查

命令行

使用带有相应标志的 gcloud storage buckets update 命令:

gcloud storage buckets update gs://BUCKET_NAME FLAG

其中:

  • BUCKET_NAME 是相关存储桶的名称,例如 my-bucket

  • FLAG 是存储桶的保留期限所需的设置。请采用以下某种格式:

    • --retention-period保留期限(如果要添加或更改保留政策)。例如 --retention-period=1d43200s
    • --clear-retention-period(如果要移除存储桶上的保留政策)。

如果成功,响应将如下所示:

Updating gs://my-bucket/...
  Completed 1  

客户端库

C++

如需了解详情,请参阅 Cloud Storage C++ API 参考文档

如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

以下示例在存储桶上设置保留政策:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::chrono::seconds period) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetRetentionPolicy(period),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!