ストレージ WORM バケットを作成する

このページでは、Google Distributed Cloud(GDC)のエアギャップ アプライアンス環境で Write Once Read Many(WORM)ストレージ バケットを作成する方法について説明します。ここでは、保持期間が定義された WORM バケットを作成するための前提条件と手順、ロール バインディングを使用してアクセス権限を付与する手順について説明します。この情報を使用すると、厳格なデータ保持と不変性を適用して、監査ロギングなどのレコードやユースケースに堅牢でコンプライアンスに準拠したデータ ストレージを提供できます。

このページは、インフラストラクチャ オペレーター グループの IT 管理者や、アプリケーション オペレーター グループのデベロッパーなど、GDC のエアギャップ環境でストレージ バケットのデータ保持とコンプライアンスの設定を管理するユーザーを対象としています。

始める前に

プロジェクト名前空間は、Management API サーバーのバケット リソースを管理します。バケットとオブジェクトを操作するには、プロジェクトが必要です。

次のオペレーションを実行するには、適切なバケット権限も必要です。バケットへのアクセス権を付与するをご覧ください。

WORM バケットを作成する

WORM バケットでは、オブジェクトが上書きされることはなく、最小期間保持されます。監査ロギングは、WORM バケットのユースケースの一例です。

WORM バケットを作成する手順は次のとおりです。

  1. バケットの作成時に保持期間を設定します。たとえば、次のバケットの保持期間は 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