Cloud KMS Autokey は、プロビジョニングと割り当てを自動化することで、顧客管理の暗号化鍵(CMEK)の作成と使用を簡素化します。Autokey を使用すると、キーリングと鍵がオンデマンドで生成されます。リソースの暗号化と復号に鍵を使用するサービス アカウントが作成され、必要に応じて Identity and Access Management(IAM)ロールが付与されます。Cloud KMS 管理者は、各リソースを事前に計画して作成する必要なく、Autokey によって作成された鍵の完全な制御と可視性を維持できます。
Autokey によって生成された鍵を使用すると、マルチテナント Cloud HSM 保護レベル、職掌分散、鍵のローテーション、ロケーション、鍵の特異性などを含むデータ セキュリティの業界標準と推奨プラクティスに一貫して対応できます。Autokey は、一般的なガイドラインと、Cloud KMS Autokey と統合されるGoogle Cloud サービスのリソースタイプに固有のガイドラインの両方に準拠した鍵を作成します。作成後は、Autokey を使用してリクエストされた鍵は、同じ設定を持つ他の Cloud HSM 鍵と同じように機能します。
Autokey を使用すると、鍵の管理に Terraform を簡単に使用できるため、鍵の作成権限を昇格して Infrastructure as Code を実行する必要がなくなります。
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 の仕組みについて説明します。次のユーザー ロールがプロセスに参加します。
- 管理者
- 管理者は、フォルダまたは組織レベルでセキュリティを管理するユーザーです。
- 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 を有効にします。フォルダ内の他のプロジェクトで作成されたリソースを保護する鍵を保持するために、一元化された鍵プロジェクトが作成されます。
- 委任された鍵管理モデル(プレビュー): 個々のプロジェクトまたはフォルダ内のすべてのプロジェクトで Autokey を有効にして、同じプロジェクトの Autokey を使用できます。
一元管理された鍵管理を有効にする
フォルダで一元管理された鍵管理に Autokey を使用するには、管理者が次の 1 回限りの設定タスクを完了する必要があります。
フォルダで Cloud KMS Autokey を有効にして、フォルダの Autokey リソースを格納する Cloud KMS プロジェクトを確認します。
Cloud KMS のサービス エージェントを作成し、鍵の作成と割り当ての権限をサービス エージェントに付与します。
この構成が完了すると、そのフォルダ内の任意のプロジェクトで Autokey 互換リソースを作成できるデベロッパーは、オンデマンドでマルチテナント Cloud HSM 鍵の作成をトリガーできるようになります。Cloud KMS Autokey の設定手順の詳細については、Cloud KMS Autokey を有効にするをご覧ください。
委任された鍵管理を有効にする
委任された鍵管理に Autokey を使用するには、管理者が次の 1 回限りの設定タスクを完了する必要があります。
- プロジェクトまたはフォルダで Cloud KMS Autokey を有効にします。
- そのプロジェクトまたはフォルダ内のプロジェクトで Cloud KMS API を有効にします。
委任された鍵管理用にプロジェクトで Cloud KMS 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 の使用を強制する場合、IAM アクセス制御と CMEK の組織のポリシーを組み合わせることで実現できます。これは、Autokey サービス エージェント以外のプリンシパルから鍵の作成権限を削除し、Autokey 鍵プロジェクトを使用してすべてのリソースを CMEK で保護することで実現します。Autokey の使用を強制する手順については、Autokey の使用を強制するをご覧ください。
互換性のあるサービス
次の表に、Cloud KMS Autokey と互換性のあるサービスを示します。
| サービス | 保護対象リソース | 鍵の粒度 |
|---|---|---|
| Artifact Registry |
Autokey は、リポジトリの作成時に鍵を作成します。この鍵は、保存されているすべてのアーティファクトに使用されます。 |
リソースごとに 1 つの鍵 |
| BigQuery |
Autokey はデータセットのデフォルト鍵を作成します。データセット内のテーブル、モデル、クエリ、一時テーブルは、データセットのデフォルト鍵を使用します。 Autokey は、データセット以外の BigQuery リソースの鍵を作成しません。リージョンの一部ではないリソースを保護するには、プロジェクトまたは組織レベルで独自のデフォルト鍵を作成する必要があります。 |
リソースごとに 1 つの鍵 |
| Bigtable |
Autokey はクラスタの鍵を作成します。 Autokey は、クラスタ以外の Bigtable リソースの鍵を作成しません。 Terraform または Google Cloud SDK を使用してリソースを作成する場合、Bigtable と互換性があるのは Cloud KMS Autokey のみです。 |
クラスタごとに 1 つの鍵 |
| AlloyDB for PostgreSQL |
Terraform または REST API を使用してリソースを作成する場合、AlloyDB for PostgreSQL と互換性があるのは Cloud KMS Autokey のみです。 |
リソースごとに 1 つの鍵 |
| Cloud Run |
|
プロジェクト内のロケーションごとに 1 つの鍵 |
| Cloud SQL |
Autokey では Cloud SQL Terraform または REST API を使用してリソースを作成する場合、Cloud SQL と互換性があるのは Cloud KMS Autokey のみです。 |
リソースごとに 1 つの鍵 |
| Cloud Storage |
ストレージ バケット内のオブジェクトは、バケットのデフォルト鍵を使用します。Autokey は |
バケットごとに 1 つの鍵 |
| Compute Engine |
スナップショットでは、スナップショットを作成するディスクの鍵を使用します。Autokey は |
リソースごとに 1 つの鍵 |
| Pub/Sub |
|
リソースごとに 1 つの鍵 |
| Secret Manager |
Terraform または REST API を使用してリソースを作成する場合、Secret Manager と互換性があるのは Cloud KMS Autokey 鍵のみです。 |
プロジェクト内のロケーションごとに 1 つの鍵 |
| Secure Source Manager |
|
リソースごとに 1 つの鍵 |
| Spanner |
Terraform または REST API を使用してリソースを作成する場合、Spanner と互換性があるのは Cloud KMS Autokey のみです。 |
リソースごとに 1 つの鍵 |
| Dataflow |
|
リソースごとに 1 つの鍵 |
| Dataproc |
|
Cluster、SessionTemplate、WorkflowTemplate リソースの場合: リソースごとに 1 つの鍵 バッチ リソースとセッション リソースの場合: プロジェクト内のロケーションごとに 1 つの鍵 |
制限事項
- gcloud CLI は Autokey リソースでは使用できません。
- 鍵ハンドルは Cloud Asset Inventory にありません。
次のステップ
- Cloud KMS Autokey の使用を開始するには、管理者が Cloud KMS Autokey を有効にする必要があります。
- Cloud KMS Autokey を有効にした後で使用するには、デベロッパーは Autokey を使用して CMEK で保護されたリソースを作成します。
- CMEK のベスト プラクティスの詳細。