デフォルトでは、Google Cloud Managed Lustre はお客様のコンテンツを保存時に暗号化します。Managed Lustre では、ユーザーが追加で操作を行わなくても、暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Managed Lustre などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。 Cloud KMS を使用すると、監査ログを表示し、鍵のライフサイクルを管理することも可能です。 データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵を制御および管理します。
CMEK を使用してリソースを設定した後は、Managed Lustre リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
次の Managed Lustre データは CMEK で保護されます。
- ファイルデータ
- ファイル名などのファイル システム メタデータ
制限事項
次の制限が適用されます。
CMEK で保護された Managed Lustre インスタンスの動的プロビジョニングは Google Kubernetes Engine ではサポートされていませんが、静的プロビジョニングはサポートされています。
VPC Service Controls の境界内に CMEK で保護された Managed Lustre インスタンスを作成する場合、Cloud KMS 鍵は次のいずれかである必要があります。
- 同じ VPC Service Controls 境界内。
- 下り(外向き)ルールを介してアクセス可能。詳細については、顧客管理の暗号鍵(CMEK)で VPC Service Controls を使用するをご覧ください。
Cloud KMS 鍵を作成する
CMEK 対応の Lustre インスタンスを作成する前に、Cloud KMS キーリングと Cloud KMS 鍵が必要です。
Managed Lustre は、次の 3 つの保護レベルをサポートしています。
- ソフトウェア(
SOFTWARE) - ハードウェア(
HSM) - インターネット経由の外部(
EXTERNAL)
鍵を作成するときは、Managed Lustre インスタンスを含むプロジェクトとは異なるプロジェクトに Cloud KMS 鍵を作成することをおすすめします。職掌分散をご覧ください。
Cloud KMS 鍵は、作成する Managed Lustre インスタンスと同じリージョンに作成する必要があります。
キーを作成するには:
- まだ作成していない場合は、キーリングを作成します。
- Cloud KMS 鍵を作成します。
Managed Lustre サービス エージェントに IAM 権限を付与する
Managed Lustre は、サービス エージェントを使用してリソースにアクセスし、ユーザーに代わって操作を行います。CMEK を使用するには、サービス エージェントに Cloud KMS 鍵の roles/cloudkms.cryptoKeyEncrypterDecrypter IAM ロールを付与する必要があります。
Google Cloud コンソールを使用して CMEK で保護された Managed Lustre インスタンスを作成する場合は、このセクションをスキップできます。 Google Cloud コンソールは、インスタンス作成フローの一部として必要な権限を付与します。
プロジェクトのサービス エージェント ID が不明な場合は、サービス エージェント ID を作成または取得するをご覧ください。
サービス エージェントに権限を付与する
サービス エージェントにロールを付与するには、gcloud kms keys add-iam-policy-binding コマンドを使用します。
gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring=KEY_RING \
--location=REGION \
--project=KMS_PROJECT_ID \
--member=serviceAccount:SERVICE_AGENT_IDENTITY \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
次の変数を置き換えます。
- KEY_NAME: Cloud KMS 鍵の名前。
- KEY_RING: 鍵を含むキーリングの名前。
- REGION: キーリングが配置されているリージョン。
- KMS_PROJECT_ID: Cloud KMS 鍵を含むプロジェクトの ID。
- SERVICE_AGENT_IDENTITY: Managed Lustre サービス エージェント ID(
service-<var>PROJECT_NUMBER</var>@gcp-sa-lustre.)。
CMEK 対応の Managed Lustre インスタンスを作成する
CMEK で保護された Managed Lustre インスタンスを作成するには、次のいずれかのインターフェースを使用します。Cluster Toolkit ブループリントで CMEK を構成するには、Cluster Toolkit のドキュメントの顧客管理の暗号鍵(CMEK)を使用するをご覧ください。
gcloud
gcloud を使用して CMEK で保護されたインスタンスを作成するには、インスタンスを作成するの手順に沿って操作します。次のように、鍵識別子を --kms-key-name の値として指定します。
gcloud lustre instance create INSTANCE_ID \
--filesystem=FILESYSTEM_NAME \
--per-unit-storage-throughput=PERF_TIER \
--capacity-gib=CAPACITY_GIB \
--location=ZONE \
--network=NETWORK_NAME \
--project=PROJECT_ID \
--kms-key-name=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Cloud KMS 鍵は、作成する Managed Lustre インスタンスと同じリージョンに存在する必要があります。
REST
REST API を使用して CMEK で保護されたインスタンスを作成するには、インスタンスを作成するの手順に沿って操作します。次のように、鍵識別子を kmsKey の値として指定します。
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
"filesystem": "FILESYSTEM_NAME",
"perUnitStorageThroughput": PERF_TIER,
"capacityGib": CAPACITY_GIB,
"network": "NETWORK_NAME",
"kmsKey": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
}
Cloud KMS 鍵は、作成する Managed Lustre インスタンスと同じリージョンに存在する必要があります。
フィールドとその説明の完全なリストについては、Instance リソースのリファレンス ドキュメントをご覧ください。
Google Cloud コンソール
Google Cloud コンソールを使用して CMEK で保護されたインスタンスを作成するには、インスタンスを作成するの手順に沿って操作します。 Google Cloud コンソールの [インスタンスの作成] ページで、次の操作を行います。
[暗号化] セクションで、[Cloud KMS 鍵] を選択します。
鍵管理タイプとして [Cloud KMS] を選択し、鍵を選択します。鍵が別のプロジェクトにある場合(推奨)、[プロジェクトを切り替え] をクリックして鍵プロジェクトを選択し、鍵を選択します。Cloud KMS 鍵は、作成する Managed Lustre インスタンスと同じリージョンに存在する必要があります。
Managed Lustre サービス エージェントに CMEK を使用するために必要な権限がない場合は、
cloudkms.cryptoKeyEncrypterDecrypterロールを付与するよう求められます。[付与] をクリックしてロールを適用します。
Cloud KMS 鍵が使用できない場合、または作成オペレーションの開始時に権限の問題がある場合、オペレーションは失敗し、FAILED_PRECONDITION エラーが返されます。
鍵管理
Cloud Key Management Service 鍵は、ローテーション、無効化、再有効化、破棄が可能です。さまざまな理由で利用できなくなる可能性があります。
鍵のローテーション
Cloud KMS 鍵をローテーションできます。鍵をローテーションすると、新しい鍵バージョンが作成されます。
鍵をローテーションしても、Managed Lustre インスタンスのデータは再暗号化されません。Managed Lustre は、データの復号や再暗号化をサポートしていません。
Managed Lustre インスタンスの既存の容量は、インスタンスの作成時に使用されていた鍵のバージョンで引き続き暗号化されます。
インスタンスのストレージ容量を増やすと、新しい容量は、容量増加リクエストを行ったときにプライマリである鍵バージョンによって保護されます。その容量に書き込まれたデータは、その鍵バージョンによって保護されます。
つまり、鍵バージョンのローテーション後にインスタンスの容量を増やした場合、Managed Lustre インスタンスを暗号化する複数の鍵バージョンが存在する可能性があります。
鍵を無効にする
鍵バージョンを無効にできます。Managed Lustre インスタンスで使用されている鍵バージョンが無効になっている間、インスタンスは一時停止されます。インスタンスを再開するには、インスタンスを保護するすべての鍵バージョンを使用可能な状態に戻します。一時停止されたインスタンスについては、使用できない鍵をご覧ください。
詳細については、鍵バージョンを有効または無効にするをご覧ください。
鍵を再度有効にする
鍵バージョンが無効になっている場合は、Cloud KMS API を使用して再度有効にできます。鍵バージョンを有効または無効にするをご覧ください。
Managed Lustre インスタンスを再開するには、ストレージ容量を暗号化しているすべてのバージョンの鍵を有効にするか、復元する必要があります。
必要なすべての鍵が ENABLED 状態に戻ると、Managed Lustre は鍵の変更を自動的に検出し、インスタンスを再起動します。インスタンスの状態が ACTIVE になり、Managed Lustre サービスが通常のオペレーションを再開します。I/O やその他の長時間実行オペレーションを実行できます。
鍵を破棄する
Cloud KMS 鍵バージョンは破棄できます。つまり、鍵マテリアルは完全に削除されます。
Cloud KMS 鍵をすぐに破棄することはできません。代わりに、鍵バージョンの破棄をスケジュールする必要があります。スケジュールされた期間中は、鍵バージョンを復元して破棄をキャンセルできます。詳細については、鍵バージョンの破棄と復元をご覧ください。
破棄がスケジュールされている鍵バージョンは使用できません。その鍵バージョンで保護されている Managed Lustre インスタンスは一時停止されます。一時停止されたインスタンスについては、使用できない鍵をご覧ください。
破棄された鍵バージョンは復元できません。インスタンスは完全に停止したままになります。Managed Lustre インスタンスで使用できるオペレーションは、インスタンスの削除のみです。
使用できないキー
鍵が使用できなくなる理由は次のとおりです。
- 鍵が無効になる。
- 鍵が破棄されているか、破棄がスケジュール設定されている。
- サービス エージェントから必要な権限が削除されている。
- Cloud KMS 鍵のプロジェクトで課金が無効になっており、1 時間以上無効のままになっている。
- 外部鍵に 1 時間以上アクセスできない。
このような場合、イベントから数分以内に Managed Lustre インスタンスがシャットダウンされ、インスタンスの状態が SUSPENDED に設定されます。
SUSPENDED インスタンスは、鍵を再度使用可能にすることで復元できます。
停止の理由として考えられるのは次のとおりです。
| キーに対するアクション | インスタンスの状態 | 停止理由 | 再度有効にできる |
|---|---|---|---|
| 無効にする | SUSPENDED |
KEY_DISABLE |
○ |
| 破棄をスケジュールする | SUSPENDED |
KEY_DESTROY_SCHEDULED |
○ |
| 破棄 | SUSPENDED |
KEY_DESTROY |
× |
| 権限を削除する | SUSPENDED |
PERMISSION_DENIED |
○ |
| 1 時間課金を無効にする | SUSPENDED |
BILLING_DISABLED |
○ |
| EKM 鍵に 1 時間アクセスできない | SUSPENDED |
EKM_KEY_UNREACHABLE |
○ |
インスタンスが一時停止されると、次のようになります。
- インスタンスの更新やインポート / エクスポートなどの長時間実行オペレーションはブロックされ、
FAILED_PRECONDITIONエラーが返されます。 - サーバーノードがシャットダウンされるまで、I/O オペレーションは応答を停止します。この処理は 30 分以内に完了します。
- 許可される長時間実行オペレーションは
DeleteInstanceのみです。
4 か月以上一時停止されているインスタンスは、再開できない場合があります。
停止中のインスタンスに対する課金
鍵が使用できないために Managed Lustre インスタンスが SUSPENDED 状態になった場合、インスタンスに対して引き続き料金が発生します。停止状態でも課金は一時停止されません。インスタンスに対する課金を停止するには、インスタンスを削除する必要があります。
また、使用中の鍵バージョンについては、Cloud KMS から別途請求されます。
鍵の使用状況を表示し、鍵バージョンを一覧表示する
Cloud KMS 鍵で保護されている組織内の Google Cloud リソースを表示できます。詳細については、鍵の使用状況を表示するをご覧ください。
Managed Lustre インスタンスで使用されている鍵バージョンの完全なリストを表示するには、gcloud kms inventory search-protected-resources コマンドを使用します。
gcloud kms inventory search-protected-resources \
--keyname=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--scope=organizations/ORGANIZATION_ID \
--filter="name:projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID" \
--flatten="cryptoKeyVersions" \
--format="value(cryptoKeyVersions)"
ここで
- ORGANIZATION_ID は組織の数値 ID です。組織リソース ID の取得をご覧ください。
[鍵のインベントリ] ページで鍵の情報を確認することもできます。