Autokey の概要

Cloud KMS Autokey は、プロビジョニングと割り当てを自動化することで、顧客管理の暗号化鍵(CMEK)の作成と使用を簡素化します。Autokey により、キーリング、鍵、サービス アカウントが必要になる前に、これらを計画しプロビジョニングする必要はありません。代わりに、Autokey が、Cloud KSM 管理者の代わりに、委任された権限に依存してリソースの作成時にオンデマンドで鍵を作成します。

Autokey によって生成された鍵を使用すると、HSM 保護レベル、職掌分散、鍵のローテーション、ロケーション、鍵の限定性など、データ セキュリティの業界標準と推奨されるプラクティスに一貫して対応できます。Autokey は、一般的なガイドラインと、Cloud KMS Autokey と統合される Google Cloud サービスのリソースタイプに固有のガイドラインの両方に準拠した鍵を作成します。作成後は、Autokey を使用してリクエストされた鍵は、同じ設定を持つ他の Cloud HSM 鍵と同じように機能します。

Autokey を使用すると、鍵の管理に Terraform を簡単に使用できるため、鍵の作成権限を昇格して Infrastructure as Code を実行する必要がなくなります。

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 を使用するには、セキュリティ管理者は次の 1 回限りの設定作業を完了する必要があります。

  1. リソース フォルダで Cloud KMS Autokey を有効にして、フォルダの Autokey リソースを格納する Cloud KMS プロジェクトを確認します。

  2. Cloud KMS のサービス エージェントを作成し、鍵の作成と割り当ての権限をサービス エージェントに付与します。

  3. Autokey デベロッパー ユーザーに Autokey のユーザーロールを付与します。

この設定が完了すると、Autokey デベロッパーはオンデマンドでの Cloud HSM 鍵の作成をトリガーできます。Cloud KMS Autokey の設定手順の詳細については、Cloud KMS Autokey を有効にするをご覧ください。

Autokey デベロッパーが Cloud KMS Autokey を使用する

Autokey が正常に設定されたら、承認済みの Autokey デベロッパーは、オンデマンドで自分用に作成された鍵を使用して保護されたリソースを作成できます。リソース作成プロセスの詳細は、使用するリソースによって異なりますが、プロセスはこのフローに従います。

  1. Autokey デベロッパーは、互換性のある Google Cloud サービスでリソースの作成を開始します。リソースの作成時に、デベロッパーは Autokey サービス エージェントに新しい鍵をリクエストします。

  2. Autokey サービス エージェントはデベロッパーのリクエストを受け取り、次の手順を完了します。

    1. 選択したロケーションの鍵プロジェクトにキーリングを作成します(キーリングがすでに存在する場合を除く)。
    2. リソースタイプに適した粒度の鍵をキーリングに作成します(このような鍵がすでに存在する場合を除く)。
    3. プロジェクトごと、サービスごとにサービス アカウントを作成します(サービス アカウントがすでに存在する場合を除く)。
    4. プロジェクトごと、サービスごとのサービス アカウントに、鍵に対する暗号化と復号の権限を付与します。
    5. デベロッパーがリソースの作成を完了できるように、デベロッパーに鍵の詳細を提供します。
  3. 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 と互換性のあるサービスを示します。

サービス 保護対象リソース 鍵の粒度
Cloud Storage
  • storage.googleapis.com/Bucket

ストレージ バケット内のオブジェクトは、バケットのデフォルト鍵を使用します。Autokey は storage.object リソースの鍵を作成しません。

バケットごとに 1 つの鍵
Compute Engine
  • compute.googleapis.com/Disk
  • compute.googleapis.com/Image
  • compute.googleapis.com/Instance
  • compute.googleapis.com/MachineImage

スナップショットでは、スナップショットを作成するディスクの鍵を使用します。Autokey は compute.snapshot リソースの鍵を作成しません。

リソースごとに 1 つの鍵
BigQuery
  • bigquery.googleapis.com/Dataset

Autokey はデータセットのデフォルト鍵を作成します。データセット内のテーブル、モデル、クエリ、一時テーブルは、データセットのデフォルト鍵を使用します。

Autokey は、データセット以外の BigQuery リソースの鍵を作成しません。リージョンの一部ではないリソースを保護するには、プロジェクトまたは組織レベルで独自のデフォルト鍵を作成する必要があります。

リソースごとに 1 つの鍵
Secret Manager
  • secretmanager.googleapis.com/Secret

Terraform または REST API を使用してリソースを作成する場合、Secret Manager と互換性があるのは Cloud KMS Autokey 鍵のみです。

プロジェクト内のロケーションごとに 1 つの鍵

制限事項

  • AutokeyConfig リソースは消去できません。AutokeyConfig を更新して enabled=false を設定することで、フォルダで Autokey を無効にできますが、構成済みの鍵プロジェクトは AutokeyConfig に残ります。構成済みの鍵プロジェクトを変更するには、AutokeyConfig を更新します。
  • gcloud CLI は Autokey リソースでは使用できません。
  • 鍵ハンドルは Cloud Asset Inventory にありません。

次のステップ