创建存储 WORM 桶

本页面将指导您如何在 Google Distributed Cloud (GDC) 气隙环境中创建一次写入多次读取 (WORM) 存储分区。其中介绍了创建具有指定保留期限的 WORM 存储桶以及使用角色绑定授予访问权限的前提条件和步骤。借助这些信息,您可以强制执行严格的数据保留做法和不可变性,从而为记录和审核日志记录等用例提供稳健且合规的数据存储。

本页面面向基础架构运维人员组中的 IT 管理员或应用运维人员组中的开发者等受众群体,他们负责管理 GDC 网闸隔离配置环境中存储分区的数据保留和合规性设置。如需了解详情,请参阅 GDC 网闸隔离配置文档的受众群体

准备工作

项目命名空间用于管理 Management API 服务器中的存储桶资源。您 必须拥有项目才能使用存储分区和对象。

您还必须拥有相应的存储桶权限才能执行以下操作。请参阅授予存储桶访问权限

对于双区域存储分区,请配置 kubectl 以访问 Global API 服务器。按照 Global API 服务器资源 中的步骤操作,并将 GLOBAL_API_SERVER 环境变量设置为 kubeconfig 文件。

创建 WORM 存储桶

WORM 存储桶可确保没有其他内容覆盖对象,并将其保留至少一段时间。审核日志记录是 WORM 存储桶的一个示例用例。

如需创建 WORM 存储桶,请按以下步骤操作:

  1. 在创建存储桶时设置保留期限。例如,以下示例存储桶的保留期限为 365 天。

    apiVersion: object.gdc.goog/v1
    kind: Bucket
    metadata:
      name: foo logging-bucket
      namespace: foo-service
    spec:
      description: "Audit logs for foo"
      storageClass: Standard
      bucketPolicy:
        lockingPolicy:
          defaultObjectRetentionDays: 365
    
  2. 向所有需要只读访问权限的用户授予 project-bucket-object-viewer 角色:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-readonly-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-log-processor
    - kind: User
      name: bob@example.com
      apiGroup: rbac.authorization.k8s.io
    
  3. 向需要向存储桶写入内容的用户授予 project-bucket-object-admin 角色:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account