このページでは、Cloud Key Management Service の鍵バージョンを永続的に破棄するようにスケジュールする方法について説明します。Cloud KMS では、データの暗号化、復号、署名、検証に使用する暗号鍵マテリアルが、鍵バージョンに保存されています。鍵には、0 個以上の鍵バージョンがあります。鍵をローテーションすると、新しい鍵バージョンが作成されます。
鍵バージョンを破棄すると、鍵マテリアルが永続的に削除されます。鍵バージョンを破棄しても、鍵名や鍵バージョン番号などの他の詳細は削除されません。鍵が破棄された後は、その鍵バージョンで暗号化されたデータを復号できません。
唯一の例外は鍵の再インポートです。これにより、同じ元の鍵マテリアルを指定して、以前にインポートした鍵を復元できます。
鍵の破棄は通常元に戻せないため、Cloud KMS では鍵バージョンをすぐに破棄することはできません。代わりに、鍵バージョンの破棄をスケジュールします。鍵バージョンは、破棄がスケジュール済みの状態で、構成可能な一定期間にわたり維持されます。「破棄の予定」期間中は、鍵バージョンを復元して破棄をキャンセルできます。
デフォルトの破棄の予定期間は 30 日間です。鍵の作成時に、カスタムの鍵の破棄の予定期間を設定できます。組織は、組織のポリシーで [鍵ごとの破棄の最小予定期間] 制約を設定することで、最小の破棄の予定期間を適用できます。
鍵へのアクセスは、Identity and Access Management(IAM)を使用して管理することもできます。IAM オペレーションの整合性は、数秒以内に確保されます。詳細については、IAM の使用をご覧ください。
鍵バージョンを無効にすることもできます。鍵を安全に破棄できるようにする手順の一環として、鍵バージョンの破棄をスケジュールする前に鍵バージョンを無効にすることをおすすめします。組織のポリシーによっては、鍵バージョンの破棄をスケジュールする前に、鍵バージョンを無効にする必要がある場合があります。組織のポリシーを使用して鍵バージョンの破棄を制御する方法については、鍵バージョンの破棄を制御するをご覧ください。
このドキュメントの残りの部分では、破棄が直ちに行われるわけではありませんが、鍵の破棄をスケジュールすることを鍵の破棄と呼びます。
始める前に
リスクを把握する
鍵バージョンの破棄は、取り消すことのできないオペレーションです。まだ必要な鍵バージョンを破棄すると、次のようなリスクが生じます。
サービス停止: コンテナまたはインスタンスの起動に必要な鍵を破棄すると、サービスまたはアプリケーションを使用できなくなる場合があります。
永続的なデータ損失: データの暗号化に使用された鍵を破棄すると、そのデータにアクセスできなくなります。破棄された鍵で暗号化されたデータは、暗号細断とみなされます。鍵を破棄すると、暗号化されたリソースが完全に削除されることがあります。
規制やコンプライアンスに関する問題: 保持期間が終了する前に保持期間の対象となるデータにアクセスする必要がある場合は、鍵を破棄すると、規制要件やコンプライアンス要件に違反する可能性があります。
必要なロール
鍵バージョンの破棄と復元に必要な権限を取得するには、管理者に Cloud KMS 管理者 (roles/cloudkms.admin)鍵に対する IAM ロールを付与するよう依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
鍵バージョンが使用中かどうかを確認する
鍵バージョンを破棄する前に、次の手順で鍵バージョンが使用されているかどうかを確認します。
鍵の鍵使用状況の追跡の詳細を表示する。破棄する鍵バージョンで保護されているリソースがある場合は、別の鍵バージョンでリソースを再暗号化します。
キー バージョンを使用している可能性のあるサービスまたはアプリケーションのログをオンにします。
鍵を含む Cloud KMS プロジェクトでログを有効にします。
鍵バージョンを無効にします。鍵バージョンを無効にすると、その鍵バージョンは使用できなくなります。鍵バージョンが無効になっていると、鍵バージョンを使用しようとしても失敗します。
無効にした鍵バージョンに依存しているアプリケーションやサービスがなくなったことを確認できるまで、ログをモニタリングします。鍵バージョンへのアクセスに失敗したことを示すエラーがある場合は、別の鍵バージョンを使用するようにアプリケーションまたはリソースを構成します。
鍵バージョンを破棄する前にログをモニタリングする時間は、鍵のタイプ、使用パターン、感度レベルによって異なります。たとえば、四半期ごとに実行されるプロセスで使用される鍵バージョンを破棄する前に、そのプロセスが正常に完了するまで鍵バージョンを無効にしておきます。
適用可能なコンプライアンス要件に照らして、鍵の使用状況を確認します。たとえば、鍵バージョンとそれによって暗号化されたデータは、データの保持期間の対象となる場合があります。
次の手順により、鍵が引き続き必要であるかどうかを判断できます。ただし、鍵バージョンが不要になることは保証されません。組織は、鍵バージョンの破棄が悪影響を及ぼさないように、手順とガイドラインを実装する必要があります。
鍵バージョンを破棄する
鍵バージョンは、有効または無効のものを破棄できます。
コンソール
Google Cloud コンソールで、[鍵管理] ページに移動します。
破棄をスケジュールする鍵バージョンの横にあるチェックボックスをオンにします。
ヘッダーの [破棄] をクリックします。
確認プロンプトで、鍵名を入力して [破棄をスケジュール] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys versions destroy KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION
以下を置き換えます。
KEY_VERSION: 破棄する鍵バージョンのバージョン番号。KEY_NAME: 鍵バージョンを破棄するキーの名前。KEY_RING: 鍵を含むキーリングの名前LOCATION: キーリングの Cloud KMS のロケーション
すべてのフラグと有効な値については、--help フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
PHP
このコードを実行するには、まず Google Cloudでの PHP の使用について学び、Cloud KMS PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。