本頁說明如何為 Google Distributed Cloud (GDC) 實體隔離專案建立儲存空間值區。內容包括先決條件、建立和驗證步驟,以及命名規範。這有助於建立符合規定且設定完善的物件儲存空間,滿足隔離部署作業的需求。
本頁面適用於基礎架構營運商群組的 IT 管理員,或應用程式營運商群組的開發人員。這些對象希望在 GDC 無氣隙環境中,為專案佈建及管理物件儲存空間值區。詳情請參閱 GDC air-gapped 的目標對象說明文件。
事前準備
專案命名空間可管理 Management API 伺服器中的 bucket 資源。您必須擁有專案,才能使用 bucket 和物件。
您也必須具備適當的 bucket 權限,才能執行下列作業。請參閱「授予 bucket 存取權」。
Storage 值區命名規範
值區名稱必須遵循下列命名慣例:
- 在專案中不得重複。專案會在 bucket 名稱中附加不重複的前置字元,確保機構內不會發生衝突。萬一發生前置字串和 bucket 名稱在不同機構之間衝突的情況,bucket 建立作業會失敗,並顯示「bucket 名稱已在使用中」錯誤。
- 請勿加入任何個人識別資訊 (PII)。
- 符合 DNS 規定。
- 至少 1 個字元,最多 55 個字元。
- 開頭須為英文字母,且只能使用英文字母、數字和連字號。
建立值區
控制台
- 在導覽選單中,按一下「物件儲存空間」。
- 按一下「建立值區」。
- 在建立 bucket 的流程中,指派的名稱不得與專案中任何 bucket 的名稱重複。
- 輸入說明。
- 選用:按一下 toggle_off 切換鈕,設定保留政策並輸入偏好的天數。如要超出保留政策限制,請與 IO 聯絡。
- 按一下「建立」,系統會顯示成功訊息,並將您導回「Buckets」(值區) 頁面。
如要確認是否已成功建立新值區,請稍候幾分鐘,然後重新整理「值區」頁面,並檢查值區狀態是否從 Not ready
更新為 Ready
。
CLI
如要建立 bucket,請將 bucket 規格套用至專案命名空間:
kubectl apply -f bucket.yaml
以下是 bucket 規格的範例:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: DESCRIPTION
storageClass: Standard
bucketPolicy:
lockingPolicy:
defaultObjectRetentionDays: RETENTION_DAY_COUNT
以下是加密版本為 v1
的 bucket 規格範例:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
labels:
object.gdc.goog/encryption-version: v1
spec:
description: DESCRIPTION
storageClass: Standard
bucketPolicy:
lockingPolicy:
defaultObjectRetentionDays: RETENTION_DAY_COUNT
詳情請參閱 Bucket API 參考資料。
以下是 org-admin 全域 API 中的雙區域值區範例:
apiVersion: object.global.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: PROJECT_NAME
spec:
location: LOCATION_NAME
description: Sample DZ Bucket
storageClass: Standard
請注意,雙區域值區僅支援 V2 加密,且建立、更新或刪除雙區域值區資源的所有作業,都必須透過全域 API 伺服器執行。
gdcloud
如要使用 gdcloud 建立 bucket,請按照 gdcloud storage buckets create 操作。
確認已建立 bucket 和相關資源
建立 bucket 後,您可以執行下列指令來確認並檢查 bucket 的詳細資料:
kubectl describe buckets BUCKET_NAME -n NAMESPACE_NAME
「狀態」部分有兩個重要欄位:「加密」 (加密詳細資料) 和「完整名稱」 (包含 FULLY_QUALIFIED_BUCKET_NAME)。
加密第 1 版
這項資訊與名為 obj-FULLY_QUALIFIED_BUCKET_NAME
的 AEADKey 有關,這個金鑰會做為加密金鑰的參照,用來加密儲存在 bucket 中的物件。範例如下:
Status:
Encryption:
Key Ref:
Kind: AEADKey
Name: obj-FULLY_QUALIFIED_BUCKET_NAME
Namespace: NAMESPACE_NAME
Type: CMEK
加密 v2
這項資訊與名為「kek-ref-FULLY_QUALIFIED_BUCKET_NAME
」的 Secret 相關,該 Secret 可做為有效預設 AEADKey 的參照。如果未指定特定 AEADKey,系統會從有效的預設 AEADKey 中隨機選取,用於加密上傳至值區的物件。
範例如下:
Status:
Encryption:
Key Ref:
Kind: Secret
Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
Namespace: NAMESPACE_NAME
Type: CMEK
您也可以執行下列指令,確認已建立必要的 AEADKeys:
kubectl get aeadkeys -n NAMESPACE_NAME -l cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME
建立 bucket 後,您可以建立政策檔案並指派給 bucket,藉此代表應用程式運算子 (AO) 管理 bucket 存取權。