建立儲存空間 WORM bucket

本頁將逐步說明如何在 Google Distributed Cloud (GDC) 氣隙環境中,建立一次寫入多次讀取 (WORM) 儲存空間值區。本文說明建立具有定義保留期限的 WORM bucket,以及使用角色繫結授予存取權限的先決條件和步驟。您可以根據這項資訊強制執行嚴格的資料保留做法和不可變更性,為記錄和稽核記錄等用途提供強大且符合規定的資料儲存空間。

這個頁面適用於基礎架構營運商群組的 IT 管理員,或應用程式營運商群組的開發人員,他們負責管理 GDC 無網路連線環境中儲存空間 bucket 的資料保留和法規遵循設定。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件

事前準備

專案命名空間可管理 Management API 伺服器中的 bucket 資源。您必須擁有專案,才能使用 bucket 和物件。

您也必須具備適當的 bucket 權限,才能執行下列作業。請參閱「授予 bucket 存取權」。

如果是雙區域 bucket,請設定 kubectl 以存取 Global API 伺服器。按照「全域 API 伺服器資源」中的步驟操作,並將 GLOBAL_API_SERVER 環境變數設為 kubeconfig 檔案。

建立 WORM bucket

WORM 值區可確保物件不會遭到覆寫,並保留至少一段時間。稽核記錄是 WORM bucket 的應用實例。

如要建立 WORM bucket,請按照下列步驟操作:

  1. 建立 bucket 時,請設定保留期限。舉例來說,以下範例值區的保留期限為 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