本頁面將引導您在 Google Distributed Cloud (GDC) 實體隔離環境中,建立一次寫入、多次讀取 (WORM) 儲存空間 bucket。包括建立 WORM bucket 的必要條件和步驟、定義保留期限,以及使用角色繫結授予存取權限。這項資訊可讓您強制執行嚴格的資料保留做法和不可變性,為記錄和稽核記錄等用途提供強大且符合法規的資料儲存庫。
本頁面適用於基礎架構營運商群組中的 IT 管理員,或應用程式營運商群組中的開發人員,他們負責管理 GDC 實體隔離方案中儲存 bucket 的資料保留和法規遵循設定。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
Storage bucket 是特定專案範圍內的資源。專案就像容器,可將 bucket 分組,並透過 Management API 伺服器管理。您必須先建立新專案,或選取具備足夠權限的現有專案,才能執行這個頁面的作業。
必要的 IAM 角色
請與 IAM 專案管理員聯絡,要求在專案命名空間中取得下列角色:
- Bucket 專案管理員 (
project-bucket-admin):建立、更新及刪除儲存空間 bucket。 - Bucket 物件專案檢視者 (
project-bucket-object-viewer):查看及檢查儲存空間 bucket 和物件的詳細資料。
詳情請參閱「授予 bucket 存取權」。
準備環境
如要對管理 API 伺服器或全域 API 伺服器執行指令,請按照下列步驟操作:
- 如果沒有可用檔案,請登入並產生可用於可用區 Management API 伺服器的 kubeconfig 檔案。
- 如果是雙可用區 bucket,請按照下列步驟操作:
- 請向基礎架構運作人員 (IO) 確認,已為配對可用區建立
BucketLocationConfig自訂資源。 - 產生全域 API 伺服器的 kubeconfig 檔案。
- 請向基礎架構運作人員 (IO) 確認,已為配對可用區建立
建立 WORM bucket
WORM 值區可確保沒有其他項目會覆寫物件,並將物件保留一段時間。稽核記錄是 WORM bucket 的應用實例。
如要建立 WORM bucket,請按照下列步驟操作:
建立 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將
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將
project-bucket-object-admin角色授予需要將內容寫入 bucket 的使用者: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