建立儲存空間 WORM bucket

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

這個頁面適用於基礎架構營運商群組的 IT 管理員,或應用程式營運商群組的開發人員,他們負責管理 GDC 氣隙環境中儲存空間的資料保留和法規遵循設定。

事前準備

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

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

如要對管理 API 伺服器執行指令,請登入並產生管理 API 伺服器的 kubeconfig 檔案 (如果沒有的話)。

建立 WORM bucket

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

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

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