1. はじめに

組織ポリシーによりデフォルトでサービスアカウントのキーファイル漏洩時にキーファイルが無効化

2024年3月19日、Google Cloudからプロジェクト管理者に向けて、サービスアカウントの組織ポリシーの設定に関する通知が行なわれました。
2024年6月16日から、すべての組織で組織ポリシーserviceAccountKeyExposureResponseポリシーにおけるDISABLE_KEY有効化設定が適用されます。
これにより、露出したサービスアカウントキーを無効化し、セキュリティが強化されます。
この記事では、この変更を機に、サービスアカウントのキーファイル利用によるリスク、組織ポリシーの内容、キーファイル以外の認証について考えてみます。

2. サービスアカウントの重要性

サービスアカウントのキーの漏洩のリスクとGoogle Cloudのセキュリティ

Google Cloud上のサービスやアプリケーションがサービスアカウントを介して認証することはよく使われます。
また利用者によるキーファイルダウンロードし認証を行っているケースもあるかと思います。
キーファイルが漏洩してしまうと、アカウントの不正アクセスや、データ漏洩、設定の改ざんといったリスクが潜んでいます。
キーファイルを利用しAPI実行時に認証する行為自体は便利ですが、キーファイルの作成及びダウンロードを行わないように、組織ポリシーなどで制限し、認証方法を再検討することで、それらのリスクを低減することができます。

まず、キーファイルダウンロードに関する組織ポリシーを紹介します。

3. Google Cloud サービスアカウントのキーファイルに関する組織ポリシー

組織ポリシーでサービスアカウントを守ってみよう

Google Cloudの組織ポリシー一覧には様々なポリシーが掲載されていますが、サービスアカウントのキーファイル利用を制限するために、大事と思った3つの組織ポリシーを記載します。

  • ①disableServiceAccountKeyCreation: キーの作成自体を防止することで、そもそもキーを作成させないことも可能です。その場合、キーファイル利用以外の認証方法を検討する必要があります。
  • ②disableServiceAccountKeyUpload: 外部からのキー導入を防止する。こちらも上記内容に近いかなと思います。
  • ③serviceAccountKeyExposureResponse: 露出キーに対する挙動の設定が可能で、例えば先に記載したDISABLE_KEYを有効化することで、パブリックに公開してしまうような場合に自動で無効化し、セキュリティ事故の拡大を防止する。

これを利用することでキー作成について防止し、露出した場合もキーを無効化するような対策をすることができます。

イメージ図
サービスアカウントのキーファイルに関する組織ポリシー

次に他の認証方法と、キーファイルダウンロードに行き着くまでに考えるベストプラクティスの記事を紹介します。

4. サービスアカウントキーを使用せずに認証する方法

Google Cloudの認証ベストプラクティス

サービスアカウントキーの利用を避けるための戦略として、キーファイルを使用しない方法について以前公開した記事をご覧いただけると嬉しいです。
こちらでは認証にキーファイルを利用しない方法として、様々なパターンを記載していますが、Terraform 実行に関して、具体的に手順を記載しているので、ご存知無い方は活用いただければと思います。
また、Google Cloudはサービスアカウントのベストプラクティスを公開しており、キーファイル利用は最終手段とし、認証手段を図解したフローチャートを掲載していますので、こちらをベースに検討いただいても良いかと思います。

5. 纏め

Google Cloud サービスアカウントキーのセキュリティ対策

この記事では、Google Cloud からのサービスアカウントのキーファイル無効化に関する組織ポリシーの周知をきっかけに、キーファイル利用に関するリスクや、防止策、他の認証方法について考えてみようと思い、このような記事内容となりました。
たまたまキーファイル利用を制限する組織ポリシーにふれる機会があったので、それも相まって改めて考えるとても良い機会になりました。
もし使う場合はその必要性をよく検討し、可能であれば他の認証方法を採用することが大事だなと思いましたので、改めて心に刻みたいと思います。
組織ポリシーの活用も含めてぜひ検討していただけると幸いです。