G-genの山崎です。Google Cloud(旧称 GCP)の Privileged Access Manager(PAM)を用いた権限管理について解説します。
Privileged Access Manager(PAM) とは
Privileged Access Manager(以降、PAM)は、Google Cloud(旧称 GCP)の Cloud IAM の1機能であり、承認者による承認フローを経由して、一時的な IAM 権限付与をすることができる仕組みです。当機能の名称は、コンソール画面等では「特権アクセスマネージャー」とも表現されています。
フルマネージドのため基盤の管理やプログラムの開発は不要なうえ、無料で利用することができます。
この機能は、特権管理におけるジャストインタイム(JIT)アクセスというコンセプトに基づいています。ユーザーに対して一時的に必要な特権を付与することで、不必要な特権の濫用や、情報漏洩のリスクを低減させることができます。
PAM では承認ワークフローを用いた特権付与ができるため、不正な特権の付与を未然に防ぐこともできます。
また、過去のワークフローの内容は監査ログから確認ができるため、権限付与の妥当性の検証も簡易に実施できます。
- 参考 : Privileged Access Manager overview
- 参考 : ジャストインタイムの特権アクセス管理の概要
- 参考 : Move from always-on privileges to on-demand access with new Privileged Access Manager
PAM の利用方法
PAM は、以下の3ステップで利用することができます。
ステップ | ステップ名 | 実施者 |
---|---|---|
ステップ1 | 利用資格の作成 | 管理者(特権管理の仕組みを作る人) |
ステップ2 | 利用申請 | 申請者(権限を付与される人) |
ステップ3 | 申請の承認 | 承認者(権限を承認する人) |
ステップ1の「利用資格の作成」では利用資格(entitlements)という PAM のオブジェクトを作成します。これは「特権管理の承認フローの作成」と言い換えることができます。利用資格には「付与する IAM ロール」「権限を付与する最大時間」「誰が権限をリクエストできるか」「誰がリクエストを承認できるか」「誰が通知を受け取るか」などを定義できます。一度、利用資格を作成すると、利用資格は何度でも再利用することができます。
ステップ2では、IAM 権限を必要とする申請者が、利用資格の一覧から選択して、権限をリクエストします。リクエストは承認者に通知されます。
ステップ3で承認者がリクエストを承認すると、IAM ロールが申請者に付与されます。設定した最大時間が経過すると、IAM ロールは自動的に剥奪されます。
利用資格
利用資格とは
利用資格(entitlements)は PAM のオブジェクトであり、承認フローと言い換えることもできます。利用資格には「付与する IAM ロール」「権限を付与する最大時間」「誰が権限をリクエストできるか」「誰がリクエストを承認できるか」「誰が通知を受け取るか」などを定義できます。
付与する IAM ロール
「付与する IAM ロール」で定義した IAM ロールは、組織、フォルダ、プロジェクトに付与することができます。
IAM ロール付与先のリソースは、利用資格が存在するレベルによって決まります。つまり、プロジェクトに IAM ロールを付与する利用資格を作りたい場合は、利用資格をそのプロジェクトに作成します。組織に IAM ロールを付与する利用資格を作りたい場合は、利用資格をその組織のルート(根)レベルに作成します。
権限を付与する最大時間
「権限を付与する最大時間」を過ぎると、IAM ロールは自動的に剥奪されます。コンソール画面からの設定では、1時間から24時間の間で選択することができます。ただし、API 経由での設定の場合、秒単位での設定が可能です。
申請者と承認者
「誰が権限をリクエストできるか」「誰がリクエストを承認できるか」はそれぞれ、申請者と承認者のプリンシパルを定義します。
プリンシパルとは、ここでは Google アカウントや Google グループを指します。ドメイン全体(組織の誰でも申請/承認できる)を指定することもできます。
通知設定
「誰が通知を受け取るか」を定義することで、E メール通知を設定できます。申請が行われたタイミングや、実際に権限付与が行われたタイミングなど、それぞれのイベントごとに、受信者を設定できます。通知を行わないことも可能です。
ただし、ここに明示的に設定しなくても、申請者や承認者には自動的に通知が行われます。
通知の E メールは pam-noreply@google.com
から送信されるので、メール設定では、このアドレスからのメールがブロックされないように許可する必要があります。
監査ログ
PAM で行われた権限リクエストや承認の履歴は、Cloud Audit Logs の仕組みで Cloud Logging に記録されます。
デフォルトでは管理アクティビティログとして「利用資格の作成、削除、更新」「リクエストの承認、否認」「PAM による権限の付与、剥奪」などが記録されます。
オプショナルでデータアクセス監査ログを有効化すると、利用資格の一覧取得や閲覧なども記録されます。
監査ログは Cloud Logging から確認可能なほか、PAM の管理画面の「監査ログ」タブからも確認できます。
PAM の利用自体への権限管理
概要
PAM の利用自体にも、IAM による権限管理が可能です。
前述の「PAM の利用方法」では、PAM を利用する人の3つの役割(特権管理の仕組みを作る人、権限を付与される人、権限を承認する人)を示しました。その役割ごとに、異なる IAM 権限を付与する必要があります。
管理者(特権管理の仕組みを作る人)
管理者(特権管理の仕組みを作る人)、すなわち利用資格を作成したり、編集したりする人は、利用資格を作成するリソース(組織、フォルダ、プロジェクト)に対して「特権アクセス マネージャー管理者(roles/privilegedaccessmanager.admin
)」を持っていることに加え、リソースのレベルに応じて以下のいずれかの IAM ロールが必要です。
- セキュリティ管理者(
roles/iam.securityAdmin
) - フォルダ IAM 管理者(
roles/resourcemanager.folderIamAdmin
) - Project IAM 管理者(
roles/resourcemanager.projectIamAdmin
)
申請者(権限を付与される人)
PAM の利用資格を通じて権限をリクエストする人(= 権限を付与される人)は、「特権アクセス マネージャー閲覧者(roles/privilegedaccessmanager.viewer
)」が必要です。
利用資格が存在するリソース(組織、フォルダ、プロジェクト)において、この IAM ロールが付与されている必要があります。
承認者(権限を承認する人)
権限リクエストを承認する人が必要な IAM 権限は、申請者と同じ「特権アクセス マネージャー閲覧者(roles/privilegedaccessmanager.viewer
)」です。
必要な IAM ロールは申請者と同じであり、承認する権限があるかどうか自体は、利用資格の定義で決まります。
こちらも、利用資格が存在するリソースにおいて、この IAM ロールが付与されている必要があります。
利用手順
ステップ1.利用資格の作成(管理者)
PAM 画面への遷移
最初に、利用資格を作成します。これは、申請/承認ができるユーザが誰で、どのロールを付与するかを設定します。この設定は、特権を付与したいユースケース単位で実施します。
まず、Google Cloud コンソールメニューの「IAMと管理」>「PAM」を押下します。
初期設定として、APIの有効化や、PAM のサービス アカウントへのアクセス権の付与を実施後、以下の画面が表示されます。
この画面の「CREATE」を押下すると、利用資格の新規作成画面が表示されます。
利用資格の詳細
利用資格の詳細では、権限を付与するロールと権限を付与する期間を設定します。
リクエスト元の追加
利用申請を行う、プリンシパルを設定します。
「リクエスト元の正当な理由が必要」のチェックをオンにすると、利用申請時に、申請理由の入力が必須となります。
承認者の追加
申請の承認を行う、プリンシパルを設定します。
「承認者の正当な理由が必要」のチェックをオンにすると、申請承認時に、承認理由の入力が必須となります。
また、「承認なしでアクセスを有効化」のチェックをオンにすると、申請の承認のフローを踏まず、利用申請を実施するだけで、権限の付与が可能となります。
通知を追加
最後に、以下の状態になった時に、通知を行うかの設定を行います。
- 利用資格が使用可能となった時
- 利用申請が行われ、承認待ちの状態となった時
- 申請が承認され、リクエスト元に権限が付与された時
なお、ここに設定しなくても申請者と承認者には、必ず通知メールが送信されます。
ステップ2.利用申請(申請者)
権限の事前確認
まず、現在の状態で、申請者にBigQuery のデータ編集権限がないことを確認します。
権限付与のリクエスト
PAM のヘッダの「利用資格」を押下し、ステップ1で登録した利用資格が表示されていることを確認します。該当行の「権限付与をリクエスト」を押下します。
権限を付与する期間と、申請理由を入力し、「権限付与をリクエスト」を押下します。
ステップ3.申請の承認(承認者)
申請の承認
承認者にて、PAM のヘッダの「権限付与を承認」を押下し、ステップ2で登録した申請内容が表示されていることを確認します。該当行の「承認/拒否」を押下します。
承認理由を入力し、「承認」を押下します。
権限の確認
申請者にて、PAM のヘッダの「権限付与」を押下し、申請した権限のステータスが「Active」となっていることを確認します。
また、BigQuery に対して、データ更新ができることを確認します。
監査ログの確認
今までステップ1〜3で実施した内容は、履歴として保存されており、PAM のヘッダの「監査ログ」を押下すると、詳細を確認することができます。
前述の通り、監査ログは Cloud Audit Logs の仕組みで Cloud Logging に記録されているため、この画面のほか、Cloud Logging のログエクスプローラーからも確認できます。
山崎 曜(記事一覧)
クラウドソリューション部
元は日系大手SIerにて金融の決済領域のお客様に対して、PM/APエンジニアとして、要件定義〜保守運用まで全工程に従事。
Google Cloud Partner Top Engineer 2025 選出。
Google Cloud 全 11 資格保有。
フルスタックな人材を目指し、日々邁進。