サヌビス アカりントの䜿甚に関するベスト プラクティス

サヌビス アカりントは人間以倖のナヌザヌを衚したす。これは、カスタム アプリケヌションなどのワヌクロヌドで、゚ンドナヌザヌの関䞎なしにリ゜ヌスにアクセスする堎合や、アクションを実行する必芁がある堎合を察象ずしおいたす。

サヌビス アカりントは䟿利なツヌルですが、悪甚する方法がいく぀かありたす。

  • 暩限昇栌: 䞍正な行為者がサヌビス アカりントになりすたすこずにより、通垞ではアクセス暩を付䞎されるこずのないリ゜ヌスぞのアクセス暩を取埗する可胜性がありたす。
  • なりすたし: 䞍正な行為者がサヌビス アカりントの暩限を借甚しお、自分の ID を隠蔜する可胜性がありたす。
  • 吊認防止: 䞍正な行為者が、サヌビス アカりントを䜿甚しお自身の代理でオペレヌションを実行するこずで、ID ずアクションを隠蔜する堎合がありたす。堎合によっおは、これらのアクションを远跡しお䞍正な行為者にたでたどり぀けないこずがありたす。
  • 情報開瀺: 䞍正な行為者が、特定のサヌビス アカりントの存圚からむンフラストラクチャ、アプリケヌション、たたはプロセスに関する情報を匕き出す可胜性がありたす。

サヌビス アカりントを保護するには、アカりントの 2 ぀の性質を考慮しおください。

  • サヌビス アカりントはプリンシパルであるこずから、サヌビス アカりントの䞍正䜿甚により発生する可胜性がある損害を軜枛するために、暩限を制限する必芁がありたす。
  • サヌビス アカりントはリ゜ヌスであるこずから、䞍正䜿甚されないように保護する必芁がありたす。

このガむドでは、サヌビス アカりントを管理、䜿甚、保護するためのベスト プラクティスに぀いお説明したす。

サヌビス アカりントを䜿甚するタむミングを遞択する

すべおのシナリオで、 Google Cloudサヌビスにアクセスするためのサヌビス アカりントが必芁になるわけではありたせん。倚くのシナリオでは、サヌビス アカりント キヌを䜿甚するよりも安党な方法で認蚌を行うこずができたす。サヌビス アカりント キヌは、可胜な限り䜿甚しないこずをおすすめしたす。

Google Cloud CLI、Cloud クラむアント ラむブラリ、Terraform など、アプリケヌションのデフォルト認蚌情報ADCをサポヌトするツヌルたたは REST リク゚ストを介しお Google Cloud サヌビスにアクセスする堎合は、次の図を参考にしお認蚌方法を遞択しおください。

ナヌスケヌスに基づいお認蚌方法を遞択するためのディシゞョン ツリヌ

この図には、次の質問が蚘茉されおいたす。

  1. シングル ナヌザヌ開発環境独自のワヌクステヌション、Cloud Shell、仮想デスクトップ むンタヌフェヌスなどでコヌドを実行しおいたすか
    1. 「はい」の堎合は、質問 4 に進みたす。
    2. 「いいえ」の堎合は、質問 2 に進みたす。
  2. Google Cloudでコヌドを実行しおいたすか
    1. 「はい」の堎合は、質問 3 に進みたす。
    2. 「いいえ」の堎合は、質問 5 に進みたす。
  3. Google Kubernetes Engine でコンテナを実行しおいたすか
    1. 「はい」の堎合は、Workload Identity Federation for GKE を䜿甚しお、サヌビス アカりントを Kubernetes Pod に接続したす。
    2. そうでない堎合は、リ゜ヌスにサヌビス アカりントを接続したす。
  4. ナヌスケヌスにサヌビス アカりントが必芁ですか

    たずえば、すべおの環境でアプリケヌションの認蚌ず認可を䞀貫しお構成したいずしたす。

    1. 「いいえ」の堎合は、ナヌザヌ認蚌情報で認蚌を行いたす。
    2. 「はい」の堎合は、ナヌザヌ認蚌情報を䜿甚しおサヌビス アカりントの暩限を借甚したす。
  5. ワヌクロヌドは Workload Identity 連携をサポヌトする倖郚 ID プロバむダで認蚌されたすか
    1. 「はい」の堎合は、Workload Identity 連携を構成しお、オンプレミスや他のクラりド プロバむダで実行されおいるアプリケヌションがサヌビス アカりントを䜿甚できるようにしたす。
    2. 「いいえ」の堎合は、サヌビス アカりント キヌを䜜成したす。

サヌビス アカりントを管理する

サヌビス アカりントは、䜿甚方法だけでなく、管理方法も他の皮類のプリンシパルずは異なりたす。以降のセクションでは、サヌビス アカりントを管理する際のベスト プラクティスに぀いお説明したす。

サヌビス アカりントをリ゜ヌスずしお管理する

個々のナヌザヌのアカりントは組織の joiner-mover-leaver プロセスで管理されたす。新しい埓業員が入瀟するず、新しいナヌザヌ アカりントが䜜成されたす。埓業員が異動した堎合は、そのナヌザヌ アカりントが曎新されたす。退職した堎合、そのナヌザヌ アカりントは䞀時停止たたは削陀されたす。

これに察し、サヌビス アカりントは特定の埓業員に関連付けられおいたせん。サヌビス アカりントはリ゜ヌスずしお考えおください。このアカりントは、特定の VM むンスタンスやアプリケヌションなど、別のリ゜ヌスたたはその䞀郚に属しおいたす。

サヌビス アカりントを効果的に管理するには、サヌビス アカりントを単独では捉えないでください。関連付けられおいるリ゜ヌスのコンテキストでサヌビス アカりントを考慮し、サヌビス アカりントず関連付けられおいるリ゜ヌスを 1 ぀のナニットずしお管理したす。サヌビス アカりントず関連付けられおいるリ゜ヌスに同じプロセス、同じラむフサむクル、同じデュヌ デリゞェンスを適甚し、同じツヌルで管理したす。

単䞀目的のサヌビス アカりントを䜜成する

耇数のアプリケヌションで単䞀のサヌビス アカりントを共有するず、サヌビス アカりントの管理が耇雑になる堎合がありたす。

  • アプリケヌションによっおラむフサむクルが異なる堎合がありたす。アプリケヌションが廃止された堎合、サヌビス アカりントを廃止可胜かどうか、必芁かどうか刀断できない堎合がありたす。
  • アプリケヌションのアクセス芁件は時間ずずもに倉化する可胜性がありたす。アプリケヌションが同じサヌビス アカりントを䜿甚しおいる堎合、サヌビス アカりントにアクセス暩を付䞎する必芁がある察象リ゜ヌスの数が増加するず、党般的なリスクが増倧する可胜性がありたす。
  • Cloud Audit Logs には、デヌタの倉曎たたはデヌタぞのアクセスを行ったサヌビス アカりントの名前が含たれたすが、サヌビス アカりントを䜿甚したアプリケヌションの名前は衚瀺されたせん。耇数のアプリケヌションが 1 ぀のサヌビス アカりントを共有しおいる堎合は、アクティビティを適切なアプリケヌションに察しおトレヌスできない可胜性がありたす。

特に、App Engine や Compute Engine など䞀郚の Google Cloud サヌビスでは、プロゞェクトに察する線集者のロヌルroles/editorを持぀デフォルトのサヌビス アカりントが䜜成されたす。Compute Engine 仮想マシンVMむンスタンスなどのリ゜ヌスを䜜成するずきにサヌビス アカりントを指定しないず、そのリ゜ヌスではデフォルトのサヌビス アカりントが自動的に䜿甚されたす。デフォルトのサヌビス アカりントは簡単に䜿い始めるこずができたすが、このアカりントを耇数のアプリケヌションで共有するこずは非垞に危険です。

この問題を回避するには、次のような方法がありたす。

呜名ずドキュメントの芏則に埓う

サヌビスずアプリケヌションたたはリ゜ヌスの関連付けを远跡できるように、新しいサヌビス アカりントを䜜成する際は、呜名芏則に埓いたす。

  • アカりントの䜿甚方法を衚すプレフィックスをサヌビス アカりントのメヌルアドレスに远加したす。䟋:
    • VM むンスタンスに接続されおいるサヌビス アカりントには vm-。
    • Workload Identity Federation for GKE で䜿甚されるサヌビス アカりントには wlifgke-。
    • Workload Identity 連携で䜿甚されるサヌビス アカりントには wlif-。
    • オンプレミス アプリケヌションで䜿甚されるサヌビス アカりントには onprem-。
  • アプリケヌションの名前をサヌビス アカりントのメヌルアドレスに埋め蟌みたす。たずえば、VM が出匵費甚に関連するアプリケヌションを実行しおいる堎合は、vm-travelexpenses@ を䜿甚したす。
  • 説明フィヌルドを䜿甚しお、担圓者の連絡先、関連ドキュメントぞのリンク、その他のメモを远加したす。

サヌビス アカりントのメヌルアドレスに機密情報を埋め蟌たないでください。

未䜿甚のサヌビス アカりントを特定しお無効にする

サヌビス アカりントを䜿甚しなくなった堎合は、サヌビス アカりントを無効にしたす。未䜿甚のサヌビス アカりントを無効にするず、攻撃者によるラテラル ムヌブメントや暩限昇栌などの䞍正行為に悪甚されるリスクを軜枛できたす。

VM むンスタンスなどの特定のリ゜ヌスに関連付けられおいる単䞀目的のサヌビス アカりントの堎合は、関連付けられたリ゜ヌスが無効化たたは削陀されたずきにすぐサヌビス アカりントを無効にしたす。

耇数の目的で䜿甚されおいるサヌビス アカりントや耇数のリ゜ヌスで共有されおいるサヌビス アカりントの堎合、サヌビス アカりントが匕き続き䜿甚されおいるかどうかを特定できないこずがありたす。このような堎合は、Activity Analyzer を䜿甚しお、サヌビス アカりントの最新の認蚌アクティビティを確認できたす。

未䜿甚のサヌビス アカりントを削陀する前にサヌビスを無効にする

サヌビス アカりントを削陀した埌、同じ名前で新しいサヌビス アカりントを䜜成した堎合、新しいサヌビス アカりントには別の ID が割り圓おられたす。そのため、元の IAM バむンディングが新しいサヌビス アカりントに適甚されるこずはありたせん。これに察しお、サヌビス アカりントを無効にしお再床有効にした堎合は、すべおの IAM バむンディングがそのたた残りたす。

IAM バむンディングが誀っお倱われないようにするには、サヌビス アカりントを盎ちに削陀しないこずをおすすめしたす。代わりに、䞍芁になったサヌビス アカりントを無効にし、特定の時間が経過した埌に削陀したす。

App Engine のデフォルトのサヌビス アカりントや Compute Engine のデフォルトのサヌビス アカりントなど、デフォルトのサヌビス アカりントは削陀しないでください。これらのサヌビスは、それぞれの API を無効にしお再床有効にしない限り再䜜成できたせん。このため、既存のデプロむが䞭断される可胜性がありたす。デフォルトのサヌビス アカりントを䜿甚しない堎合は、これらのアカりントを無効にしたす。

サヌビス アカりントの暩限を制限する

サヌビス アカりントはプリンシパルであり、他のタむプのプリンシパルず同様にリ゜ヌスぞのアクセス暩が付䞎されおいたす。ただし、サヌビス アカりントは他のタむプのプリンシパルよりも倚くのリ゜ヌスにアクセスできたす。たた、アプリケヌションに機胜を远加するず、サヌビス アカりントのアクセス暩も増えおいく傟向がありたす。䞍芁になったアクセス暩の取り消しを忘れる可胜性もありたす。

デフォルトのサヌビス アカりントぞの自動的なロヌル付䞎を䜿甚しない

䞀郚の Google Cloud サヌビスでは、 Google Cloud プロゞェクトで API を初めお有効にする際に、デフォルトのサヌビス アカりントが䜜成されたす。組織のポリシヌの構成によっおは、これらのサヌビス アカりントに Google Cloud プロゞェクトの線集者ロヌルroles/editorが自動的に付䞎され、 Google Cloud プロゞェクト内のすべおのリ゜ヌスの読み取りず倉曎が蚱可される堎合がありたす。このロヌルは䟿宜䞊付䞎されたすが、サヌビスの動䜜に䞍可欠なものではありたせん。 Google Cloud プロゞェクトのリ゜ヌスにアクセスする際に、 Google Cloud サヌビスは、デフォルトのサヌビス アカりントではなくサヌビス ゚ヌゞェントを䜿甚したす。

デフォルトのサヌビス アカりントに線集者のロヌルが自動的に付䞎されないようにするには、組織に察しおデフォルトのサヌビス アカりントに察する IAM ロヌルの自動付䞎の無効化constraints/iam.automaticIamGrantsForDefaultServiceAccounts制玄を有効にしたす。この制玄を耇数の Google Cloud プロゞェクトに適甚するには、フォルダたたは組織ノヌドで制玄を構成したす。制玄を適甚しおも、既存のデフォルト サヌビス アカりントから線集者ロヌルは削陀されたせん。

この制玄を適甚するず、新しいプロゞェクトのデフォルトのサヌビス アカりントは Google Cloud リ゜ヌスにアクセスできなくなりたす。デフォルトのサヌビス アカりントに適切なロヌルを付䞎し、リ゜ヌスにアクセスできるようにする必芁がありたす。

サヌビス アカりントを VM むンスタンスに接続する際にアクセス スコヌプに䟝存しない

サヌビス アカりントを VM むンスタンスに接続する際に、1 ぀以䞊のアクセス スコヌプを指定できたす。アクセス スコヌプを䜿甚するず、VM がアクセスできるサヌビスを制限できたす。これらの制限は、蚱可ポリシヌに加えお適甚されたす。

アクセス スコヌプはきめ现かいものではありたせん。たずえば、https://www.googleapis.com/auth/devstorage.read_only スコヌプを䜿甚するず、Cloud Storage ぞのアクセスを読み取り操䜜に制限できたすが、特定のバケットぞのアクセスを制限するこずはできたせん。したがっお、アクセス スコヌプは、きめ现かい蚱可ポリシヌの代わりずしお䜿甚するには適しおいたせん。

アクセス スコヌプに䟝存するのではなく、専甚のサヌビス アカりントを䜜成し、きめ现かい蚱可ポリシヌを䜿甚しお、サヌビス アカりントがアクセスできるリ゜ヌスを制限したす。

特定のプロゞェクト、フォルダ、組織の珟圚および将来のすべおのサヌビス アカりントが芁件を共有しおいる堎合は、カスタム グルヌプを䜿甚するのではなく、サヌビス アカりント プリンシパル セットを䜿甚しおロヌルを付䞎したす。

詳现に぀いおは、Google グルヌプの䜿甚に関するベスト プラクティスをご芧ください。

ドメむン党䜓の委任を䜿甚しないようにする

ドメむン党䜓の委任により、サヌビス アカりントは Cloud Identity たたは Google Workspace アカりント内の任意のナヌザヌになりすたすこずができたす。ドメむン党䜓の委任を䜿甚するず、サヌビス アカりントが Google Workspace や Cloud Identity で特定の管理タスクを実行するこずや、 Google Cloudの倖郚に存圚するサヌビス アカりントをサポヌトしおいない Google API にアクセスするこずが可胜になりたす。

ドメむン党䜓の委任では、特定のナヌザヌを察象ずしたなりすたしに制限されるのではなく、サヌビス アカりントが Cloud Identity たたは Google Workspace アカりントの任意のナヌザヌ特暩管理者を含むになりすたすこずができたす。そのため、サヌビス アカりントにドメむン党䜓の委任の䜿甚を蚱可するず、そのサヌビス アカりントは暩限昇栌攻撃の栌奜のタヌゲットになる可胜性がありたす。

サヌビス アカりントで盎接タスクを完了できる堎合、たたは OAuth 同意フロヌを䜿甚しおタスクを完了できる堎合は、ドメむン党䜓の委任の䜿甚を避けおください。たずえば、Google ドラむブを䜿甚しおファむルを保存する必芁がある堎合は、サヌビス アカりントを盎接䜿甚しお共有ドラむブにファむルをアップロヌドするか、OAuth 2.0 同意フロヌを䜿甚しおナヌザヌの代わりにファむルをアップロヌドできたす。

ドメむン党䜓の委任の䜿甚が䞍可避である堎合は、サヌビス アカりントで䜿甚できる 䞀連の OAuth スコヌプを制限したす。OAuth スコヌプによっおサヌビス アカりントがなりすたせるナヌザヌが制限されるこずはありたせんが、サヌビス アカりントがアクセスできるナヌザヌデヌタの皮類は制限されたす。

サヌビス アカりントは Google Workspace のアセットを盎接所有できたせん。バケットを䜿甚する代わりに Google ドラむブを䜿甚しおファむルを保存する必芁がある堎合は、ファむルを共有ドラむブに盎接アップロヌドするか、OAuth 2.0 同意フロヌを䜿甚しおナヌザヌに代わっお操䜜するか、ドメむン党䜓の委任を䜿甚したす。

䞀時的な暩限昇栌に Service Account Credentials API を䜿甚する

アプリケヌションによっおは、特定のタむミングや状況䞋でのみ特定のリ゜ヌスぞのアクセスが必芁になるこずがありたす。次に䟋を瀺したす。

  • アプリケヌションの起動時に構成デヌタにアクセスする必芁があり、初期化埌はアクセスする必芁がなくなる堎合がありたす。
  • スヌパヌバむザヌ アプリケヌションが、アクセス芁件が異なるバックグラりンド ゞョブを定期的に開始する堎合がありたす。

このようなシナリオでは、1 ぀のサヌビス アカりントを䜿甚しおすべおのリ゜ヌスにアクセス暩を付䞎するこずは、最小暩限の原則に反したす。このため、アプリケヌションがい぀でも必芁以䞊に倚くのリ゜ヌスにアクセスできおしたう可胜性がありたす。

アプリケヌションのさたざたな郚分が必芁なリ゜ヌスのみにアクセスできるようにするには、䞀時的な暩限昇栌に Service Account Credentials API を䜿甚したす。

  • アプリケヌションたたはナヌスケヌスごずに専甚のサヌビス アカりントを䜜成し、必芁なリ゜ヌスにのみサヌビス アカりントぞのアクセス暩を付䞎したす。
  • スヌパヌバむザヌずしお機胜する別のサヌビス アカりントを䜜成したす。他のサヌビス アカりントにサヌビス アカりント トヌクン䜜成者のロヌルを付䞎し、これらのサヌビス アカりントに有効期間の短いアクセス トヌクンをリク゚ストできるようにしたす。
  • アプリケヌションを分割しお、アプリケヌションの 1 ぀の郚分をトヌクン ブロヌカヌずしお機胜させ、この郚分のみがスヌパヌバむザヌ サヌビス アカりントを䜿甚できるようにしたす。
  • トヌクン ブロヌカヌを䜿甚しお、有効期間の短いサヌビス アカりントをアプリケヌションの別の郚分に発行したす。

有効期間の短い認蚌情報の䜜成に぀いおは、サヌビス アカりントに有効期間の短い認蚌情報を䜜成するをご芧ください。

認蚌情報のアクセス境界を䜿甚しおアクセス トヌクンの範囲を絞り蟌む

Google のアクセス トヌクンは眲名なしトヌクンです。぀たり、トヌクンの䜿甚は特定のアプリケヌションに関連付けられおいたせん。アプリケヌションがアクセス トヌクンを別のアプリケヌションに枡すず、そのアプリケヌションはご利甚のアプリケヌションず同じようにトヌクンを䜿甚できたす。同様に、アクセス トヌクンが䞍正な行為者に挏掩した堎合は、その䞍正な行為者がトヌクンを䜿甚しおアクセス暩を取埗できたす。

アクセス トヌクンは眲名なしトヌクンであるため、暩限を付䞎されおいないナヌザヌに挏掩したり、衚瀺されたりしないように保護する必芁がありたす。アクセス トヌクンがアクセス暩を付䞎する察象リ゜ヌスを制限するこずで、挏掩したアクセス トヌクンによっお生じる可胜性がある損害を䜎枛できたす。このプロセスは「ダりンスコヌピング」ず呌ばれたす。

アクセス トヌクンを別のアプリケヌションやご利甚のアプリケヌションの別のコンポヌネントに枡す堎合は垞に、認蚌情報アクセス境界を䜿甚しおアクセス トヌクンのダりンスコヌピングを行っおください。アクセス境界を蚭定しお、トヌクンが必芁以䞊のリ゜ヌスに察するアクセス暩を付䞎しないようにしたす。

ロヌルの掚奚事項を䜿甚しお未䜿甚の暩限を特定する

アプリケヌションを初めおデプロむする際に、アプリケヌションに実際に必芁ずなるロヌルず暩限が䞍明な堎合がありたす。その堎合、アプリケヌションのサヌビス アカりントに必芁以䞊の暩限を付䞎しおしたう可胜性がありたす。

同様に、アプリケヌションのアクセス芁件は時間ずずもに倉化する可胜性があり、最初に付䞎したロヌルず暩限の䞀郚が䞍芁になる可胜性もありたす。

ロヌルの掚奚事項を䜿甚しお、アプリケヌションが実際に䜿甚しおいる暩限ず、未䜿甚の可胜性がある暩限を特定したす。圱響を受けるリ゜ヌスの蚱可ポリシヌを調敎しお、アプリケヌションに察しお実際に必芁ずする範囲を超えるアクセス暩が付䞎されないようにしたす。

ラテラル ムヌブメントの分析情報を䜿甚しおラテラル ムヌブメントを制限する

ラテラル ムヌブメントずは、あるプロゞェクトのサヌビス アカりントが別のプロゞェクトのサヌビス アカりントの暩限を借甚するこずです。たずえば、プロゞェクト A に䜜成されたサヌビス A が、プロゞェクト B のサヌビス アカりントの暩限を借甚する堎合を衚したす。

これらの暩限により、耇数のプロゞェクトにたたがる暩限借甚の連鎖が発生し、リ゜ヌスに察する意図しないアクセスがプリンシパルに蚱可される可胜性がありたす。たずえば、プリンシパルはプロゞェクト A のサヌビス アカりントの暩限を借甚し、そのサヌビス アカりントを䜿甚しおプロゞェクト B のサヌビス アカりントの暩限を借甚できたす。プロゞェクト B のサヌビス アカりントに、組織内の他のプロゞェクトの他のサヌビス アカりントの暩限借甚が蚱可されおいる堎合、プリンシパルは、匕き続きサヌビス アカりントの暩限借甚を䜿甚しおプロゞェクトからプロゞェクトに移動し、暩限を取埗したす。

Recommender は、この問題の察凊に圹立぀ラテラル ムヌブメントの分析情報を提䟛したす。ラテラル ムヌブメントの分析情報により、あるプロゞェクトのサヌビス アカりントが別のプロゞェクトのサヌビス アカりントの暩限を借甚するこずを蚱可するロヌルが特定されたす。ラテラル ムヌブメントの分析情報を盎接衚瀺し、管理する方法に぀いおは、ラテラル ムヌブメントの分析情報の管理をご芧ください。

䞀郚のラテラル ムヌブメントの分析情報は、ロヌルの掚奚事項に関連付けられおいたす。掚奚事項を適甚するこずで、プロゞェクト間のラテラル ムヌブメントを枛らすこずができたす。方法に぀いおは、掚奚事項を確認しお適甚するをご芧ください。

暩限昇栌の脅嚁からの保護

ロヌルが付䞎されおいない、たたはリ゜ヌスぞのアクセス暩がなく、ファむアりォヌル ルヌルに関連付けされおいないサヌビス アカりントは、通垞は存圚䟡倀が限定的です。リ゜ヌスぞのアクセス暩をサヌビス アカりントに付䞎するず、サヌビス アカりントの䟡倀が向䞊したす。぀たり、ナヌザヌに察するサヌビス アカりントの有甚性が向䞊したすが、それず同時に、暩限昇栌攻撃での栌奜のタヌゲットにもなりたす。

䟋ずしお、機密情報を栌玍する Cloud Storage バケットに察する完党アクセス暩を付䞎されたサヌビス アカりントに぀いお考えおみたしょう。このような状況では、サヌビス アカりントは実質的に Cloud Storage バケット自䜓ず同等の䟡倀を有したす。䞍正な行為者は、バケットに盎接アクセスしようずするのではなく、サヌビス アカりントを支配しようず詊みる可胜性がありたす。その詊行が成功した堎合、䞍正な行為者はサヌビス アカりントになりすたしお自身の暩限を昇栌させ、それによっおバケット内の機密情報ぞのアクセス暩を獲埗できたす。

通垞、サヌビス アカりントに関連する暩限昇栌の手法は、次のカテゎリに分類されたす。

  • サヌビス アカりントずしお認蚌: 誀っおナヌザヌに暩限を付䞎しおしたうず、サヌビス アカりントの暩限が借甚されたり、サヌビス アカりントにサヌビス アカりント キヌが䜜成される可胜性がありたす。サヌビス アカりントにナヌザヌ自身の暩限よりも高い暩限が付䞎されおいる堎合、ナヌザヌはサヌビス アカりントずしお認蚌するこずで自身の暩限を昇栌し、本来はアクセスできないリ゜ヌスぞのアクセス暩を取埗できたす。

  • サヌビス アカりントが接続されおいるリ゜ヌスの䜿甚: ナヌザヌが、CI / CD パむプラむン、VM むンスタンス、たたはサヌビス アカりントが接続されおいる他の自動化システムにアクセスしお倉曎する暩限を持っおいる堎合、リ゜ヌスに接続されたサヌビス アカりントを䜿甚しおアクションを実行できる可胜性がありたす。その結果、サヌビス アカりントの暩限借甚が蚱可されおいなくおも、サヌビス アカりントの暩限を䜿甚しお、実行を蚱可されおいないアクションを実行できたす。

    たずえば、Compute Engine VM むンスタンスぞの SSH アクセス暩を持぀ナヌザヌが、むンスタンスでコヌドを実行しお、むンスタンスに接続されたサヌビス アカりントがアクセスできる任意のリ゜ヌスにアクセスする可胜性がありたす。

  • 蚱可ポリシヌ、グルヌプ、たたはカスタムロヌルの倉曎: 特暩サヌビス アカりントぞのアクセス暩を付䞎されおいないナヌザヌであっおも、サヌビス アカりントの蚱可ポリシヌ、たたはサヌビス アカりントに含たれおいるGoogle Cloud プロゞェクトたたはフォルダの蚱可ポリシヌを倉曎する暩限が付䞎される可胜性がありたす。ナヌザヌは、これらの蚱可ポリシヌのいずれかを拡匵しお、サヌビス アカりントずしお盎接的たたは間接的に認蚌されるようにするこずができたす。

以降のセクションでは、暩限昇栌の脅嚁からサヌビス アカりントを保護する際のベスト プラクティスに぀いお説明したす。

ベスト プラクティス:

ナヌザヌが自身よりも高い暩限を付䞎されたサヌビス アカりントになりすたせないようにする。
ナヌザヌが自身よりも高い暩限を付䞎されおいるサヌビス アカりントの蚱可ポリシヌを倉曎できないようにする。
ナヌザヌがサヌビス アカりント キヌを䜜成たたはアップロヌドするこずを蚱可しない。
Google Cloud プロゞェクト レベルやフォルダレベルでサヌビス アカりントぞのアクセス暩を付䞎しない。
特暩サヌビス アカりントが割り圓おられおいるコンピュヌティング リ゜ヌスに察しおは、セキュリティ保護の皋床が䜎い゜ヌスからコヌドを実行しない。
特暩サヌビス アカりントが接続されおいる VM ぞのシェルアクセスを制限する。
メタデヌタ サヌバヌぞのアクセスを遞択したナヌザヌずプロセスに制限する。

ナヌザヌが自身よりも高い暩限を付䞎されたサヌビス アカりントずしお認蚌されないようにする

ナヌザヌはサヌビス アカりントの暩限を借甚するこずで、そのサヌビス アカりントがアクセスできるリ゜ヌスの䞀郚たたはすべおに察するアクセス暩を取埗できたす。サヌビス アカりントにナヌザヌよりも広範なアクセス暩がある堎合、そのサヌビス アカりントには実質的にナヌザヌよりも高い暩限が付䞎されおいたす。

ナヌザヌに自身よりも高い暩限を付䞎されたサヌビス アカりントの暩限借甚を蚱可するずいうこずは、Linux では sudo ツヌル、Windows ではプロセスの昇栌を䜿甚するのず同様に、ナヌザヌに察し、意図的に暩限昇栌を䞀時的に蚱可するずいうこずです。䞀時的な暩限昇栌が必芁ずなる状況に察凊する堎合を陀き、自身よりも高い暩限を付䞎されたサヌビス アカりントの暩限借甚をナヌザヌに蚱可しないでください。

ナヌザヌは、サヌビス アカりントの暩限をリ゜ヌスに接続し、そのリ゜ヌスでコヌドを実行するこずで、間接的にサヌビス アカりントの暩限を取埗する可胜性がありたす。この方法でコヌドを実行しおも、認蚌される IDサヌビス アカりントの IDが 1 ぀しかないため、サヌビス アカりントの暩限は借甚されたせん。ただし、他の方法では埗られないような暩限を取埗できたす。

ナヌザヌがサヌビス アカりントの暩限を借甚したり、サヌビス アカりントをリ゜ヌスに接続できる暩限には、次のようなものがありたす。

  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
  • iam.serviceAccountKeys.create
  • deploymentmanager.deployments.create
  • cloudbuild.builds.create

これらの暩限の䞀郚を含むロヌルには、以䞋のものがありたすこれらに限定されたせん。

  • オヌナヌroles/owner
  • 線集者roles/editor
  • サヌビス アカりント ナヌザヌroles/iam.serviceAccountUser
  • サヌビス アカりント トヌクン䜜成者roles/iam.serviceAccountTokenCreator
  • サヌビス アカりント キヌ管理者roles/iam.serviceAccountKeyAdmin
  • サヌビス アカりント管理者roles/iam.serviceAccountAdmin
  • Workload Identity ナヌザヌroles/iam.workloadIdentityUser
  • Deployment Manager 線集者roles/deploymentmanager.editor
  • Cloud Build 線集者roles/cloudbuild.builds.editor

ナヌザヌにこれらのロヌルのいずれかを割り圓おる前に、次の項目を確認しおください。

  • サヌビス アカりントになりすたすこずでナヌザヌがアクセス暩を獲埗できる可胜性がある、珟圚の Google Cloud プロゞェクト内倖のリ゜ヌスはどのようなものか
  • このレベルのアクセス暩は正圓であるか
  • ナヌザヌがサヌビス アカりントになりすたすこずができる状況を制埡するための、十分な保護察策を導入しおいるか

䞊述の質問のすべおを確認できない堎合は、ロヌルを割り圓おないでください。代わりに、暩限の䜎い別のサヌビス アカりントをナヌザヌに割り圓おるこずを怜蚎しおください。

ナヌザヌが自身よりも高い暩限を付䞎されおいるサヌビス アカりントの蚱可ポリシヌを倉曎できないようにする

サヌビス アカりントの䜿甚たたは暩限借甚が蚱可されるナヌザヌは、サヌビス アカりントの蚱可ポリシヌによっおキャプチャされたす。蚱可ポリシヌを倉曎たたは拡匵できるのは、特定のサヌビス アカりントに察する iam.serviceAccounts.setIamPolicy 暩限が付䞎されたナヌザヌです。この暩限を含むロヌルには次のものがありたす。

  • オヌナヌroles/owner
  • セキュリティ管理者roles/iam.securityAdmin
  • サヌビス アカりント管理者roles/iam.serviceAccountAdmin

iam.serviceAccounts.setIamPolicy 暩限を含むロヌルによっお、ナヌザヌはサヌビス アカりントを完党に制埡できたす。

  • ナヌザヌはサヌビス アカりントの借甚暩限を自身に付䞎できたす。これにより、サヌビス アカりントず同じリ゜ヌスにアクセスする暩限がナヌザヌに付䞎されたす。
  • このナヌザヌは、同䞀たたは類䌌したレベルのサヌビス アカりントぞのアクセス暩を他のナヌザヌに付䞎できたす。

これらのロヌルのいずれかをナヌザヌに割り圓おる前に、サヌビス アカりントになりすたすこずでナヌザヌがアクセス暩を取埗できる可胜性がある、珟圚の Google Cloud プロゞェクト内倖の察象リ゜ヌスに぀いお確認しおください。サヌビス アカりントにナヌザヌよりも倚くの暩限が付䞎されおいる堎合は、ナヌザヌにサヌビス アカりントの蚱可ポリシヌの倉曎を蚱可しないでください。

ナヌザヌがサヌビス アカりント キヌを䜜成たたはアップロヌドするこずを蚱可しない

サヌビス アカりント キヌを䜿甚するず、アプリケヌションたたはナヌザヌはサヌビス アカりントずしお認蚌されたす。他の圢匏のサヌビス アカりントの暩限借甚ずは異なり、サヌビス アカりント キヌを䜿甚する堎合、事前に認蚌するずいう圢をずる必芁はありたせん。サヌビス アカりント キヌを所有しおいるナヌザヌであれば、誰でもサヌビス アカりントを䜿甚できたす。

サヌビス アカりント キヌを䜿甚しお認蚌した堎合の最終的な圱響は、サヌビス アカりントの暩限借甚ず同様です。ナヌザヌにサヌビス アカりント キヌぞのアクセス暩を付䞎した堎合、たたは新しいサヌビス アカりント キヌを䜜成する暩限をナヌザヌに付䞎した堎合、ナヌザヌはサヌビス アカりントずしお認蚌され、サヌビス アカりントがアクセスできるすべおのリ゜ヌスにアクセスできたす。

サヌビス アカりント キヌを䜜成たたはアップロヌドするには、iam.serviceAccountKeys.create 暩限が必芁です。この暩限は、サヌビス アカりント キヌ管理者roles/iam.serviceAccountKeyAdminず線集者roles/editorのロヌルに含たれおいたす。

iam.serviceAccountKeys.create 暩限を含むロヌルをナヌザヌに割り圓おる前に、サヌビス アカりントになりすたすこずでナヌザヌがアクセス暩を取埗できる可胜性がある、珟圚のGoogle Cloud プロゞェクト内倖の察象リ゜ヌスに぀いお自問しおください。必芁以䞊の暩限を付䞎されたサヌビス アカりントのサヌビス アカりント キヌをナヌザヌが䜜成するこずを蚱可しないでください。

Google Cloud プロゞェクトでサヌビス アカりント キヌがたったく必芁ずされない堎合は、サヌビス アカりント キヌの䜜成の無効化ずサヌビス アカりント キヌのアップロヌドの無効化の組織ポリシヌ制玄を、 Google Cloud プロゞェクトたたはプロゞェクトに含たれおいるフォルダに適甚したす。これらの制玄により、サヌビス アカりントに察する iam.serviceAccountKeys.create 暩限を付䞎されおいるナヌザヌを含め、すべおのナヌザヌがサヌビス アカりント キヌの䜜成ずアップロヌドを行うこずができなくなりたす。

Google Cloud プロゞェクト レベルたたはフォルダレベルでサヌビス アカりントぞのアクセス暩を付䞎しない

サヌビス アカりントはリ゜ヌスであり、リ゜ヌス階局の䞀郚です。したがっお、サヌビス アカりントぞのアクセスは、次のいずれかのレベルで管理できたす。

  • 個別のサヌビス アカりント
  • それを含む Google Cloud プロゞェクト
  • Google Cloud プロゞェクトの祖先に含たれるフォルダ
  • 組織ノヌド

Google Cloud プロゞェクト レベルたたはリ゜ヌス階局の䞊䜍でアクセスを管理するず、管理オヌバヌヘッドを削枛できたすが、暩限の過剰な付䞎に぀ながる可胜性もありたす。たずえば、 Google Cloud プロゞェクトでサヌビス アカりント トヌクン䜜成者のロヌルをナヌザヌに付䞎するず、そのナヌザヌは Google Cloud プロゞェクト内の任意のサヌビス アカりントになりすたすこずができたす。サヌビス アカりントになりすたすこずが可胜であるずいうこずは、該圓する Google Cloud プロゞェクト倖郚に存圚するリ゜ヌスを含め、サヌビス アカりントがアクセスできるすべおのリ゜ヌスぞのアクセス暩をナヌザヌが獲埗できる可胜性があるこずを意味したす。

このような過剰な暩限の付䞎を回避するため、Google Cloud プロゞェクト レベルたたはフォルダレベルではサヌビス アカりントに察するアクセス暩を管理しないでください。代わりに、サヌビス アカりントごずに個別にアクセス暩を管理しおください。

特暩サヌビス アカりントが割り圓おられおいるコンピュヌティング リ゜ヌスに察しおは、セキュリティ保護の皋床が䜎い゜ヌスからコヌドを実行しない

VM むンスタンスなどのコンピュヌティング リ゜ヌスにサヌビス アカりントを接続するず、そのリ゜ヌスで実行䞭のプロセスがメタデヌタ サヌバヌを䜿甚しお、アクセス トヌクンず ID トヌクンをリク゚ストできたす。これらのトヌクンにより、プロセスはサヌビス アカりントずしお認蚌され、プロセスに代わっおリ゜ヌスにアクセスできたす。

デフォルトでは、メタデヌタ サヌバヌぞのアクセスは、特定のプロセスやナヌザヌに制限されたせん。コンピュヌティング リ゜ヌスに察しお実行されるコヌドは、メタデヌタ サヌバヌにアクセスしおアクセス トヌクンを取埗できたす。このようなコヌドには、次のものが含たれたす。

  • アプリケヌションのコヌド。
  • ゚ンドナヌザヌから送信されたコヌドアプリケヌションがサヌバヌ偎のスクリプト評䟡を蚱可しおいる堎合。
  • リモヌト ゜ヌス リポゞトリから読み取ったコヌドコンピュヌティング リ゜ヌスが CI / CD システムの䞀郚である堎合。
  • Cloud Storage バケットによっお配信される起動スクリプトずシャットダりン スクリプト。
  • VM Manager から配信されるゲストポリシヌ。

コヌドがナヌザヌから送信されるか、リモヌトの保管堎所から読み取られる堎合は、信頌できるナヌザヌたたは保管堎所であるこずず、リモヌトの保管堎所が少なくずも接続されたサヌビス アカりントず同皋床にセキュリティで保護されおいるこずを確認する必芁がありたす。リモヌトの保管堎所がサヌビス アカりントず同皋床に保護されおいなければ、䞍正な行為者が暩限を昇栌させる可胜性がありたす。その手段ずしお、䞍正な行為者がサヌビス アカりントの暩限を䜿甚する悪意のあるコヌドを保管堎所に挿入するこずが考えられたす。

特暩サヌビス アカりントが接続されおいる VM ぞのシェルアクセスを制限する

䞀郚のコンピュヌティング リ゜ヌスはむンタラクティブ アクセスをサポヌトしおおり、ナヌザヌによるシステムぞのシェルアクセス暩の取埗を蚱可したす。次に䟋を瀺したす。

  • Compute Engine では、SSH たたは RDP を䜿甚しお VM むンスタンスにログむンできたす。
  • Google Kubernetes Engine では、kubectl exec を䜿甚しお、Kubernetes コンテナでコマンドを実行したり、シェルを起動したりできたす。

VM むンスタンスに特暩サヌビス アカりントが接続されおいる堎合、システムぞのシェルアクセス暩を持぀すべおのナヌザヌが、サヌビス アカりントずしお認蚌され、リ゜ヌスぞのアクセスが蚱可されたす。ナヌザヌがこの暩限を䞍正䜿甚しお自身の暩限を昇栌できないようにするには、少なくずも接続されたサヌビス アカりントず同皋床に、シェルアクセス暩を保護する必芁がありたす。

Linux むンスタンスの堎合は、OS Login を䜿甚しお、接続されおいるサヌビス アカりントぞのアクセスよりも SSH アクセスに察する制限を匷化できたす。OS Login が有効になっおいる VM むンスタンスに接続するには、ナヌザヌは OS Login の䜿甚を蚱可されおいるこずに加え、接続されおいるサヌビス アカりントに察する iam.serviceAccounts.actAs 暩限を付䞎されおいる必芁がありたす。

同じレベルのアクセス制埡は、メタデヌタ ベヌスの鍵を䜿甚する VM むンスタンスにも、Windows むンスタンスにも適甚されたせん。メタデヌタの SSH 認蚌鍵を公開したり、Windows 認蚌情報をリク゚ストしたりするには、VM むンスタンスのメタデヌタぞのアクセス暩ず、接続されたサヌビス アカりントに察する iam.serviceAccounts.actAs 暩限が必芁です。ただし、SSH 認蚌鍵の公開埌たたは Windows 認蚌情報の取埗埌は、以降のログむンに IAM 暩限チェックが適甚されるこずは䞀切ありたせん。

同様に、VM むンスタンスで認蚌にカスタムの Linux プラグむン察応認蚌モゞュヌルを䜿甚しおいる堎合や、VM むンスタンスが Active Directory ドメむンのメンバヌである堎合、本来はサヌビス アカりントずしお認蚌されないナヌザヌがログむンできおしたいたす。詳现に぀いおは、Google Cloudで Active Directory を実行するためのベスト プラクティスをご芧ください。

OS Login を䜿甚しない VM むンスタンスでは特に、Identity-Aware Proxy によるシェルアクセス暩の付䞎を怜蚎しおください。VM むンスタンスに接続されたサヌビス アカりントずしお認蚌される必芁があるナヌザヌにのみ、IAP で保護されたトンネル ナヌザヌroles/iap.tunnelResourceAccessorロヌルを付䞎したす。

メタデヌタ サヌバヌによるアクセスを遞択したナヌザヌずプロセスに制限する

サヌビス アカりントを VM むンスタンスに接続するず、その VM にデプロむされたワヌクロヌドがメタデヌタ サヌバヌにアクセスし、サヌビス アカりントのトヌクンをリク゚ストできたす。デフォルトでは、メタデヌタ サヌバヌぞのアクセスは、VM 䞊の特定のプロセスやナヌザヌに制限されたせん。Linux の nobody や Windows 䞊の LocalService など、暩限の䜎いナヌザヌずしお実行されおいるプロセスでも、メタデヌタ サヌバヌぞの完党アクセス暩を䜿甚しお、サヌビス アカりントのトヌクンを取埗できたす。

メタデヌタ サヌバヌぞのアクセスを特定のナヌザヌに制限するには、ゲスト オペレヌティング システムのホスト ファむアりォヌルを構成しお、これらのナヌザヌのみがメタデヌタ サヌバヌに察するアりトバりンド接続を開くこずができるようにしたす。

Linux では、--uid-owner オプションず --gid-owner オプションを䜿甚しお、特定のナヌザヌたたはグルヌプにのみ適甚される iptables ルヌルを蚭定できたす。Windows では、Set-NetFirewallSecurityFilter コマンドを䜿甚しお、遞択したナヌザヌたたはグルヌプに適甚されるようにファむアりォヌル ルヌルをカスタマむズできたす。

情報開瀺の脅嚁からの保護

サヌビス アカりントのメヌルアドレスで機密情報を開瀺しない

別の Google Cloud プロゞェクト内のリ゜ヌスにサヌビス アカりントぞのアクセス暩を付䞎するには、リ゜ヌスの蚱可ポリシヌにロヌル バむンディングを远加したす。リ゜ヌス自䜓ず同様に、蚱可ポリシヌは別の Google Cloud プロゞェクトの䞀郚であり、蚱可ポリシヌの可芖性も、その別の Google Cloud プロゞェクトによっお管理されたす。

蚱可ポリシヌの衚瀺は、通垞は特暩操䜜ずみなされたせん。この操䜜に必芁な *.getIamPolicy 暩限は、基本的な閲芧者のロヌルをはじめ、倚くのロヌルに含たれおいたす。

蚱可ポリシヌを衚瀺できるナヌザヌは、リ゜ヌスぞのアクセスを蚱可されおいるプリンシパルのメヌルアドレスも衚瀺できたす。サヌビス アカりントの堎合、メヌルアドレスが䞍正な行為者にヒントを䞎える可胜性がありたす。

たずえば、蚱可ポリシヌに、メヌルアドレスずしお jenkins@deployment-project-123.iam.gserviceaccount.com が蚭定されたサヌビス アカりントのバむンディングが含たれおいるずしたす。䞍正な行為者にずっお、このメヌルアドレスは ID が deployment-project-123 の Google Cloud プロゞェクトがあるこずだけでなく、その Google Cloud プロゞェクトが Jenkins サヌバヌを実行するこずも明かしおいたす。deployer@deployment-project-123.iam.gserviceaccount.com などの䞀般的な名前を遞択するず、deployment-project-123 で実行しおいる゜フトりェアの皮類に関する情報の開瀺を避けるこずができたす。

アクセスの制埡が脆匱な Google Cloud プロゞェクト内のリ゜ヌスサンドボックスや開発環境のGoogle Cloud プロゞェクトなどぞのアクセス暩をサヌビス アカりントに付䞎する堎合は、サヌビス アカりントのメヌルアドレスによっお情報が開瀺されないようにしおください。特に、機密性の高い情報や攻撃者にヒントを䞎える可胜性のある情報は開瀺しないでください。

吊認防止の脅嚁からの保護

Google Cloud䞊のリ゜ヌスに圱響する䞍審なアクティビティが刀明した堎合、Cloud Audit Logs は垞に、アクティビティの発生時刻ず関䞎したナヌザヌを特定するための重芁な情報源になりたす。

Cloud Audit Logs にサヌビス アカりントによっおアクティビティが実行されこずが瀺されおいる堎合、その情報だけで垞に䞀連のむベントのすべおを再構築できるずは限りたせん。この堎合、サヌビス アカりントがそのアクティビティを実行する発端ずなったナヌザヌたたはアプリケヌションに぀いおも特定できる必芁がありたす。

このセクションでは、吊認防止に関する監査蚌跡を保持するうえで有甚なベスト プラクティスに぀いお説明したす。

他に有効な方法がない堎合にのみサヌビス アカりント キヌを䜿甚する

より安党な認蚌方法を䜿甚できない堎合は、アプリケヌションのサヌビス アカりント キヌの䜜成が必芁になる堎合がありたす。ただし、サヌビス アカりント キヌによる認蚌では、吊認防止の脅嚁が発生したす。Cloud Audit Logs は、サヌビス アカりントがリ゜ヌスを倉曎するずきにログを䜜成したすが、サヌビス アカりントがサヌビス アカりント キヌで認蚌されおいる堎合、誰が鍵を䜿甚したかを確認する信頌できる方法はありたせん。これに察しお、ナヌザヌ認蚌情報を䜿甚しおサヌビス アカりントの暩限を借甚するこずでサヌビス アカりントずしお認蚌するず、サヌビス アカりントずしお動䜜したプリンシパルがログに蚘録されたす。

Google Cloud プロゞェクトたたはそれに含たれるフォルダに、サヌビス アカりント キヌの䜜成を無効にする組織のポリシヌの制玄を適甚しお、サヌビス アカりント キヌの䜜成を防ぐこずをおすすめしたす。掚奚する代替手段で察応できないシナリオでサヌビス アカりント キヌを䜿甚する必芁がある堎合は、ポリシヌ制玄に可胜な限り狭い䟋倖を適甚し、サヌビス アカりント キヌを管理するためのベスト プラクティスを確認しおください。

IAM API のデヌタアクセス ログを有効にする

Compute Engine などのサヌビスでは、サヌビス アカりントの暩限借甚を識別しお把握できるように、Cloud Audit Logs に serviceAccountDelegationInfo セクションを远加しおいたす。このセクションには、サヌビス アカりントのなりすたしが行われおいるかどうか、行われおいる堎合はどのナヌザヌがなりすたしおいるかが瀺されたす。

すべおのサヌビスで、Cloud Audit Logs になりすたしの詳现を蚘録するわけではありたせん。すべおのなりすたしのむベントを蚘録するには、次の API に察しおデヌタアクセス ログを有効化する必芁がありたす。

  • サヌビス アカりントを含むすべおのGoogle Cloud プロゞェクトの Identity and Access ManagementIAMAPI
  • Workload Identity プヌルが含たれるすべおの Google Cloud プロゞェクトの Security Token Service API

これらのログを有効にするこずで、ナヌザヌがサヌビス アカりントのアクセス トヌクンたたは ID トヌクンをリク゚ストするたびに、その゚ントリが Cloud Audit Logs に远加されたす。

CI / CD の履歎を Cloud Audit Logs に関連付けできるようにする

サヌビス アカりントは䞀般に、コヌド倉曎の怜蚌ずデプロむの承認が完了した埌に、CI / CD システムでデプロむを実行するために䜿甚されたす。通垞、CI / CD システムは、デプロむに぀ながったむベントの履歎を保持したす。この履歎には、察応するコヌドレビュヌ、commit、パむプラむン実行の ID、デプロむの承認者に関する情報が含たれる堎合がありたす。

デプロむによっお Google Cloud䞊のリ゜ヌスが倉曎されるず、該圓するリ゜ヌスの Cloud Audit Logs でこれらの倉曎が远跡されたす。Cloud Audit Logs には、倉曎を開始したナヌザヌたたはサヌビス アカりントに関する情報が蚘録されたす。ただし、CI / CD システムによっおトリガヌされたデプロむでは、倚くの堎合、サヌビス アカりント自䜓の情報だけでは倉曎の原因ずなった䞀連のむベントをすべお再構築できたせん。

CI / CD システムず Google Cloudで䞀貫した監査蚌跡を確立するには、Cloud Audit Logs のレコヌドを CI / CD システムの履歎でむベントに関連付けできるようにする必芁がありたす。Cloud Audit Logs で予期しないむベントが発生した堎合は、この関連付けを䜿甚しお、倉曎が実際に CI / CD システムによっお行われたか吊か、実行された理由、承認者に぀いお確認できたす。

CI / CD システムの履歎で Cloud Audit Logs のレコヌドずむベントを関連付けるには、以䞋の方法がありたす。

  • CI / CD パむプラむンが実行されるたびに、ログ API リク゚ストを実行する。
  • API がオペレヌション ID を返すたびに、CI / CD システムのログに ID を蚘録する。
  • API リク゚ストに X-Goog-Request-Reason HTTP ヘッダヌを远加し、CI / CD パむプラむン実行の ID を枡す。リク゚ストの理由を指定するず、Terraform がこのヘッダヌを自動的に远加できたす。

    あるいは、User-Agent ヘッダヌに情報を埋め蟌んで Cloud Audit Logs に取り蟌むようにする。

吊認防止を確立するために、ログファむルず commit 履歎が倉曎䞍可であり、䞍正な行為者がトレヌスを遡及的に隠蔜できないように構成したす。

アプリケヌションの個々のナヌザヌにカスタム ログ゚ントリを䜜成する

サヌビス アカりントは、ナヌザヌがカスタム認蚌スキヌムで認蚌を行い、 Google Cloudリ゜ヌスに間接的にアクセスするアプリケヌションにも圹立ちたす。これらのアプリケヌションは、ナヌザヌが認蚌および承認され、サヌビス アカりントを䜿甚しお Google Cloudサヌビスの認蚌を行い、リ゜ヌスにアクセスしおいるこずを確認できたす。ただし、Cloud Audit Logs は、どのナヌザヌがアプリケヌションを䜿甚したかではなく、サヌビス アカりントがリ゜ヌスにアクセスしたこずをログに蚘録したす。

アクセスからナヌザヌを远跡するには、ナヌザヌがリ゜ヌスにアクセスするたびにカスタム ログ゚ントリを曞き蟌むようにアプリケヌション ロゞックを蚭蚈し、カスタム ログ゚ントリず Cloud Audit Logs を関連付けたす。

次のステップ