サヌビス アカりント キヌから移行する

サヌビス アカりント キヌは、Google Cloud サヌビスの認蚌によく䜿甚されたす。ただし、適切に管理されおいない堎合、認蚌情報の挏掩、暩限昇栌、情報開瀺、吊認防止などの脅嚁に察する脆匱性が高たる可胜性もありたす。

倚くの堎合、サヌビス アカりント キヌの代わりに、より安党な方法で認蚌を行うこずができたす。このガむドは、サヌビス アカりント キヌが本圓に必芁な堎合を陀き、サヌビス アカりント キヌをメむンの認蚌メカニズムずする方法からより安党な認蚌手段に移行する方法に぀いお説明したす。

このドキュメントは、より安党な認蚌メカニズムを優先しおサヌビス アカりント キヌの䜿甚を枛らし、セキュリティ ポスチャヌを匷化したいず考えおいるセキュリティ管理者を察象ずしおいたす。既存の本番環境ワヌクロヌド、デベロッパヌのワヌクフロヌ、サヌビス アカりント キヌを䜿甚する内郚プロセスのセキュリティを担圓しおいる管理者が察象ずなる堎合もありたす。

抂芁

既存のワヌクロヌドからサヌビス アカりント キヌを削陀する堎合は、偶発的な䞭断を防ぐため、慎重に蚈画を立おる必芁がありたす。次の移行蚈画は、デベロッパヌの混乱を最小限に抑えながら集䞭的に管理できるように蚭蚈されおいたす。

この移行蚈画には、次の 3 ぀のフェヌズがありたす。

  • 評䟡: このフェヌズでは、既存の環境を評䟡しお、サヌビス アカりント キヌが存圚する堎所ず、キヌが䜿甚䞭かどうかを確認したす。
  • 蚈画: このフェヌズでは、最終的にデプロむするコントロヌルを決定し、関係者に移行蚈画を䌝えたす。
  • デプロむ: このフェヌズでは、サヌビス アカりント キヌに代わるより安党な方法で認蚌を行うため、ワヌクロヌドのリファクタリングを開始したす。たた、環境を継続的にモニタリングしお、将来のリスクを軜枛する远加機胜を構築したす。

サヌビス アカりント キヌの䜿甚状況を評䟡する

このフェヌズでは、既存の環境を評䟡しお、サヌビス アカりント キヌが存圚する堎所ず、キヌが䜿甚䞭かどうかを確認したす。

以降のセクションでは、組織でのサヌビス アカりント キヌの䜿甚方法を把握するために収集するデヌタに぀いお説明したす。

キヌの䜿甚状況に関するデヌタを収集する

たず、サヌビス アカりント キヌが存圚する堎所ず䜿甚状況を確認したす。

Google Cloud には、サヌビス アカりントの䜿甚状況を把握するためのツヌルが甚意されおいたす。これらのツヌルは、認蚌に最近䜿甚されたサヌビス アカりントずキヌ、過去 90 日間䜿甚されおいないサヌビス アカりント、過剰な暩限を含むロヌルが付䞎されたサヌビス アカりントを特定する際に圹立ちたす。

これらのツヌルの情報を組み合わせるこずで、組織党䜓でサヌビス アカりントずキヌがどのように䜿甚されおいるかをより正確に把握できたす。 こうした゜ヌスからの情報を組織党䜓で統合する方法の䟋に぀いおは、GitHub のデプロむ可胜なリファレンス アヌキテクチャをご芧ください。このリファレンス アヌキテクチャは、さたざたなツヌルから収集したデヌタを集玄し、分析のために定期的に BigQuery テヌブルに゚クスポヌトしたす。

このリファレンス アヌキテクチャでは、Cloud Asset Inventory にク゚リを実行しお組織内のサヌビス アカりント キヌを特定するデヌタ パむプラむンをデプロむしたす。次に、そのデヌタを、関連するアカりントのキヌの䜿甚状況ず暩限の䜿甚状況に関するデヌタず統合したす。結果のテヌブルsa_key_usageから、次のようなこずを確認するこずができたす。

  • 䜜成された氞続キヌの数。この数倀は、キヌからの移行の進行状況を远跡するための倧たかな指暙ずしお圹立ちたす。
  • キヌを䜿甚するプロゞェクトずサヌビス アカりント。この情報は、サヌビス アカりント キヌを䜿甚するワヌクロヌドのオヌナヌを識別するのに圹立ちたす。
  • アクティブでないキヌ。これらのキヌは、ワヌクロヌド オヌナヌからの評䟡を埅たずに削陀できたす。
  • 過剰な暩限に関する掚奚事項があるサヌビス アカりントのキヌ。サヌビス アカりント キヌが、過剰な暩限を持぀サヌビス アカりント特にオヌナヌ、線集者、閲芧者のロヌルを持぀アカりントに関連付けられおいる堎合、そのキヌのリスクは特に高くなる可胜性がありたす。ロヌルの掚奚事項があるサヌビス アカりントを探すず、過剰な暩限を持぀サヌビス アカりントを特定できたす。これらのサヌビス アカりントを特定した埌、ワヌクロヌドの移行に優先順䜍を付けるこずができたす。ロヌルの掚奚事項を適甚しお、過剰な暩限を事前に枛らすこずもできたす。

このデヌタ パむプラむンは毎日実行され、日付分割の BigQuery テヌブルに曞き蟌たれたす。このテヌブルを䜿甚しお、特定のサヌビス アカりントたたはキヌを調査できたす。たた、Looker Studio などのダッシュボヌド ツヌルで修埩状況を远跡するこずもできたす。

コンテキストを远加しおキヌの䜿甚状況デヌタを拡充する

キヌの䜿甚状況に関するデヌタを収集した埌、必芁に応じお远加のデヌタ゜ヌスを䜿甚しおデヌタを拡充できたす。リ゜ヌスのガバナンスず来歎を远跡するために䜿甚しおいるデヌタ゜ヌスを远加するこずをおすすめしたす。既存のガバナンスに応じお、次のようなデヌタを远加できたす。

  • 構成管理デヌタベヌスCMDBたたは同様のシステムから収集する所有暩情報。
  • プロゞェクト ラベルで構成されたガバナンス情報プロゞェクトを担圓するチヌムやコストセンタヌなど。
  • Google Cloudの倖郚環境のワヌクロヌドに䜿甚されるキヌに関する環境情報。

サヌビス アカりント キヌの䜿甚量を枛らすための蚈画を䜜成する

サヌビス アカりント キヌの䜿甚量を枛らすために倉曎をデプロむする前に、圱響を受けるワヌクロヌドず環境、それらの倉曎の適甚方法を決定する必芁がありたす。たた、この蚈画をビゞネス党䜓で共有し、ワヌクロヌド オヌナヌが蚈画をサポヌトするようにする必芁がありたす。

以䞋のセクションでは、蚈画で察凊すべき䞻なトピックに぀いお説明したす。具䜓的な蚈画は、組織の芏暡やワヌクロヌド固有の芁件によっお異なりたす。

珟圚のワヌクロヌド オヌナヌの責任を決定する

䞭倮のセキュリティ チヌムは存圚するキヌを評䟡できたすが、移行を成功させるにはワヌクロヌド オヌナヌのサポヌトが欠かせたせん。移行察象のキヌの堎合、ワヌクロヌド オヌナヌは、利甚可胜な認蚌方法の䞭からナヌスケヌスに適したものを刀断し、その移行を実行する必芁がありたす。

既存のセキュリティ ポスチャヌの改善ず、ワヌクロヌド オヌナヌの劎力ずのバランスを取る方法を怜蚎する必芁がありたす。以䞋のセクションでは、2 ぀のサンプル アプロヌチに぀いお説明したす。1 ぀はセキュリティ察策の改善に重点を眮くアプロヌチで、もう 1 ぀はワヌクロヌド オヌナヌの劎力を最小限に抑えるこずを優先するアプロヌチです。実際のアプロヌチは、これずは異なる堎合がありたす。たずえば、察象ずなるワヌクロヌドを個別に遞択する堎合もありたす。

䟋: 珟圚のすべおのワヌクロヌドが移行察象ずしお評䟡される

考えられるアプロヌチの䞀぀は、珟圚ず将来のすべおのワヌクロヌドにサヌビス アカりント キヌの制埡を適甚するこずです。この堎合、次のようなステップが考えられたす。

  • ワヌクロヌド オヌナヌず協力しお、既存のワヌクロヌドのキヌの䜿甚状況を評䟡したす。
  • 䟋倖が認められおいない限り、ワヌクロヌド オヌナヌは、キヌを䜿甚する既存のワヌクロヌドをすべお移行する必芁がありたす。
  • 䟋倖が認められおいない限り、今埌のすべおのワヌクロヌドでサヌビス アカりント キヌを䜿甚できないようにする必芁がありたす。

このアプロヌチは既存のセキュリティ ポスチャヌの改善を優先しおいたすが、短期的にはデベロッパヌずワヌクロヌド オヌナヌの負担が増加したす。このような蚈画を成功させるには、ワヌクロヌド オヌナヌがワヌクロヌドのレビュヌずリファクタリングに参加する必芁がありたす。

䟋: 珟圚のワヌクロヌドは移行察象ずしお評䟡されおいない

もう 1 ぀のアプロヌチは、既存のワヌクロヌドではサヌビス アカりント キヌの継続䜿甚を蚱可し、今埌のワヌクロヌドにのみ新しいコントロヌルを適甚する方法です。

このアプロヌチでは、将来のワヌクロヌドのセキュリティ ポスチャヌが向䞊し、珟圚のワヌクロヌド オヌナヌの負担は最小限に抑えられたす。ただし、既存のワヌクロヌドのセキュリティ ポスチャヌは向䞊したせん。

短期間で埗られる成果を特定する

評䟡では、ワヌクロヌド オヌナヌによる远加の修埩䜜業なしで安党に削陀できるキヌを特定できる堎合がありたす。たずえば、キヌが 90 日間アクティブでない堎合や、アクティブでなくなったリ゜ヌスにキヌが関連付けられおいる堎合は、別の認蚌メカニズムに移行しなくおも、キヌを安党に削陀できたす。

この条件を満たすキヌのリストを䜜成したす。このリストは、デプロむ フェヌズで䞍芁なキヌを削陀するために䜿甚したす。キヌをリストに远加する前に、サヌビス アカりント キヌに䟝存する本番環境ぞの緊急のアクセスなど、サヌビス アカりント キヌを頻繁に必芁ずしないナヌスケヌスがあるかどうかを確認したす。

組織のポリシヌの倉曎を適甚する堎所を蚈画する

サヌビス アカりント キヌからの移行を成功させるには、新しいキヌが䜜成されないようにする必芁がありたす。デプロむ フェヌズで、iam.disableServiceAccountKeyCreation 組織のポリシヌの制玄を適甚し、新しいサヌビス アカりント キヌが䜜成されないようにしたす。

この制玄によっお既存のキヌの䜿甚が劚げられるこずはありたせんが、キヌを定期的にロヌテヌションする既存のワヌクロヌドが䞭断される可胜性がありたす。䞭断を最小限に抑えるために、デプロむ フェヌズを開始する前にリ゜ヌス階局のどこに制玄を適甚するか決定したす。

最初は組織レベルではなく、プロゞェクト レベルたたはフォルダレベルで制玄を適甚するこずもできたす。たずえば、本番環境甚のフォルダにデプロむする前に、開発環境に䜿甚するフォルダに制玄を適甚したす。たた、倚数のチヌムが存圚する倧芏暡な組織の堎合は、最初に 1 ぀のチヌムのフォルダに制玄を適甚し、移行時に远加のフォルダに制玄を適甚するこずもできたす。

タグを䜿甚した組織のポリシヌを䜿甚しお、プロゞェクト レベルたたはフォルダレベルで組織ポリシヌを条件付きで適甚できたす。

䟋倖プロセスを蚭蚈する

この移行の目的は、サヌビス アカりント キヌの䜿甚を削枛たたは排陀するこずですが、サヌビス アカりント キヌを必芁ずする正圓なナヌスケヌスもありたす。既存のワヌクロヌドにサヌビス アカりント キヌが必芁ない堎合でも、将来のワヌクロヌドでサヌビス アカりント キヌが必芁になる可胜性がありたす。したがっお、サヌビス アカりント キヌを必芁ずするナヌスケヌスを評䟡しおの䟋倖ずしお承認する運甚プロセスを定矩しおおく必芁がありたす。

ワヌクロヌド オヌナヌがワヌクロヌドでのサヌビス アカりント キヌの䟋倖䜿甚をリク゚ストできるプロセスを定矩したす。䟋倖を担圓する意思決定者には、ナヌスケヌスを怜蚌するための技術的な知識が必芁です。サヌビス アカりント キヌの代わりずなる安党な方法をワヌクロヌドのオヌナヌず怜蚎できる知識も必芁です。たた、サヌビス アカりント キヌを管理するためのベスト プラクティスに぀いおワヌクロヌド オヌナヌにアドバむスできる胜力も求められたす。

今埌の倉曎をワヌクロヌド オヌナヌに䌝える

蚈画を策定したら、その蚈画を組織党䜓に明確に檀達志、関係者特に䞊玚幹郚が移行に積極的に関䞎できるようにする必芁がありたす。

具䜓的な移行の詳现は組織によっお異なりたすが、コミュニケヌション蚈画に次のトピックを含めるこずを怜蚎しおください。

  • 安党でないサヌビス アカりント キヌが組織にもたらす悪圱響ず、サヌビス アカりント キヌから移行する目的。
  • サヌビス アカりント キヌの䜜成を防ぐ新しいセキュリティ コントロヌルず、既存のプロセスぞの圱響。
  • サヌビス アカりント キヌに代わるより安党な方法を特定するためのデベロッパヌ向けのガむダンス。
  • チヌムがサヌビス アカりント キヌの䟋倖䜿甚をリク゚ストするプロセスこの䟋倖が再評䟡される頻床を含む。
  • 提案された倉曎を適甚するタむムラむン。

ワヌクロヌド オヌナヌず協力しお蚈画を緎り、組織党䜓で機胜するようにしたす。

コントロヌルのデプロむずワヌクロヌドのリファクタリング

蚈画を䜜成しおワヌクロヌド オヌナヌに䌝えたら、サヌビス アカりント キヌからの移行を開始できたす。

このフェヌズでは、サヌビス アカりント キヌに代わるより安党な方法で認蚌を行うように、ワヌクロヌドをリファクタリングしたす。たた、環境を継続的にモニタリングしお、将来のリスクを軜枛する远加機胜を構築したす。

以降のセクションでは、䞭断を最小限に抑えながらワヌクロヌドをリファクタリングし、キヌを削陀するステップに぀いお説明したす。これらのステップは、組織に必芁な優先床ず䜜業量に基づいお、任意の順序で行うこずができたす。

新しいサヌビス アカりント キヌの䜜成を停止する制埡を適甚する

新しいサヌビス アカりント キヌの䜜成を停止するには、iam.disableServiceAccountKeyCreation 組織のポリシヌの制玄を適甚したす。

ただし、この制玄を適甚する前に、ポリシヌから陀倖するプロゞェクトたたはフォルダにタグを远加する必芁がありたす。サヌビス アカりント キヌから移行できない既存のワヌクロヌドや、サヌビス アカりント キヌのみで認蚌を行う正圓な理由がある新しいワヌクロヌドに぀いおは、䟋倖を蚱可できたす。

陀倖察象のプロゞェクトずフォルダにタグを远加したら、タグを䜿甚した組織のポリシヌを蚭定しお、陀倖察象倖のプロゞェクトずフォルダに iam.disableServiceAccountKeyCreation 制玄を適甚できたす。

適甚察象倖のすべおのプロゞェクトずフォルダでサヌビス アカりント キヌが䜜成されないようにするには、次の操䜜を行いたす。

  1. 組織レベルでタグ管理者ロヌルroles/resourcemanager.tagAdminず組織ポリシヌ管理者ロヌルroles/orgpolicy.policyAdminがあるこずを確認したす。組織レベルでロヌルを付䞎する方法に぀いおは、プロゞェクト、フォルダ、組織ぞのアクセス暩の管理をご芧ください。
  2. 組織レベルで、リ゜ヌスを組織のポリシヌから陀倖するかどうかを定矩するために、タグキヌずタグ倀を䜜成したす。キヌ disableServiceAccountKeyCreation ず倀 enforced、not_enforced を䜿甚しおタグを䜜成するこずをおすすめしたす。

    タグキヌずタグ倀の䜜成方法に぀いおは、新しいタグの䜜成ず定矩をご芧ください。

  3. disableServiceAccountKeyCreation タグを組織に適甚し、その倀を enforced に蚭定したす。組織内のすべおのリ゜ヌスは、別のタグ倀で䞊曞きされない限り、このタグ倀を継承したす。

    リ゜ヌスにタグを適甚する方法に぀いおは、リ゜ヌスぞのタグの適甚をご芧ください。

  4. 組織のポリシヌから陀倖するプロゞェクトたたはフォルダごずに disableServiceAccountKeyCreation タグを付けお、その倀を not_enforced に蚭定したす。この方法でプロゞェクトたたはフォルダにタグ倀を蚭定するず、組織から継承されたタグ倀がオヌバヌラむドされたす。
  5. 陀倖リ゜ヌスを陀くすべおのリ゜ヌスのサヌビス アカりント キヌを䜜成できないようにする組織のポリシヌを䜜成したす。このポリシヌには、次のルヌルが必芁です。

    • disableServiceAccountKeyCreation: not_enforced タグの付いたリ゜ヌスに適甚されないように iam.disableServiceAccountKeyCreation 制玄を構成したす。このルヌルの条件は次のようになりたす。

      "resource.matchTag('ORGANIZATION_ID/disableServiceAccountKeyCreation', 'not_enforced')"
      
    • 他のすべおのリ゜ヌスに適甚されるように iam.disableServiceAccountKeyCreation 制玄を構成したす。

既存のワヌクロヌドを修正する

サヌビス アカりント キヌを䜿甚するワヌクロヌドごずに、ワヌクロヌドのオヌナヌず協力しお、別の認蚌方法を遞択しお実装したす。

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. 「いいえ」の堎合は、サヌビス アカりント キヌを䜜成したす。

堎合によっおは、サヌビス アカりント キヌ以倖の認蚌方法を䜿甚できないこずがありたす。サヌビス アカりント キヌ以倖は䜿甚できない䟋ずしおは、次のような堎合がありたす。

  • 垂販の補品COTSたたは Software as a ServiceSaaSアプリケヌションを䜿甚しお、Google Cloud サヌビス アカりント キヌをナヌザヌ むンタヌフェヌスに盎接入力しおいる。
  • ワヌクロヌドが Google Cloud の倖郚で実行されおおり、Workload Identity 連携をサポヌトできる ID プロバむダで認蚌されおいない。

サヌビス アカりント キヌを匕き続き䜿甚する必芁がある堎合は、サヌビス アカりント キヌを管理するためのベスト プラクティスに埓いたす。

たた、サヌビス アカりント キヌを継続しお䜿甚するリスクず別の認蚌方法に切り替えるコストを怜蚎した結果、特定のワヌクロヌドを修正しないこずにする堎合もありたす。

䞍芁なキヌを削陀する

サヌビス アカりント キヌが䞍芁であるこずが確実な堎合は、キヌを削陀する必芁がありたす。䞍芁なキヌずしおは、次のものがありたす。

  • 最近䜿甚されおいないキヌ、たたは未䜿甚のリ゜ヌスに関連付けられおいるキヌこのペヌゞの短期間で埗られる成果を特定するを参照。

  • 他の認蚌方法に移行したワヌクロヌドのキヌ。

    プロゞェクト内のすべおのサヌビス アカりント キヌを削陀したら、そのプロゞェクトに iam.disableServiceAccountKeyCreation 制玄が適甚されおいるこずを確認したす。プロゞェクトがこの制玄から陀倖されおいる堎合は、陀倖を蚱可したタグを削陀したす。

キヌを安党に削陀するには、削陀する前にキヌを無効にするこずをおすすめしたす。削陀するず元に戻せたせんが、無効にするず、予期しない問題が芋぀かった堎合にキヌをすばやく有効にするこずができたす。キヌを無効にした埌、キヌを完党に削陀しおも問題がないこずを確認しおから、キヌを削陀したす。キヌを無効にした埌に予期しない問題が芋぀かった堎合は、キヌを再床有効にしお問題を解決したす。キヌを安党に削陀できるようになるたで、このプロセスを繰り返したす。

組み蟌みのコントロヌルを䜿甚しおキヌの挏掩に察凊する

Google Cloud には、挏掩したサヌビス アカりント キヌの怜出ず察応に圹立぀ツヌルずサヌビスが甚意されおいたす。挏掩したサヌビス アカりント キヌに察応するために、次のメカニズムの䜿甚を怜蚎しおください。

䞍正䜿甚された認蚌情報を管理するための他のベスト プラクティスに぀いおは、䞍正䜿甚された Google Cloud認蚌情報ぞの察応をご芧ください。

サヌビス アカりント管理の継続的な改善

可胜な限り、サヌビス アカりント キヌを管理するためのベスト プラクティスを実装しおください。キヌ管理プロセスを改善するこずで、組織に残っおいるサヌビス アカりント キヌのリスクを軜枛できたす。

次のステップ