このページでは、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