このページでは、Google Distributed Cloud(GDC)エアギャップ ストレージ WORM バケットを作成する方法について説明します。
始める前に
ストレージ バケットは、特定の プロジェクト をスコープとするリソースです。プロジェクトはコンテナとして機能し、バケットをグループ化して Management API サーバーを介した管理を可能にします。このページの手順を行うには、十分な権限を持つ新しいプロジェクトを作成するか、既存のプロジェクトを選択する必要があります。
必要な IAM のロール
プロジェクト名前空間で次のロールをリクエストするには、IAM プロジェクト管理者に連絡してください。
- プロジェクト バケット管理者 (
project-bucket-admin): ストレージ バケットの作成、更新、削除を行います。 - プロジェクト バケット オブジェクト閲覧者 (
project-bucket-object-viewer): ストレージ バケットとオブジェクトの詳細を表示して確認します。
詳細については、バケットへのアクセス権を付与するをご覧ください。
環境を準備する
Management API サーバーまたはグローバル API サーバーに対してコマンドを実行するには、次の操作を行います。
- ログインして生成します。ゾーン管理 API サーバーの kubeconfig ファイルがない場合は、
- デュアルゾーン バケットの場合は、次の操作を行います。
- ペアのゾーンに対して
BucketLocationConfigカスタム リソースが作成されていることをインフラストラクチャ オペレーター(IO)に確認します。 - グローバル API サーバーの kubeconfig ファイルを生成します。
- ペアのゾーンに対して
WORM バケットを作成する
WORM バケットを使用すると、他のオブジェクトがオブジェクトを上書きすることがなくなり、オブジェクトが最小期間保持されます。監査ロギングは、WORM バケットのユースケースの一例です。
WORM バケットを作成する手順は次のとおりです。
バケットの作成時に保持期間を設定します。保持期間は、各オブジェクト バージョンが削除または変更されないようにロックされる日数を定義します。 この保持期間は、ストレージ クラスの最小保存期間(
Standardストレージ クラスの 30 日間の最小保存期間など)とは異なります。たとえば、次のバケットでは、保持期間が 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ロールを付与します。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