為專案建立儲存空間 WORM bucket

本頁說明如何建立 Google Distributed Cloud (GDC) 離線儲存空間 WORM 值區。

事前準備

儲存空間值區是範圍僅限特定專案的資源。專案會做為容器,將值區分組,並透過 Management API 伺服器管理這些值區。如要在此頁面執行作業,您必須建立新專案,或選取具備足夠權限的現有專案。

必要的 IAM 角色

請與 IAM 專案管理員聯絡,要求在專案命名空間中取得下列角色:

  • 專案值區管理員 (project-bucket-admin):建立、更新及刪除儲存空間值區。
  • 專案值區物件檢視者 (project-bucket-object-viewer):查看及檢查儲存空間值區和物件的詳細資料。

詳情請參閱「授予 bucket 存取權」。

準備環境

如要對管理 API 伺服器或全域 API 伺服器執行指令,請按照下列步驟操作:

  1. 如果沒有區域管理 API 伺服器的 kubeconfig 檔案,請登入並產生該檔案。
  2. 如果是雙區域值區,請執行下列操作:

建立 WORM bucket

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

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

  1. 建立 bucket 時,請設定保留期限。保留期限會定義每個物件版本遭到鎖定,無法刪除或修改的天數。這項保留期限與儲存空間級別的最短儲存時間不同 (例如 Standard 儲存空間級別的最短儲存時間為 30 天)。舉例來說,下列 bucket 會將保留期限設為 365 天。如要超出保留政策限制,請與基礎架構營運商 (IO) 聯絡。

    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-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account