Cloud KMS リソース

このトピックでは、各種の Cloud KMS リソースについて説明します。詳細については、リソースの階層をご覧ください。

Cloud KMS 鍵は、1 つ以上の鍵バージョンと鍵のメタデータを含む名前付きオブジェクトです。鍵は、特定のロケーションに関連付けられた 1 つの鍵リングに存在します。

Identity and Access Management(IAM)の権限とロールを使用して、鍵へのアクセスを許可または拒否できます。鍵バージョンへのアクセスを、個別に管理することはできません。

鍵を無効化または破棄すると、鍵の各バージョンが無効化または破棄されます。

続くセクションでは、キーのプロパティについて説明します。

コンテキストに応じて、キーのプロパティは異なる形式で表記されます。

  • Google Cloud CLI または Cloud Key Management Service API を使用する場合、このプロパティは大文字の文字列(SOFTWARE など)で表記されます。
  • Google Cloud Console を使用する場合、このプロパティは、Software のように大文字で始まる文字列で表記されます。

以降のセクションで、適切な形式で各形式を示します。

種類

鍵の種類により、鍵が対称暗号オペレーションで使用されるか、または非対称暗号オペレーションで使用されるかが決まります。

対称暗号化では、鍵全体を暗号化または復号する必要があります。対称鍵を署名に使用することはできません。

非対称暗号化や署名では、鍵は公開鍵と秘密鍵で構成されます。

  • 秘密鍵は機密データと見なされ、鍵の構成目的に応じて、データの復号または署名に必要です。
  • 公開鍵は機密性が高いとは見なされないため、鍵の構成目的に応じて、データを暗号化または署名を検証する必要があります。

    鍵の作成後に、鍵の種類は変更できません。

鍵の種類は、その目的を構成する要素の 1 つです。

目的

鍵の目的により、鍵を暗号化に使用できるか、署名に使用できるかが決まります。目的は、鍵を作成するときに選択します。また、すべてのバージョンで、目的は共通です。

対称鍵の目的は、常に対称暗号化 / 復号です。

非対称鍵の目的は、非対称暗号化 / 復号または非対称署名です。

鍵の作成後に、鍵の目的は変更できません。

メインのバージョン

1 つの鍵には複数のバージョンがありますが、対称鍵はプライマリの鍵バージョンを 1 つしか持てません。鍵バージョンを指定しない場合は、プライマリの鍵バージョンを使用してデータが暗号化されます。

非対称鍵にはプライマリ バージョンはありません。鍵を使用するときは、バージョンを指定する必要があります。

対称鍵と非対称鍵のどちらにおいても、プライマリ バージョンかどうかにかかわらず、有効な鍵バージョンを使用してデータを暗号化または復号できます。

鍵バージョン

鍵の各バージョンには、暗号化または署名に使用される鍵マテリアルが含まれています。鍵のバージョンは 1 で始まる整数で表されます。データの復号や署名の検証には、データの暗号化や署名に使用したものと同じ鍵バージョンを使用する必要があります。鍵バージョンのリソース ID を検索して参照するには、鍵のリソース ID の取得をご覧ください。

鍵バージョンは、他のバージョンに影響を与えることなく、無効化または破棄できます。鍵をローテーションすると、新しいバージョンが作成されます。詳細については、鍵のローテーションをご覧ください。

鍵を無効化または破棄すると、その鍵のすべてのバージョンが無効化または破棄されます。鍵バージョンは、他の鍵バージョンに影響を与えることなく、選択して無効化できます。

鍵バージョンへのアクセスを、個別に管理することはできません。1 つの鍵へのアクセス権を付与すると、その鍵の有効なバージョンすべてに対するアクセス権も付与されます。

セキュリティ上の理由から、Google Cloud プリンシパルは、鍵バージョンによって表される生の暗号鍵マテリアルを表示またはエクスポートできません。代わりに、Cloud KMS がユーザーに代わって鍵マテリアルにアクセスします。

続くセクションでは、鍵バージョンのプロパティについて説明します。

状態

鍵バージョンの 状態 は、次のいずれかになります。

  • 有効
  • 無効
  • 破棄の予定
  • 破棄

鍵バージョンは、有効化されている場合にのみ使用できます。破棄された状態以外の鍵バージョンでは、費用が発生します。

保護レベル

鍵バージョンの保護レベルによって、保存中の鍵のストレージ環境が決まります。保護レベルは次のいずれかです。

  • ソフトウェア(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)

保護レベルは鍵バージョンのプロパティですが、鍵の作成後は変更できません。

アルゴリズム

鍵バージョンのアルゴリズムによって、鍵マテリアルの作成方法と暗号オペレーションに必要なパラメータが決まります。対称鍵と非対称鍵は、それぞれ異なるアルゴリズムをサポートしています。

新しい鍵バージョンを作成するときにアルゴリズムを指定しない場合は、以前のバージョンのアルゴリズムが使用されます。

アルゴリズムに関係なく、Cloud KMS は確率的暗号化を使用するため、同じ鍵バージョンで同じ平文を 2 回暗号化しても同じ暗号テキストには暗号化されることはありません。

キーリング

キーリングを使用すると、特定の Google Cloud ロケーション内の鍵を整理して、鍵のグループのアクセス制御を管理できます。キーリングの名前は Google Cloud プロジェクト全体にわたって一意である必要はありませんが、指定されたロケーション内では一意となる必要があります。キーリングを作成すると、削除はできません。キーリングには、ストレージの費用は発生しません。

EKM 接続

EKM 接続は、特定の Google Cloud ロケーションのオンプレミス EKM への VPC 接続を編成する Cloud KMS リソースです。EKM 接続を使用すると、VPC ネットワーク経由で外部鍵マネージャーの鍵に接続して使用できます。EKM 接続は、作成後には削除できません。EKM 接続では、ストレージの費用は発生しません。

リソースの ID の取得

一部の API 呼び出しと gcloud CLI では、場合により、完全修飾された CryptoKeyVersion 名を表す文字列であるリソース ID でキーリング、鍵、鍵バージョンを参照する必要があります。リソース ID はファイルシステム パスと同様に階層状です。鍵のリソース ID には、キーリングとロケーションに関する情報も含まれています。

Object から継承されたメソッド リソース ID の形式
鍵リング projects/project-id/locations/location/keyRings/keyring
projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key
鍵バージョン projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key/cryptoKeyVersions/version
EKM 接続 projects/project-id/locations/location/ekmConnections/ekmConnection

詳細については、Cloud KMS リソース ID の取得をご覧ください。

リソースの整理

Google Cloud プロジェクトのリソースを整理する方法を計画する際は、ビジネスルールとアクセス管理をどのように行うかを検討してください。アクセス権は、1 つの鍵、キーリング上のすべての鍵、またはプロジェクト内のすべての鍵に対して付与できます。一般的な編成パターンは、次のとおりです。

  • 環境(prodtestdevelop など)。
  • 作業エリア(payrollinsurance_claims など)。
  • データの機密性または特性(unrestrictedrestrictedconfidentialtop-secret など)。

リソースのライフサイクル

注: 鍵リング、鍵、鍵バージョンは削除できません。これにより、鍵バージョンのリソース ID が一意となり、破棄されない限り、常にその鍵バージョンの元の鍵マテリアルを指すようになります。キーリング、有効または無効な鍵、有効、無効、または破棄された鍵バージョンを保存できる数に制限はありません。詳細については、価格割り当てをご覧ください。

鍵バージョンの破棄または復元する方法については、鍵バージョンの破棄と復元をご覧ください。

Google Cloud プロジェクトのシャットダウンをスケジュールした場合、プロジェクトを復元する手順に従ってプロジェクトを復元しない限り、Cloud KMS リソースなどのプロジェクトのリソースにアクセスできなくなります。

次のステップ