2024年秋、Google Cloudは Cloud Key Management Service(KMS)のAutokey機能 を一般提供(GA)として正式リリースしました。これにより、Google Cloudの各種サービスで使う暗号鍵を効率的に管理できるようになりました。KMS Autokeyは、鍵のプロビジョニング、割り当て、ローテーションを自動化することで、顧客管理の暗号鍵(CMEK) の作成・運用を簡素化します。セキュリティ運用の負担を軽減しつつ、データ保護に関する業界のベストプラクティスに沿ったインフラを実現できます。
本記事では、Cloud KMS with Autokeyの概要、仕組み、有効化と利用方法、そして無効化の手順までを順を追って解説します。
Cloud KMS with Autokeyとは
Cloud KMS with Autokeyは、Cloud Storage、Compute Engine、BigQuery、Secret Manager、Cloud SQL、Spanner などの対応サービスでリソースをデプロイする際に、暗号鍵の作成を自動化する機能です。
従来は、鍵・キーリング・サービスアカウントを事前にプロビジョニングしておく必要がありました。KMS Autokeyを使えば、それらが必要なタイミングで自動的に用意されます。新しいリソースを作成すると、KMS Autokeyがオンデマンドで鍵を生成し、手作業を挟まずにworkloadsへの暗号化をシームレスに適用します。
なぜCloud KMS with Autokeyを使うのか
Cloud KMS with Autokeyは、鍵管理を簡素化するだけでなく、セキュリティ運用が 業界標準 や 推奨プラクティス に沿ったものになることも担保します。具体的には次のとおりです。
- 鍵を保護する ハードウェアセキュリティモジュール(HSM)。
- ロールベースのアクセス制御による 職務分掌。
- データを安全に保つための 鍵の自動ローテーション。
- 規制要件への準拠を支える 鍵のロケーション制御。
- きめ細かなアクセス管理を可能にする 鍵の粒度設定。
Cloud KMS with Autokeyで生成される鍵は、他のCloud HSM鍵とまったく同じように動作しますが、生成プロセスが自動化されておりスケーラブルです。新しいリソースが頻繁にデプロイされる動的な環境に最適です。
Cloud KMS with Autokeyの利用そのものに追加費用はかかりません。Autokeyで作成した鍵の料金は、他のCloud HSM鍵と同じです。
KMS Autokeyを有効化する方法
Cloud KMS with Autokeyを有効化するには、Google Cloud組織内の フォルダレベル で設定する必要があります。新しいフォルダを作成するか既存のフォルダを使い、その中に鍵を格納するプロジェクトを作成します。続いて、フォルダ内に新しいプロジェクトを作成するか、既存のプロジェクトをフォルダに移動して、Autokeyによる鍵作成機能を利用できるようにします。以下の例では、新しいフォルダを作成し、その中に2つのプロジェクトを配置しています。私は既存のフォルダを流用するのではなく、新しいフォルダを作成することをおすすめします。新しいフォルダをセキュリティ境界として扱い、最小権限の原則に基づいてアクセスを設計できるためです。

フォルダ構成の例
ステップ1:フォルダと、その中に2つのプロジェクトを作成する
- フォルダ名: kms-autokey(Cloud KMS Autokeyを有効化するフォルダ)
- プロジェクト名: kms-keys(鍵を格納するプロジェクト)
- プロジェクト名:kms-enabled-proj(リソースに鍵が割り当てられるプロジェクト)
ステップ2:必要なIAMロールを付与する
Cloud KMS with Autokeyを正しく動作させるには、組織レベル と フォルダレベル で次のロールを自身に付与しておく必要があります。
フォルダレベル(kms-autokeyフォルダ)
- Cloud KMS Autokey Admin(roles/cloudkms.autokeyAdmin)
- Folder IAM Admin(roles/resourcemanager.folderIamAdmin)
組織レベル
- Billing Account User(roles/billing.user)
これらのロールが付与されたら、フォルダでCloud KMS with Autokeyを有効化できます。
ステップ3:フォルダでCloud KMS with Autokeyを有効化する
- GCPコンソール でkms-autokeyフォルダを選択します。
- Key Management に移動します。

フォルダを選択し、Key Managementに移動
3. コンテキストピッカーから、鍵を格納するプロジェクトを選択します。本例ではkms-keysです。

鍵を管理するプロジェクトをフォルダに紐付ける
ステップ4:サービスアカウントを作成する
KMS鍵プロジェクト(kms-keys)で、KMSサービスがリソースとやり取りできるよう サービスエージェントアカウント を作成します。Cloud Shellで次のコマンドを実行します。
gcloud beta services identity create --service=cloudkms.googleapis.com --project=PROJECT_NUMBER
PROJECT_NUMBERはKMS鍵プロジェクトのプロジェクト番号に置き換えてください。本例ではkms-keysのプロジェクト番号です。
出力例
gcloud beta services identity create --service=cloudkms.googleapis.com --project=937192488103
Service identity created: [email protected]
続いて、サービスエージェントに Cloud KMS Admin 権限を付与します。
gcloud projects add-iam-policy-binding PROJECT_NUMBER --role=roles/cloudkms.admin --member=serviceAccount:[email protected]
こちらも同様に、PROJECT_NUMBERはKMS鍵プロジェクトのプロジェクト番号に置き換えてください。本例ではkms-keysのプロジェクト番号です。
出力例
gcloud projects add-iam-policy-binding 937192488103 --role=roles/cloudkms.admin --member=serviceAccount:[email protected]
Updated IAM policy for project [937192488103].
bindings:
- members:
- serviceAccount:[email protected]
role: roles/cloudkms.admin
- members:
- user:<omitted>@doit.com
role: roles/owner
etag: BwYsUy7dhpo=
version: 1
ステップ5:KMS Autokey Userロールを付与する
開発者にKMS Autokeyを利用させるには、roles/cloudkms.autokeyUser ロールを付与する必要があります。付与は フォルダレベル でも プロジェクトレベル でも可能です。フォルダレベルで付与する場合は次のとおりです。
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID --role=roles/cloudkms.autokeyUser --member=user:USER_EMAIL
FOLDER_IDはAutokeyを有効化するフォルダのIDに置き換えます。本例ではkms-autokeyフォルダのIDです。USER_EMAILはKMS Autokeyの利用権限を付与したい相手(開発者ユーザーやグループなど)のメールアドレスに置き換えます。
出力例
gcloud resource-manager folders add-iam-policy-binding 279174226974 --role=roles/cloudkms.autokeyUser --member=user:<developers email address>
Updated IAM policy for folder [279174226974].
bindings:
- members:
- user:<omitted>@doit.com
role: roles/cloudkms.autokeyAdmin
- members:
- user:<omitted>@doit.com
role: roles/cloudkms.autokeyUser
- members:
- user:<omitted>@doit.com
role: roles/resourcemanager.folderAdmin
- members:
- user:<omitted>@doit.com
role: roles/resourcemanager.folderEditor
etag: BwYsU4vSoEA=
version: 1
このロールが付与されると、開発者はリソース作成と同時にオンデマンドで鍵を作成できるようになります。
ステップ6:Cloud KMS Autokeyでリソースを作成する
セットアップを確認するため、有効化したばかりのプロジェクトに新しいCompute Engineインスタンスを作成してみましょう。本例ではkms-enabled-projプロジェクトです。「詳細設定」で「データ暗号化 = Cloud KMS鍵」「鍵タイプ = Cloud KMS with Autokey」を選択し、「鍵をリクエスト」をクリックします。

GCEインスタンス作成画面。詳細設定タブと鍵リクエスト箇所を表示
インスタンスが作成されると、Compute Engineインスタンスのメタデータの「Management」セクションに鍵の詳細が表示されます。

鍵の詳細
KMS鍵プロジェクト(kms-keys)に戻って Key Management を開くと、インスタンス用に作成された新しい鍵と、その次回ローテーション日が表示されます。

GCEインスタンスと同じリージョンに作成されたキーリング

次回ローテーション日とともに表示される鍵
本例では、Compute Engineインスタンスがus-central1にあるため、キーリングもus-central1に作成されます。キーリングは、リソースをホストするリージョンに自動的に作成されます。
Cloud KMS with Autokeyを無効化する
Cloud KMS with Autokeyを無効化したい場合は、フォルダレベル で操作します。無効化すると、フォルダと鍵プロジェクトを紐付けている設定が解除され、新しいリソースに対する鍵の自動作成が停止します。Cloud KMS with Autokeyによってすでに作成された鍵には影響しません。

無効化すると鍵の作成は停止しますが、既存の鍵には影響しません。
任意ステップ1:フォルダのKMS Autokey Adminを取り消す
Autokey Adminロールを取り消すには、次を実行します。
gcloud resource-manager folders remove-iam-policy-binding FOLDER_ID --role=roles/cloudkms.autokeyAdmin --member=user:USER_EMAIL
これでautokeyAdminロールが取り消され、対象ユーザーはKMS Autokeyの再有効化や管理ができなくなります。ただし、既存の鍵 は引き続き機能し、これらの鍵で暗号化された既存リソースの安全性も維持されます。
任意ステップ2:Autokey Userロールを取り消す
同様に、フォルダレベルまたはプロジェクトレベルで Autokey Userロール も取り消せます。roles/cloudkms.autokeyUserロールを削除する手順は次のとおりです。
gcloud resource-manager folders remove-iam-policy-binding FOLDER_ID - role=roles/cloudkms.autokeyUser - member=user:USER_EMAIL
サービスエージェントが今後不要であれば、サービスエージェントの Cloud KMS Admin ロールも取り消せます。
gcloud projects remove-iam-policy-binding KEY_PROJECT_NUMBER - role=roles/cloudkms.admin - member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
**ご質問はありませんか?**
DoiT International のチームは、シニアクラスのEngineersのみで構成されています。高度なクラウドコンサルティング、アーキテクチャ設計、デバッグ支援を専門としています。分散システムに初めて取り組む段階でも、既存システムの最適化でも、複雑な問題のトラブルシューティングでも、お客様のニーズに合わせた専門的なアドバイスをご提供します。
ぜひお気軽にお問い合わせください。クラウドインフラのポテンシャルを最大限に引き出すお手伝いをいたします。
Cloud KMS with Autokeyは、Google Cloudにおける暗号鍵管理を大きく簡素化する強力なツールです。鍵の作成とローテーションを自動化することで、セキュリティのベストプラクティスを徹底し、ヒューマンエラーのリスクを抑え、インフラ全体で暗号化をシームレスにスケールできます。
KMS Autokeyが一般提供(GA)となった今こそ、組織で活用を始める絶好のタイミングです。新しいリソースをデプロイする場面でも、既存のworkloadsを保護する場面でも、Cloud KMS with Autokeyは鍵管理をよりシンプルかつ安全にします。
詳細な手順やリファレンスは、KMS Autokeyの公式ドキュメント をご覧ください。