漏洩したサービス アカウント キーの自動無効化に関する注意点
Shaun Liu
Product Manager, Google Cloud
Allan Martucci
Program Manager, Product Security Engineering, CISO, Google
※この投稿は米国時間 2024 年 5 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。
Google は、最も信頼性の高いクラウドを実現するために、セキュリティ機能とセキュリティ対策を常に進化させています。この継続的な取り組みの一環として、Google Cloud の Identity and Access Management(IAM)で、クラウド環境のベースライン セキュリティと管理の強化に役立つさらに強力なセキュリティ デフォルトが最近リリースされました。
お客様は、Google Cloud API やリソースへのアクセスを外部アプリケーションに許可する必要がある場合があります。Google は、それを行うための方法を複数用意しており、サービス アカウント キーよりも安全な代替手段を選択する方法に関するガイダンスなどを提供しています。それでも、多くの組織は外部認証にサービス アカウント キーを利用しているため、サービス アカウント キーが意図せずに開示されるとセキュリティ上の問題が生じる可能性があります。
現在、漏洩したキーの有無を確認するために公開リポジトリを定期的にスキャンし、漏洩したキーが検出された場合にお客様に通知する検出サービスを強化しています。2024 年 6 月 16 日以降、公開リポジトリなどのサービスで検出された、漏洩したサービス アカウント キーは、新規および既存のお客様に対してデフォルトで自動的に無効になります。お客様は、6 月 16 日より前に、この強化されたサービスを有効にできます。また、漏洩したキーが検出された場合に現在の動作を継続したいお客様は、強化されたサービスを無効にすることもできます。なお、その場合は、強化されたサービスよりも安全性が低くなってしまう点にご注意ください。
なお、漏洩したサービス アカウント キーの無効化には、組織ポリシーの更新が必要になります。これは、GitHub や GitLab などの公開リポジトリのシークレット スキャン プログラムと緊密に連携することで可能になっています。たとえば、Google Cloud が、特定のサービス アカウント キーが公開リポジトリで公開されていることを検出した場合、そのキーは、この新しい機能によって自動的に無効になります。
漏洩したキーが検出された場合や、キーが自動的に無効になった場合は、すべてのプロジェクト オーナーと指定されたセキュリティ担当者に通知されます。これらのセキュリティ通知を適切なタイミングで受け取れるように、セキュリティ担当者の連絡先を常に最新の状態に維持することが重要です。
保護強化機能でクラウド環境を保護する
多くの組織において、限定公開のサービス アカウント キーはプロジェクト レベルとフォルダレベルの両方で権限を昇格しています。こうしたキーは人的ミスによって簡単に誤って取り扱われる可能性があり、内部ログ、メール、公開リポジトリでキーが漏洩しかねません。
これらのキーが公開リポジトリや公開サービスで漏洩してしまった場合、漏洩したキーの有無を確認するために自動的にスキャンしている不正な行為者によってすぐに不正使用されてしまいます。悪意のある行為者は、盗んだキーをクリプト マイニング オペレーションに利用したり、ハッキング活動のために他者に販売したりします。
こうしたリスクがあるとはいえ、多くのお客様が本番環境でサービス アカウント キーを使用しており、漏洩したキーを自動的に無効にすると、本番環境のワークフローが影響を受ける可能性があることを Google は理解しています。本番環境にスムーズに移行できるようにするため、6 月 16 日までこの保護機能を有効または無効にするオプションをお客様に提供しています。
クラウド環境を保護するために、6 月 16 日以降、いずれのオプションも選択しなかった既存のお客様に対して、漏洩したキーを無効する保護機能がデフォルトで有効になります。漏洩したキーの不正使用に対する保護を強化して、セキュリティを高め、安心感を得るために、早めに有効にすることを強くおすすめします。なお、無効にする場合は、ビジネス要件に基づいて、本番環境への考え得る影響を慎重に検討したうえで行ってください。
現時点では無効にする必要がある場合でも、デフォルトで安全なこの保護機能を活用できるよう、定期的に状況を分析して環境に必要な変更を加えることをおすすめします。
この機能によってクラウド環境のセキュリティは強化されますが、クラウド資産のキーを保護できる、セキュリティに関するベスト プラクティスを組織が設計して実装することも不可欠です。たとえば、キーをコードに埋め込まないようにして漏洩リスクを最小限に抑えたり、キーのローテーションを頻繁に行ったり、最小権限の原則に基づいて強力な IAM ポリシーを適用したりする必要があります。
お客様の Google Cloud 環境を保護するという Google の取り組みは揺るぎないものです。漏洩したサービス アカウント キーに対するこの予防的な対策は運命共有モデルを反映しており、お客様がクラウド環境をセキュリティ上の脅威から保護できるようにします。
漏洩したサービス アカウント キーを自動的に無効にする 3 つのステップ
Google Cloud をご利用のお客様で、漏洩したサービス アカウント キーを自動的に無効にする準備ができている場合は、組織管理者の方が次の 3 つのステップを行ってください。
ステップ 1: コンソールの [組織のポリシー] ページに移動し、ID が「constraints/iam.serviceAccountKeyExposureResponse」の制約を見つけます。
Google Cloud における組織のポリシーと制約
ステップ 2: [ポリシーを管理] をクリックし、ポリシーのソースを [親のポリシーをオーバーライドする] に設定して、[ポリシーの適用] で [置き換える] を選択します。
サービス アカウント キーの漏洩への対応
ステップ 3: 漏洩したサービス アカウント キーを自動的に無効にするために、以下の有効化または無効化のオプションが用意されています。次のいずれかの値を使用してカスタム許可ルールを追加できます。
-
DISABLE_KEY: 漏洩したキーが検出されると、そのキーは自動的に無効化されます。また、漏洩したキーに関する通知がプロジェクト オーナーとセキュリティ担当者に送信されます。
-
WAIT_FOR_ABUSE: 漏洩したキーは予防的に無効化されません。ただし、Google Cloud に悪影響を与えるような使われ方をした場合、Google Cloud は漏洩したキーを無効にすることがあります。漏洩したキーが無効になっているかどうかにかかわらず、漏洩したキーに関するメール通知がプロジェクト オーナーとセキュリティ担当者に送信されます。
注: 新規または既存の組織が WAIT_FOR_ABUSE を選択しなかった場合は、6 月 16 日以降、デフォルトで DISABLE_KEY オプションが自動的に使用されます。
漏洩したキーを自動的に無効にするためのポリシーの適用
このように構成すると、組織、フォルダ、プロジェクトのサービス アカウント キーの漏洩が新たに検出された場合、そのキーはすべて自動的に無効になります。
詳細情報
漏洩したサービス アカウント キーを自動的に無効にする方法の詳細については、サービス アカウント キーの漏洩への対応に関する公開ドキュメントをご覧ください。サービス アカウントの詳細については、こちらの入門向け動画とサービス アカウントの概要ガイドをご覧ください。
ー Google Cloud、プロダクト マネージャー Shaun Liu
ー Google、CISO、プロダクト セキュリティ エンジニアリング担当プログラム マネージャー Allan Martucci