Google Cloudにもついに登場!組織のセキュリティを強化するPrivileged Access Manager(PAM)を使ってみた
2024.09.24
クラウドサービスでのシステム運用を行うにあたって、アカウントの権限管理はセキュリティ面で非常に重要な課題です。
本記事ではGoogle Cloudにてアカウントの権限管理の1つである特権アクセス管理を行うことができる「Privileged Access Manager(PAM)」についてご紹介します。
はじめに
クラウドサービスの多くでは、アカウントの乗っ取りや予期せぬ操作によるサービスへの悪影響を軽減することを目的として、そのアカウントに本当に必要なアクセス権限のみを付与する「最小権限の原則」という考え方がアカウント運用のベストプラクティスとして採用されています。
この原則に基づくセキュリティ体制をより強固にするサービスとして、2024年5月、Google Cloudより「Privileged Access Manager(PAM)」がプレビュー版で公開されました。
今回はこのPrivileged Access Manager(PAM)についてご紹介します。
特権アクセス管理(Privileged Access Management)とは
Privileged Access Manager(PAM)の紹介をする前に、はじめに「特権アクセス管理(Privileged Access Management)」という考え方についてご紹介します。
特権アクセス管理(PAM)とは、システム管理者など、高い権限を持つアカウントへのアクセスを厳密に管理し、不正なアクセスや悪用を防ぐためのセキュリティ対策です。
他のすべての情報セキュリティソリューションと同様に、ユーザー、プロセス、およびテクノロジーの組み合わせによって機能します。
サービス稼働にかかわるリソースの操作、機微情報の閲覧といった権限を持つアカウントは非常にリスクの高いものであり、アカウントを使用できるユーザーの管理、使用するためのフローの整備、アカウント利用履歴の管理などを考慮する必要があります。
Google Cloudでも以前より特権アクセス管理の導入が推奨されていましたが、その方法はGoogleグループに対するユーザーの追加・削除、オープンソースコードによる専用アプリケーションの利用するものであり、導入・運用コストが比較的高いものでした。
参考: 一時的に昇格したアクセスの概要(Google Cloud)
Google CloudのPrivileged Access Manager (PAM)とは
次に、上記のような背景がある中でGoogle Cloudよりプレビュー公開されたフルマネージドサービス「Privileged Access Manager(以下、PAM)」について紹介します。
利用資格(Entitlement)を利用したジャストインタイム、承認ワークフローの実現
PAMでは、利用資格(Entitlement)というリソースを使用した特権アクセスの管理を行います。利用資格には、以下を設定することが可能です。
この利用資格を介した特権アクセス管理により、時限的な権限付与や特権アクセス利用フローの簡素化を実現することが可能です。
なお、利用資格そのものの管理について、申請及び承認を行うプリンシパルとは別に「管理者」となるプリンシパルが行うことが望ましいです。
監査ログへの自動記録によるセキュリティ向上
PAMでは、利用資格の作成から承認後の権限の付与・剥奪までのステップが監査ログとして自動的にCloud Loggingに記録されます。
これにより、特権アクセスの履歴を詳細に記録し、監査に利用することができたり、不審なアクティビティを早期に検知し、インシデント対応に役立てたりすることが可能です。
また、オプションでデータアクセス監査ログを有効化すると、利用資格閲覧等の記録も可能です。
注意事項
PAMを利用できる環境は、組織および組織配下のフォルダ・プロジェクトのみとなります。そのため、組織なしのプロジェクトではPAMを利用できません。
以下は組織なしのプロジェクトで利用資格を作成した際のエラーです。
参考: Google Cloud – Privileged Access Manager overview
実際にPAMを使ってみた
それでは実際にPAMを使ってみましょう。
今回の検証では、PAMを使用して「Computeインスタンス管理者(v1) (roles/compute.instanceAdmin.v1)」を一時的に付与していこうと思います。
検証の流れ
検証を行う前に、PAMを利用した権限付与の流れを以下に示します。
これらのフローのほかに、PAMを利用するための権限設定も必要ですので合わせて解説していきます。
必要な権限
PAMを利用する上で必要な権限は以下の通りです。いずれもPAMを利用するリソース(組織、フォルダ、プロジェクト)レベルでの設定が必要です。
サービスエージェント
事前定義ロール | 備考 |
---|---|
Privileged Access Managerサービスエージェント (roles/privilegedaccessmanager.serviceAgent) | サービスエージェントは「service-org-〓組織ID〓@gcp-sa-pam.iam.gserviceaccount.com」です。 |
管理者
事前定義ロール | 備考 |
---|---|
特権アクセス マネージャー管理者(roles/privilegedaccessmanager.admin) | |
フォルダーIAM管理者(roles/resourcemanager.folderIamAdmin) | フォルダーIAM管理者、プロジェクトIAM管理者、セキュリティ管理者のいずれかが付与されていれば問題ありません。 |
プロジェクトIAM管理者(roles/resourcemanager.projectIamAdmin) | 同上 |
セキュリティ管理者(roles/iam.securityAdmin) | 同上 |
申請者
事前定義ロール |
---|
特権アクセス マネージャー閲覧者(roles/privilegedaccessmanager.viewer) |
承認者
事前定義ロール |
---|
特権アクセス マネージャー閲覧者 (roles/privilegedaccessmanager.viewer) |
また、監査ログを表示する場合にはログ閲覧者(roles/logs.viewer)のロールが必要となります。 今回は管理者、申請者、承認者には上記の権限をすでに付与しているものとします。
事前準備
それではGoogle Cloudコンソール上の操作を行っていきましょう。はじめにPAMのAPIを有効化します。
次に、PAMのサービスエージェントに対して前述した IAM ロールを付与します。
これでPAMを利用する準備は完了です。
利用資格の作成(管理者操作)
管理者にて、利用資格を作成します。
利用資格名と利用資格により付与されるロール、付与される最大期間を設定します。
利用資格を申請できるプリンシパルを設定します。リクエストの際に理由が必須かどうかを選択することが可能です。
利用資格の申請を承認できるプリンシパルを設定します。
こちらも承認する際に理由を必須とするか否かを選択することが可能です。また、「承認なしでアクセスを有効化」のチェックをオンにすると、利用申請のみで権限の付与が可能となります。
最後に通知先の設定を行います。権限付与の流れのうち、以下の状態の時に通知をするか否かの設定が可能です。
ただし、利用資格申請時には申請するプリンシパルに、利用資格承認時には承認するプリンシパルに対して自動的に通知されます。
作成後、利用資格が使用可能であることを確認します。
申請前の権限確認(申請者操作)
申請を行う前に、この時点でIAMロール「Computeインスタンス管理者(v1)」が付与されていないことを、ロールに含まれる権限の操作ができないことで確認します。
Compute Engine VMインスタンスコンソールにアクセスすると、以下のようにインスタンスの作成ができません。
利用資格の申請(申請者操作)
申請者にて、利用資格を申請します。
権限付与の期間、申請を行う理由を入力して申請します。
申請を行うと、利用資格のステータスが「「Approval Awaited(承認待ち)」に更新されます。
利用資格申請の承認(承認者操作)
申請が行われた後、承認者にて申請の承認/拒否を行います。
申請理由等を確認したうえで承認を行います。
承認完了後、その履歴が承認者画面で確認できます。
承認後の権限確認(申請者操作)
承認完了後、申請者画面では権限が付与される残り時間とともに利用資格が有効であることが確認できます。
この状態で再度 Compute Engine VMインスタンス画面にアクセスすると、無事インスタンスが作成できる(対象の IAM ロールが付与されている)状態となっています。
なお、この間 IAM コンソール画面を確認すると、対象のロールが PAM により付与されたものであることが確認できます。
期限切れ後の確認(申請者)
権限付与の期間を過ぎると、利用資格のステータスが終了となります。
この状態でもう一度 Compute Engine VM インスタンス画面にアクセスすると、インスタンスが作成できない(対象の IAM ロールが剥奪されている)状態となっています。
監査ログの確認
ここまでのフローについて、監査ログにすべて記録されます。監査ログはCloud LoggingでもPAMコンソールでも確認可能です。
まとめ
今回は、Google CloudのPrivileged Access Manager(PAM)についてご紹介しました。
フルマネージドサービスであるため基盤管理が不要であることに加え、申請・承認時のコメント機能や監査ログの記録などにより、追加でGoogle Cloud以外のツールやサービスを必要とせずに特権アクセス管理の運用が可能であることが非常に魅力的です。
プレビュー版ではあるため本格的に運用する際にはいくつか注意点は存在するものの、セキュリティ面で大きな効果を発揮するサービスであると感じます。本記事がGoogle Cloud 環境でセキュリティ設計・運用を行う方々の一助となれば幸いです。
最後に宣伝ではございますが、JIG-SAWでは国内外の主要クラウドインフラサービスを中心に、様々なクラウド・セキュリティサービスのご案内と導入支援~監視・運用保守までをワンストップで支援しております。
手数料無料でGoogle Cloudを割引価格でご利用いただけるほか、アカウント管理、コスト最適化、技術サポートまでを包括的に支援するサービスもございますので、ぜひお気軽にご相談ください。