このページでは、暗号化された Google Distributed Cloud(GDC)エアギャップ ストレージ バケットを管理する方法について説明します。
始める前に
ストレージ バケットは、特定の プロジェクト をスコープとするリソースです。プロジェクトはコンテナとして機能し、バケットをグループ化して Management API サーバーを介した管理を可能にします。このページの手順を行うには、十分な権限を持つ新しいプロジェクトを作成するか、既存のプロジェクトを選択する必要があります。
必要な IAM のロール
プロジェクト名前空間で次のロールをリクエストするには、IAM プロジェクト管理者に連絡してください。
- プロジェクト バケット管理者 (
project-bucket-admin): ストレージ バケットの作成、更新、削除を行います。 - プロジェクト バケット オブジェクト閲覧者 (
project-bucket-object-viewer): ストレージ バケットとオブジェクトの詳細を表示して確認します。
詳細については、バケットへのアクセス権を付与するをご覧ください。
環境を準備する
Management API サーバーまたはグローバル API サーバーに対してコマンドを実行するには、次の操作を行います。
- ログインして生成します。ゾーン管理 API サーバーの kubeconfig ファイルがない場合は、
- デュアルゾーン バケットの場合は、次の操作を行います。
- インフラストラクチャ オペレーター(IO)に、ペアのゾーンに対して
BucketLocationConfigカスタム リソースが作成されていることを確認します。 - グローバル API サーバーの kubeconfig ファイルを生成します。
- インフラストラクチャ オペレーター(IO)に、ペアのゾーンに対して
暗号化リソースを管理する
v2 暗号化を使用するバケットには、Secret kekRef と複数の AEADKey が作成されます。kekRef は使用中のアクティブなデフォルト AEADKey を参照するために使用され、AEADKey にはバケットに属するアクティブな AEADKey とアーカイブされた AEADKey が含まれます。
バケットのアクティブなデフォルト AEADKey を更新する
ベスト プラクティスとして、約 420 億個のオブジェクトの書き込み後に、バケットのデフォルトの AEADKey を更新します。この予防措置により、セキュリティが強化され、鍵の枯渇を防ぐことができます。更新プロセスでは、新しい kekRef が作成され、以前の AEADKey が無効になります。更新プロセスを開始するには、バケットに関連付けられている kekRef Secret を削除します。
以前の kekRef は、次のコマンドを実行して取得できます。
kubectl get secrets -n NAMESPACE_NAME -l object.gdc.goog/bucket-name=BUCKET_NAME
次に、次のコマンドを実行して既存の kekRef を削除します。
kubectl delete secrets OLD_KEKREF_NAME -n NAMESPACE_NAME
削除が成功したら、次のコマンドを実行して、AGE に基づいて新しい kekRef が作成されたことを確認します。
kubectl get secrets -n NAMESPACE_NAME -l object.gdc.goog/bucket-name=BUCKET_NAME
AGE に基づいて新しいデフォルトの AEADKey が作成されていることを確認します。
kubectl get aeadkeys -n NAMESPACE_NAME -l cmek.security.gdc.goog/resource-name=BUCKET_NAME
バケットのデフォルトの AEADKey をローテーションする
バケットの AEADKey が侵害された場合は、バケットに関連付けられている鍵暗号鍵を手動でローテーションする必要があります。
プロセスを開始するには、まずアクティブなデフォルトの鍵を更新する必要があります。これにより、新しいアクティブなデフォルトの AEADKey が作成され、以前の鍵暗号鍵が無効としてマークされます。デフォルトの鍵を更新すると、以降のオブジェクトのアップロードでは、新しい AEADKey が鍵暗号鍵として使用されます。以前の AEADKey は破棄されないため、これらの鍵を使用して暗号化された既存のオブジェクトを引き続き復号できます。
次に、バケット内のオブジェクトをダウンロードして再アップロードし、古いオブジェクトを削除する手順を行います。
バケット内のすべてのオブジェクトを再アップロードしたら、無効な AEADKey と古いオブジェクトをクリーンアップできます。AGE に基づいて無効化された AEADKey を特定します。
kubectl get aeadkeys -n NAMESPACE_NAME -l cmek.security.gdc.goog/resource-name=BUCKET_NAME
最後に、AEADKey を削除する手順を行います。