Cloud KMS Autokey は、プロビジョニングと割り当てを自動化することで、顧客管理の暗号化鍵(CMEK)の作成と使用を簡素化します。Autokey を使用すると、キーリングと鍵がオンデマンドで生成されます。リソースの暗号化と復号に鍵を使用するサービス アカウントが作成され、必要に応じて Identity and Access Management(IAM)ロールが付与されます。Cloud KMS 管理者は、各リソースを事前に計画して作成する必要なく、Autokey によって作成された鍵の完全な制御と可視性を維持できます。Autokey を使用する方が鍵を自分でプロビジョニングするよりも簡単です。Autokey で作成された鍵がすべての要件を満たしている場合は、Autokey を使用することをおすすめします。
Autokey によって生成された鍵を使用すると、Multi-tenant Cloud HSM の保護レベル、職掌分散、鍵のローテーション、ロケーション、鍵の限定性など、データ セキュリティの業界標準と推奨されるプラクティスに一貫して対応できます。Autokey は、一般的なガイドラインと、Cloud KMS Autokey と統合されるサービスのリソースタイプに固有のガイドラインの両方に準拠した鍵を作成します。Google Cloud 作成後は、Autokey を使用してリクエストされた鍵は、同じ設定を持つ他の Cloud HSM 鍵と同じように機能します。
Autokey を使用すると、鍵の管理に Terraform を簡単に使用できるため、鍵の作成権限を昇格して Infrastructure as Code を実行する必要がなくなります。
Autokey は、専用プロジェクトの鍵ストレージ(以前は 一元化された鍵管理と呼ばれていました)または同じプロジェクトの鍵ストレージ (以前は委任された鍵管理と呼ばれていました)で使用できます。専用プロジェクトの鍵ストレージで Autokey を使用するには、フォルダ リソースを含む組織リソースが必要です。専用プロジェクトの鍵ストレージを使用する場合は、フォルダ内のプロジェクトで Autokey を有効にします。Autokey によって作成された鍵は、そのフォルダの指定された鍵プロジェクトに作成されます。同じプロジェクトの鍵ストレージを使用する場合は、フォルダまたはプロジェクトで Autokey を有効にして、保護対象のリソースと同じプロジェクトに Autokey で鍵を作成できるようにします。
組織とフォルダのリソースの詳細については、 リソース階層をご覧ください。
Cloud KMS Autokey は、Cloud HSM が利用できるすべての Google Cloud ロケーションで 利用できます。Cloud KMS のロケーションの詳細については、Cloud KMS のロケーションをご覧ください。Cloud KMS Autokey の使用には追加料金がかかりません。Autokey を使用して作成された鍵の料金は、他の Cloud HSM 鍵と同じです。料金の詳細については、Cloud Key Management Service の料金をご覧ください。
Autokey の仕組み
このセクションでは、Cloud KMS Autokey の仕組みについて説明します。次のユーザー ロールがプロセスに参加します。
- 管理者
- 管理者は、フォルダまたは組織レベルでセキュリティを管理するユーザーです。nk
- Autokey デベロッパー
- Autokey デベロッパーは、Cloud KMS Autokey を使用してリソースを作成するユーザーです。
- Cloud KMS 管理者
- Cloud KMS 管理者は、Cloud KMS リソースを管理するユーザーです。このロールでは、手動で作成した鍵を使用する場合よりも、Autokey を使用する場合のほうがロールが少なくなります。
このプロセスには、次のサービス エージェントも参加します。
- Cloud KMS サービス エージェント
- 特定の鍵プロジェクトでの Cloud KMS のサービス エージェント。Autokey は、Cloud KMS 鍵とキーリングを作成し、鍵に IAM ポリシーを設定し、各リソース サービス エージェントの暗号化と復号の権限を付与する、昇格した権限を持つこのサービス エージェントに依存します。
- リソース サービス エージェント
- 特定のリソース プロジェクト内の特定のサービスのサービス エージェント。このサービス エージェントには、リソースで CMEK 保護のために鍵を使用する前に、Cloud KMS 鍵に対する暗号化と復号の権限が必要です。Autokey は、必要に応じてリソース サービス エージェントを作成し、Cloud KMS 鍵を使用するために必要な権限を付与します。
管理者が Cloud KMS Autokey を有効にする
Autokey を有効にするには、選択した鍵ストレージ モデルに基づいて、次のいずれかのパスを選択します。
- 専用プロジェクトの鍵ストレージ: フォルダで専用プロジェクトの鍵ストレージを有効にします。フォルダ内の他のプロジェクトで作成されたリソースを保護する鍵を保持する専用の鍵プロジェクトを指定します。
- 同じプロジェクトの鍵ストレージ: 個々のプロジェクトまたはフォルダ内のすべてのプロジェクトで同じプロジェクトの鍵ストレージを有効にして、保護対象のリソースと同じプロジェクトに鍵を作成します。
専用プロジェクトの鍵ストレージを有効にする
フォルダ内の専用プロジェクトの鍵ストレージで Autokey を使用するには、管理者は次の 1 回限りの設定作業を完了する必要があります。
フォルダで専用プロジェクトの鍵ストレージを使用して Autokey を有効にし、そのフォルダの Autokey リソースを格納する Cloud KMS プロジェクトを確認します。
Cloud KMS のサービス エージェントを作成し、 鍵の作成と割り当ての権限をサービス エージェントに付与します。
この構成が完了すると、そのフォルダ内の任意のプロジェクトで Autokey 互換リソースを作成できるデベロッパーは、オンデマンドで Multi-tenant Cloud HSM 鍵の作成をトリガーできるようになります。Cloud KMS Autokey の設定手順の詳細については、Cloud KMS Autokey を有効にするをご覧ください。
同じプロジェクトの鍵ストレージで Autokey を有効にする
同じプロジェクトの鍵ストレージで Autokey を使用するには、管理者は次の 1 回限りの設定作業を完了する必要があります。
- プロジェクトまたはフォルダで、同じプロジェクトの鍵ストレージを使用して Autokey を有効にします。
- そのプロジェクトまたはフォルダ内のプロジェクトで Cloud KMS API を有効にします。
プロジェクトで同じプロジェクトの鍵ストレージを使用して Autokey を有効にすると、 Cloud KMS サービス エージェントが 必要に応じて作成されます。サービス エージェントを手動で作成する必要はありません。Autokey 互換リソースを作成する権限を持つユーザーは、必要に応じて新しい鍵をリクエストできます。Cloud KMS Autokey の設定手順の詳細については、 Cloud KMS Autokey を有効にするをご覧ください。
Autokey デベロッパーが Cloud KMS Autokey を使用する
プロジェクトで Autokey が正常に有効になると、Autokey デベロッパーは、オンデマンドで自分用に作成された鍵を使用して保護されたリソースを作成できます。 これは、専用プロジェクトの鍵ストレージで Autokey が有効になっているフォルダ内のプロジェクトと、同じプロジェクトの鍵ストレージで Autokey が有効になっているプロジェクトの両方に適用されます。リソース作成プロセスの詳細は、作成するリソースによって異なりますが、プロセスは次のフローに従います。
Autokey デベロッパーは、互換性のある Google Cloud サービスでリソースの作成を開始します。リソースの作成時に、デベロッパーは Autokey サービス エージェントに新しい鍵をリクエストします。
Autokey サービス エージェントはデベロッパーのリクエストを受け取り、次の手順を完了します。
- 選択したロケーションのプロジェクトにキーリングを作成します(キーリングがすでに存在する場合を除く)。
- リソースタイプに適した粒度の鍵をキーリングに作成します(このような鍵がすでに存在する場合を除く)。
- プロジェクトごと、サービスごとにサービス アカウントを作成します(サービス アカウントがすでに存在する場合を除く)。
- プロジェクトごと、サービスごとのサービス アカウントに、鍵に対する暗号化と復号の権限を付与します。
- デベロッパーがリソースの作成を完了できるように、デベロッパーに鍵の詳細を提供します。
Autokey サービス エージェントから正常に返された鍵の詳細を使用して、デベロッパーは、保護されたリソースの作成をすぐに終了できます。
Cloud KMS Autokey は、次のセクションで説明する属性を持つ鍵を作成します。この鍵作成フローでは、職掌分散が保持されます。Cloud KMS 管理者は、Autokey によって作成された鍵を完全に把握して管理できます。
Autokey を有効にしてから Autokey の使用を開始する方法については、 Cloud KMS Autokey を使用して保護されたリソースを作成するをご覧ください。
Autokey によって作成された鍵について
Cloud KMS Autokey によって作成される鍵には次の属性があります。
- 保護レベル: HSM。
- アルゴリズム: AES-256 GCM。
ローテーション期間: 1 年。
Autokey によって鍵が作成された後、Cloud KMS 管理者はローテーション期間をデフォルトから編集できます。
- 職掌分散:
- サービスのサービス アカウントには、鍵に対する暗号化と復号の権限が自動的に付与されます。
- Cloud KMS 管理者の権限は、Autokey で作成された鍵に通常どおり適用されます。Cloud KMS 管理者は、Autokey で作成された鍵を表示、更新、有効化または無効化、破棄できます。Cloud KMS 管理者には、 暗号化と復号の権限は付与されません。
- Autokey デベロッパーは、鍵の作成と割り当てのみをリクエストできます。鍵を表示または管理することはできません。
- 鍵の限定性または粒度: Autokey によって作成された鍵の粒度は、リソースタイプによって異なります。鍵の粒度に関するサービス固有の詳細 については、このページの互換性のあるサービスをご覧ください。
ロケーション: Autokey は、保護するリソースと同じロケーションに鍵を作成します。
Cloud HSM が利用できないロケーションで CMEK で保護されたリソースを作成する必要がある場合は、 CMEK を手動で作成する必要があります。
- 鍵バージョンの状態: Autokey を使用してリクエストされて新規作成された鍵 は、有効な状態のプライマリ鍵バージョンとして作成されます。
- キーリングの命名: Autokey によって作成されたすべての鍵は、
autokeyというキーリングに作成されます。Autokey プロジェクトのキーリングは、Autokey デベロッパーが指定されたロケーションで最初の鍵をリクエストするときに作成されます。autokeyキーリングは、専用プロジェクトの鍵ストレージを使用している場合は指定された鍵プロジェクトに、同じプロジェクトの鍵ストレージを使用している場合はリソース プロジェクトに作成されます。 - 鍵の命名: Autokey によって作成された鍵は、この命名
規則に従います:
PROJECT_NUMBER-SERVICE_SHORT_NAME-RANDOM_HEX - 鍵のエクスポート: すべての Cloud KMS 鍵と同様に、Autokey で作成された鍵はエクスポートできません。
- キー トラッキング: キー トラッキングと互換性がある CMEK 統合サービスで使用されるすべての Cloud KMS 鍵と同様に、Autokey で作成された鍵は Cloud KMS ダッシュボードで追跡されます。
Autokey の使用を制御する
組織での Autokey の使用方法は、次のコントロールを使用して管理します。
- Autokey 構成: Autokey を使用するフォルダ またはプロジェクトで Autokey を有効にします。Autokey 構成は子リソースに継承されますが、下位レベルで設定された構成によってオーバーライドできます 。たとえば、プロジェクトに設定された Autokey 構成は、親フォルダの構成よりも優先されます。これにより、Autokey をボトムアップで制御できます。Autokey の有効化と無効化の詳細については、Cloud KMS Autokey を有効にするをご覧ください。
- IAM: IAM ロールの付与と拒否ポリシーを使用して、 Autokey 構成を作成および更新できるユーザーと、 Autokey を使用して保護されたリソースを作成できるユーザーを制御します。 これらの IAM コントロールは、組織レベル、フォルダレベル、プロジェクト レベルで設定できます。IAM ロールの付与により、プリンシパルはロールで許可されているアクションを実行できます。IAM 拒否ポリシーは、プリンシパルに付与されたロールに含まれている場合でも、個々の権限をブロックします。 親リソースに設定された IAM 拒否ポリシーは、下位レベルで設定されたより緩やかなポリシーによってオーバーライド できません。これにより、 Autokey を有効にして使用できるユーザーをトップダウンで制御できます。IAM 拒否ポリシーを使用して組織での Autokey の使用を制御する方法については、IAM 拒否 ポリシーを使用して Autokey を制御するをご覧ください。
- 組織のポリシー: カスタムの組織のポリシーの制約を使用して、Autokey を 構成できる場所と方法を制御します。組織のポリシーの制約は、組織レベル、フォルダレベル、またはプロジェクト レベルで適用できます。組織のポリシーは子リソースに継承されますが、下位レベルで適用されたポリシーによってオーバーライドできます 。カスタムの組織のポリシーの制約を使用して組織での Autokey の使用を制御する方法については、カスタムの組織の ポリシーの制約を使用して Autokey を制御する をご覧ください。
互換性のあるサービス
次の表に、Cloud KMS Autokey と互換性のあるサービスを示します。
| サービス | 保護対象リソース | 鍵の粒度 |
|---|---|---|
| AlloyDB for PostgreSQL |
AlloyDB for PostgreSQL と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Apigee |
Apigee と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Apigee API ハブ |
Apigee API ハブと Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Artifact Registry |
Autokey は、リポジトリの作成時に鍵を作成します。この鍵は、保存されているすべての アーティファクトに使用されます。 |
リソースごとに 1 つの鍵 |
| BigQuery |
Autokey はデータセットのデフォルト鍵を作成します。データセット内のテーブル、モデル、クエリ、一時テーブルは、データセットのデフォルト鍵を使用します。 Autokey は、データセット以外の BigQuery リソースの鍵を作成しません。リージョンの一部ではないリソースを保護するには、プロジェクトまたは組織レベルで独自のデフォルト鍵を作成する必要があります。 |
リソースごとに 1 つの鍵 |
| Bigtable |
Autokey はクラスタの鍵を作成します。 Autokey は、クラスタ以外の Bigtable リソース の鍵を作成しません。 Bigtable と Cloud KMS Autokey の統合は、 Terraform または Google Cloud SDK を使用して作成されたリソースでのみ使用できます。 |
クラスタごとに 1 つの鍵 |
| Cloud Run |
|
プロジェクト内のロケーションごとに 1 つの鍵 |
| Cloud SQL |
Autokey は、Cloud SQL
Cloud SQL と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Cloud Storage |
ストレージ バケット内のオブジェクトは、バケットのデフォルト鍵を使用します。Autokey は |
バケットごとに 1 つの鍵 |
| Compute Engine |
スナップショットでは、スナップショットを作成するディスクの鍵を使用します。Autokey は |
リソースごとに 1 つの鍵 |
| Google Kubernetes Engine |
Google Kubernetes Engine と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
クラスタごとに 1 つの鍵 |
| Dataflow |
|
リソースごとに 1 つの鍵 |
| Managed Service for Apache Airflow |
Managed Service for Apache Airflow と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Managed Service for Apache Spark |
|
Cluster、SessionTemplate、WorkflowTemplate リソースの場合: リソースごとに 1 つの鍵 Batch リソースと Session リソースの場合: プロジェクト内のロケーションごとに 1 つの鍵 |
| Memorystore for Redis |
Memorystore for Redis と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Pub/Sub |
|
リソースごとに 1 つの鍵 |
| Secret Manager |
Secret Manager と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
プロジェクト内のロケーションごとに 1 つの鍵 |
| Secure Source Manager |
|
リソースごとに 1 つの鍵 |
| Spanner |
Spanner と Cloud KMS Autokey の統合は、 Terraform または REST API を使用して作成されたリソースでのみ使用できます。 |
リソースごとに 1 つの鍵 |
| Filestore |
|
リソースごとに 1 つの鍵 |
制限事項
- gcloud CLI は Autokey リソースでは使用できません。
- 鍵ハンドルは Cloud Asset Inventory にありません。
次のステップ
- Cloud KMS Autokey の使用を開始するには、管理者 が Cloud KMS Autokey を有効にする必要があります。
- Cloud KMS Autokey を有効にした後で使用するには、デベロッパーは Autokey を使用して CMEK で保護されたリソースを作成します。
- CMEK のベスト プラクティスの詳細。