プロジェクトのストレージ WORM バケットを作成する

このページでは、Google Distributed Cloud(GDC)エアギャップ ストレージ WORM バケットを作成する方法について説明します。

始める前に

プロジェクト名前空間は、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