コンテンツに移動
セキュリティ & アイデンティティ

サービス アカウントに時間制限のある鍵認証を導入

2023年8月8日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 7 月 28 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud は、お客様のクラウド環境のセキュリティとガバナンスをサポートするために、Google Cloud の Identity and Access Management(IAM)機能を改善する取り組みを続けています。組織が Google Cloud の API やリソースへのアクセス権を外部アプリケーションに付与する必要がある場合、それを行うためのオプションは複数あります。可能な限り Workload Identity 連携を使用することなど、認証に関する最新のガイダンスを多くのお客様にご活用いただいていますが、外部アプリの認証ではサービス アカウント キーが依然として広く使用されています。  

サービス アカウント キーの使用により生じる可能性があるセキュリティ上の問題に対処できるように、このたびサービス アカウント キーに有効期限を設定できる機能を導入いたしました。この機能を使用することで、新しいサービス アカウント キーの使用可能な期間が限定されるように組織のポリシーを組織レベル、フォルダレベル、プロジェクト レベルで構成できるようになりました。

組織が Google Cloud でアプリケーションを実行する際に、日々のオペレーションで利用されるのがサービス アカウントです。こういったサービス アカウントは多くの場合、エンドユーザー ID より権限の強いアクセス権を持ち、本番環境のワークロードやアプリケーションへのアクセスに利用されます。オペレーションが中断されないように、Google Cloud サービス アカウント キーにはデフォルトで有効期限がありません。

しかし、すべての環境やワークロードで長期の鍵の推奨有効期間が必要なわけではなく、また、鍵を持っていれば誰でも、その鍵でアクセスが認可されるサービスや API にアクセスできてしまうため、鍵の漏えいはパスワード漏えいと同様に危険です。サービスキーはきわめて広く使用されているため、デベロッパーがセキュリティ キーをソースコードに埋め込むこともよくあります。

そのコードが公開リポジトリに不注意にアップロードされた場合、その鍵を見つけた者は誰でも、鍵に関連付けられているクラウド リソースにアクセスできるので、重大なセキュリティ問題となります。「そこで、サービス アカウント キーの有効期限が役立つのです」と、L'Oreal のプラットフォーム アーキテクト Antoine Castex 氏は言います。「当社では、Google Cloud でサービス アカウント キーの新機能である有効期限を使用しており、これは、プロジェクトとリソースを安全に保つために役立っています。この機能を使用すると、サービス アカウント キーに有効期間を簡単に構成でき、鍵の漏えいや不正使用に関するリスクを大きく軽減できます」と、Antoine Castex 氏は述べています。

本番環境におけるサービス アカウント キー

サービス アカウント キーに有効期限を設定することで、アカウントキーを使用する組織はセキュリティ対策を大幅に強化できます。ただし、デベロッパーにとっては有効期間の長い鍵が当然のことになっているため、有効期限が追加されるようにデフォルトの構成を変更すると、解決が困難な、意図しないサービス停止を招く可能性があります。

したがってこの機能は、デベロッパーが、サービス アカウント キーでのみ認証できるアプリケーション用にコードを非本番環境で作成している、またはサービス アカウント キーでのみ認証できるサードパーティ製ツールを使用しているといった特定のシナリオで使用することをおすすめします。すでに組織のポリシーを使用してサービス アカウント キーを無効化している先進的な組織は、組織のセキュリティ ポリシーを変更する必要はなく、鍵の使用期間を限定する例外プロセスとしてこの機能を利用できます。

組織のサービス アカウント キーに鍵のローテーションを設定する場合は、サービス停止が生じないように、鍵の有効期限を使用するのではなく、Cloud Asset Inventory を使用して鍵をモニタリングすることをおすすめします。これにより、鍵の有効期限が近づいたときや、鍵のローテーションを行うタイミングで、デベロッパーに警告の通知を送信できるようになります。あるいは、HashiCorp Vault などのツールを活用して、デベロッパーのワークフローに鍵のローテーション プロセスを埋め込むこともできます。

サービス アカウント キーの有効期限を設定する方法

鍵の有効期限の設定はシンプルです。組織の管理者として [組織のポリシー] ページに移動して、ID が「constraints/iam.serviceAccountKeyExpiryHours」の制約を見つけます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_dNdaWkt.max-1900x1900.png

[編集] をクリックして、いずれかの期間(8 時間、24 時間、168 時間、336 時間、720 時間、1440 時間、2160 時間)のカスタム許可ポリシーを、[ポリシーの適用] を [置換] に設定して構成します。構成が完了したら、organization/folder/project に格納される新しいサービス アカウント キーすべてに、この有効期限が適用されるようになります。

ご利用方法

利用開始にあたっては、サービス アカウント キーのドキュメントをご覧ください。サービス アカウントについて詳しくは、こちらの入門向け動画か、Google Cloud のサービス アカウントの概要ガイドをご覧ください。


- プロダクト マネージャー Shaun Liu
- Google Cloud、セキュリティ担当プロダクト マーケティング リード Anil Nandigam

投稿先