このページでは、Cloud KMS の各タイプのリソースについて説明します。詳細については、リソースの階層をご覧ください。
Keys
Cloud KMS 鍵は、1 つ以上の鍵バージョンと鍵のメタデータを含む名前付きオブジェクトです。鍵は、特定のロケーションに関連付けられた 1 つの鍵リングに存在します。
Identity and Access Management(IAM)の権限とロールを使用して、鍵へのアクセスを許可または拒否できます。鍵バージョンへのアクセスを個別に管理することはできません。
鍵を無効化または破棄すると、鍵の各バージョンが無効化または破棄されます。
続くセクションでは、キーのプロパティについて説明します。
コンテキストに応じて、キーのプロパティは異なる形式で表記されます。
- Google Cloud CLI または Cloud Key Management Service API を使用する場合、このプロパティは大文字の文字列(
SOFTWARE
など)で表記されます。 - Google Cloud Console を使用する場合、このプロパティは、Software のように大文字で始まる文字列で表記されます。
以降のセクションで、適切な形式で各形式を示します。
タイプ
鍵の種類により、鍵が対称暗号オペレーションで使用されるか、または非対称暗号オペレーションで使用されるかが決まります。
対称暗号化または署名では、データの暗号化と復号、署名と署名の検証に同じ鍵が使用されます。
非対称暗号化や署名では、鍵は公開鍵と秘密鍵で構成されます。秘密鍵に対応する公開鍵は鍵ペアと呼ばれます。
- 秘密鍵は機密データであり、鍵の構成目的に応じて、データの復号または署名に必要です。
- 公開鍵は機密性が高いとは見なされないため、鍵の構成目的に応じて、データを暗号化または署名を検証する必要があります。
鍵の種類は鍵の目的を構成する要素の 1 つであり、鍵の作成後に変更することはできません。
Purpose
鍵の目的は、対称暗号化 / 復号や非対称署名など、鍵に使用できる暗号オペレーションの種類を示します。目的は、鍵を作成するときに選択します。また、すべての鍵のバージョンで、目的は同じです。鍵の作成後に、鍵の目的は変更できません。鍵の目的の詳細については、鍵の目的をご覧ください。
保護レベル
鍵の保護レベルによって、保存時の鍵のストレージ環境が決まります。保護レベルは次のいずれかです。
- ソフトウェア(Google Cloud CLI の
SOFTWARE
と Cloud Key Management Service API) - HSM
- 外部(Google Cloud CLI の
EXTERNAL
と Cloud Key Management Service API) - 外部_VPC(Google Cloud CLI の
EXTERNAL_VPC
と Cloud Key Management Service API)
鍵の作成後に、鍵の保護レベルを変更することはできません。
メインのバージョン
鍵には複数の鍵バージョンをアクティブにできます。また、一度に有効にすることもできます。対称暗号鍵にはプライマリ キー バージョンがあります。これは、鍵バージョンを指定しない場合にデフォルトでデータの暗号化に使用される鍵バージョンです。
非対称鍵にはプライマリ バージョンはありません。鍵を使用するときは、バージョンを指定する必要があります。
対称鍵と非対称鍵のどちらにおいても、有効な鍵バージョンを使用してデータを暗号化および復号したり、署名と署名の検証を行ったりできます。
鍵バージョン
鍵の各バージョンには、暗号化または署名に使用される鍵マテリアルが含まれています。各バージョンには、1
から始まるバージョン番号が割り当てられます。鍵をローテーションすると、新しいバージョンが作成されます。詳細については、鍵のローテーションをご覧ください。
データの復号や署名の検証には、データの暗号化や署名に使用したものと同じ鍵バージョンを使用する必要があります。鍵バージョンのリソース ID を確認するには、鍵のリソース ID の取得をご覧ください。
鍵バージョンは、他のバージョンに影響を与えることなく、個別に無効化または破棄できます。特定の鍵のすべての鍵バージョンを無効化または破棄することもできます。
鍵バージョンへのアクセスは、鍵に対する権限から独立して制御することはできません。1 つの鍵にアクセス権を付与すると、その鍵の有効なバージョンすべてに対するアクセス権が付与されます。
セキュリティ上の理由から、Google Cloud プリンシパルは、鍵バージョンによって表される生の暗号鍵マテリアルを表示またはエクスポートできません。代わりに、Cloud KMS がユーザーに代わって鍵マテリアルにアクセスします。
続くセクションでは、鍵バージョンのプロパティについて説明します。
状態
各鍵バージョンには、そのステータスを示す状態があります。通常、鍵の状態は次のいずれかになります。
- 有効
- 無効
- 破棄の予定
- 破棄
鍵バージョンは、有効化されている場合にのみ使用できます。破棄された状態以外の鍵バージョンでは、費用が発生します。 鍵バージョンの状態とバージョン間の遷移方法の詳細については、鍵バージョンの状態をご覧ください。
アルゴリズム
鍵バージョンのアルゴリズムによって、鍵マテリアルの作成方法と暗号オペレーションに必要なパラメータが決まります。対称鍵と非対称鍵は、それぞれ異なるアルゴリズムをサポートしています。暗号化と署名では異なるアルゴリズムを使用します。
新しい鍵バージョンを作成するときにアルゴリズムを指定しない場合は、以前のバージョンのアルゴリズムが使用されます。
アルゴリズムに関係なく、Cloud KMS は確率的暗号化を使用するため、同じ鍵バージョンで同じ平文を 2 回暗号化しても同じ暗号テキストは返されません。
キーリング
キーリングを使用すると、特定の Google Cloud ロケーション内の鍵を整理して、鍵のグループのアクセス制御を管理できます。キーリングの名前は Google Cloud プロジェクト全体にわたって一意である必要はありませんが、指定されたロケーション内では一意となる必要があります。キーリングを作成すると、削除はできません。キーリングには費用は発生しません。
鍵ハンドル
鍵ハンドルは、職掌分散を安全に分散し、Autokey を使用して CMEK 用の新しい Cloud KMS 鍵を作成するのに役立つ Cloud KMS リソースです。リソース プロジェクトで鍵ハンドルを作成すると、オンデマンド CMEK 設定用の鍵プロジェクトに Cloud KMS 鍵が作成されます。
鍵ハンドルは、作成された Cloud KMS 鍵への参照を保持します。Autokey によって作成された鍵の Cloud KMS リソース ID は、鍵ハンドルから取得できます。Terraform などの Infrastructure-as-code ツールは、鍵ハンドルと連携して、昇格した権限なしで CMEK で保護されたリソースを管理できます。
鍵ハンドルは Google Cloud コンソールには表示されませんが、REST API または Terraform で Autokey を使用するには、鍵ハンドルを使用して操作する必要があります。鍵ハンドルの使用の詳細については、Cloud KMS Autokey を使用して保護されたリソースを作成するをご覧ください。
Autokey 構成
Autokey 構成は、フォルダで Autokey を有効にするかどうかを定義するフォルダレベルのリソースです。Autokey 構成では、Cloud KMS Autokey によって作成された鍵に使用される鍵プロジェクトも定義され、そのフォルダ内のリソースが保護されます。Autokey を有効にするときに、リソース フォルダで Autokey 構成を作成または更新します。Autokey 構成の使用の詳細については、Cloud KMS Autokey を有効にするをご覧ください。
EKM 接続
EKM 接続は、特定の Google Cloud ロケーションのオンプレミス EKM への VPC 接続を編成する Cloud KMS リソースです。EKM 接続を使用すると、VPC ネットワーク経由で外部鍵マネージャーの鍵に接続して使用できます。EKM 接続は、作成後には削除できません。EKM 接続では費用は発生しません。
リソースの ID の取得
一部の API 呼び出しと gcloud CLI では、場合によっては、完全修飾された CryptoKeyVersion 名を表す文字列であるリソース ID でキーリング、鍵、鍵バージョンを参照する必要があります。リソース ID はファイルシステム パスと同様に階層的です。鍵のリソース ID には、キーリングとロケーションに関する情報も含まれています。
オブジェクト | リソース ID の形式 |
---|---|
鍵リング | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING |
鍵 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME |
鍵のバージョン | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION |
鍵ハンドル | projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE |
EKM 接続 | projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION |
Autokey 構成 | folders/FOLDER_NUMBER/autopilotConfig |
詳細については、Cloud KMS リソース ID の取得をご覧ください。
リソースの整理
Google Cloud プロジェクトのリソースを整理する方法を計画する際は、ビジネスルールとアクセス管理をどのように行うかを検討してください。アクセス権は、1 つの鍵、キーリング上のすべての鍵、またはプロジェクト内のすべての鍵に対して付与できます。一般的な編成パターンは、次のとおりです。
- 環境(
prod
、test
、develop
など)。 - 作業エリア(
payroll
、insurance_claims
など)。 - データの機密性または特性(
unrestricted
、restricted
、confidential
、top-secret
など)。
リソースのライフサイクル
注: 鍵リング、鍵、鍵バージョンは削除できません。これにより、鍵バージョンのリソース ID が一意となり、破棄されない限り、常にその鍵バージョンの元の鍵マテリアルを指すようになります。キーリング、有効または無効な鍵、有効、無効、または破棄された鍵バージョンを保存できる数に制限はありません。詳細については、価格と割り当てをご覧ください。
鍵バージョンを破棄または復元する方法については、鍵バージョンの破棄と復元をご覧ください。
Google Cloud プロジェクトのシャットダウンをスケジュール設定した後は、プロジェクトを復元する手順に従ってプロジェクトを復元しない限り、Cloud KMS リソースなどのプロジェクトのリソースにはアクセスできません。