Privileged Access Managerで一時的に昇格されたアクセス権を付与する
はじめに
こんにちは。
クラウド事業本部コンサルティング部の渡邉です。
Google Cloudに限らず、クラウド環境でシステムを運用していくときに必ず課題に挙がるのが、権限問題です。
クラウドを利用するにあたっては、常に最小権限の原則に沿って権限を付与することがベストプラクティスになりますが、急なインシデント対応やちょっとした本番作業などの不測の事態に対応する際に、追加の権限を付与し、作業が完了したら権限を削除することには運用コストがかかります。
また、追加の権限を付与した際の作業ログなど取得する必要がある場合、ログ管理をどうするかなど考えることが多くあります。
今回は、上記の課題を解決するGoogle CloudのPrivileged Access Managerという機能で、一時的に昇格されたアクセス権を付与する方法を紹介したいと思います。
概要
Privileged Access Managerとは
Privileged Access Manager(PAM)とは、Just-In-Time(JIT)アクセスの原則に基づき、必要な時にのみ一時的な権限昇格を許可することができるGoogle Cloudの権限管理サービスです。
Privileged Access Managerは、以下のユースケースをサポートしています。
- 本番環境への一時的な管理者アクセス
- トラブルシューティング時の権限昇格
- 定期メンテナンス作業のための一時権限
- コンプライアンス要件を満たす監査可能なアクセス管理
- セキュリティインシデント対応時の緊急アクセス
機能と制限
Privileged Access Managerでは、以下の機能が提供されています。
様々な機能がリリースされていますが、機能によってはリリースステージがPreviewのものがあるので、一覧化してまとめてみました。(2025年11月現在)
個人的に気になる機能は、「複数レベルによる承認と複数の関係者による承認」です。エンタープライズ企業の場合、本番作業時に複数名での承認作業が求められる場合があります。
本機能がGAになった場合、複数名での承認作業を導入することができるため、今まで複数名の承認が必要でPrivileged Access Managerを導入できなかった企業も導入を検討することができるようになります。
| 機能 | 内容 | リリースステージ |
|---|---|---|
| サポートされているリソース | プロジェクト、フォルダ、組織に対する利用資格の作成と権限付与のリクエストが可能。IAM条件を使用してアクセス範囲を制限可能(タグ確認機能はPreview) | GA |
| サポートされているロール | 事前定義ロール、カスタムロール、基本ロール(管理者、書き込み、読み取り)に対応。以前の基本ロール(オーナー、編集者、閲覧者)は非対応 | GA |
| サポートされているID | Cloud Identity、Workforce Identity連携、Workload Identity連携など、あらゆるタイプのIDに対応 | GA |
| 監査ロギング | 利用資格や権限付与イベントはCloud Audit Logsに記録され、追跡可能 | GA |
| 複数レベルによる承認と複数の関係者による承認 | 最大2レベルの順次承認、各レベルで最大5件の承認が可能 | Preview |
| スコープのカスタマイズ | 申請者が利用資格の範囲内で必要な特定のロールとリソースのみを含むようにリクエストを調整可能 | Preview |
| サービスアカウント承認 | サービスアカウントとWorkload Identityプール内IDを承認者として追加可能 | Preview |
| 継承のサポート | 組織またはフォルダレベルの利用資格が下位リソースで確認でき、子リソース内でアクセスをリクエスト可能 | Preview |
| 通知設定のカスタマイズ | リソース全体でイベント通知を選択的に無効化または制御可能 | Preview |
| 付与の取り消し | 申請者が承認待ちの権限付与リクエストを取り消す、またはアクティブな権限付与を終了可能 | Preview |
| 権限付与の保持 | 拒否・取り消し・有効期限切れ後30日で自動削除 | GA |
従来の権限付与方法との比較
従来のIAM権限付与では、管理者ロールを直接ユーザに付与し、そのユーザは常時その権限を保持していました。これは、権限が必要ない期間も高い権限を持ち続けることになり、セキュリティリスクとなります。
Privileged Access Managerは、事前に定義された利用資格に基づき、承認フローを経て一時的な権限を付与します。権限は指定された時間で自動的に失効し、すべてのアクセスが監査ログに記録されるため、コンプライアンス要件も満たすことができます。
| 方式 | セキュリティ | 運用負荷 | 監査性 | Google推奨度 |
|---|---|---|---|---|
| IAM権限 | 低 | 低 | 中 | 非推奨 |
| Privileged Access Manager | 高 | 中 | 高 | 強く推奨 |
必要なIAM権限
Privileged Access Managerを利用するには、操作内容に応じて以下のIAM権限が必要になります。
利用資格の作成・管理に必要な権限
| 適用レベル | 必要なロール | ロールID | 備考 |
|---|---|---|---|
| 組織レベル | ・Privileged Access Manager 管理者 ・セキュリティ管理者 |
・roles/privilegedaccessmanager.admin・ roles/iam.securityAdmin |
組織全体の利用資格を作成・管理する場合に必要 |
| フォルダレベル | ・Privileged Access Manager 管理者 ・フォルダ IAM 管理者 |
・roles/privilegedaccessmanager.admin・ roles/resourcemanager.folderAdmin |
特定のフォルダ配下の利用資格を作成・管理する場合に必要 |
| プロジェクトレベル | ・Privileged Access Manager 管理者 ・プロジェクト IAM 管理者 |
・roles/privilegedaccessmanager.admin・ roles/resourcemanager.projectIamAdmin |
特定のプロジェクトの利用資格を作成・管理する場合に必要 |
権限付与の申請・承認に必要な権限
| 操作 | 必要なロール | 備考 |
|---|---|---|
| 権限付与のリクエスト(申請) | roles/privilegedaccessmanager.viewer |
利用資格で「リクエスト元のプリンシパル」として指定されたユーザであれば申請可能 |
| 権限付与の承認 | roles/privilegedaccessmanager.viewer |
利用資格で「承認者のプリンシパル」として指定されたユーザであれば承認可能 |
監査ログの確認に必要な権限
| 目的 | 必要なロール | ロールID | 備考 |
|---|---|---|---|
| 監査ログの閲覧 | ログ閲覧者 | roles/logging.viewer |
Cloud Audit LogsでPAMの操作履歴を確認する場合に必要 |
| プライベートログの閲覧 | プライベートログ閲覧者 | roles/logging.privateLogViewer |
データアクセス監査ログなど、プライベートログを確認する場合に必要 |
その他の重要なロール
| ロール名 | ロールID | 用途・目的 |
|---|---|---|
| Privileged Access Manager サービス エージェント | roles/privilegedaccessmanager.serviceAgent |
PAMのサービスエージェントに自動付与される。特権昇格処理の管理、拒否ポリシーおよびVPC Service Controls対応 |
アーキテクチャ概要図
今回検証するPrivileged Access Managerを使用した一時的な権限昇格の構成図です。

- まず、Privileged Access Managerの管理者が利用資格を作成します。
- 一時的な権限を利用したい申請者は、Privileged Access Managerの管理者が作成した利用資格の利用申請を挙げます。
- 利用申請を上げると承認者へメール通知が届きます。
- 承認者は申請内容を確認の上、申請の承認・拒否を選択します。
- 申請内容が承認されると一時的な権限が申請者に付与されます。
- 申請者は一時的な権限を利用してGoogle Cloudサービスへアクセスすることができます。
- 申請フローや申請内容が承認・拒否などの履歴は監査ログとしてCloud Audit Logsへ記録されます。
Privileged Access Managerを試してみた
前提条件
- Google Cloudプロジェクトはすでに作成済みとします。
- 以下のAPIを事前に有効化しておきます。
cloudresourcemanager.googleapis.com: プロジェクトリソース管理privilegedaccessmanager.googleapis.com: Privileged Access Manageriam.googleapis.com: IAM権限管理
gcloud services enable \
cloudresourcemanager.googleapis.com \
privilegedaccessmanager.googleapis.com \
iam.googleapis.com
Privileged Access Managerの利用準備
- 【IAMと管理】→【Privileged Access Manager】に移動し【PAMを設定】をクリック

- 初めてPrivileged Access Managerを利用する場合、【Privileged Access Manager の設定】として、PAMのサービス エージェントへPrivileged Access Managerサービスエージェントのロール付与を求められますので、【ロールを付与】をクリックします。

- ロールが付与されると、【設定を完了】が表示されるのでクリックします。

- ここまでの設定を完了するとPrivileged Access Managerの管理コンソールが表示されます。

利用資格の作成
利用資格の作成を行っていきます。
利用資格は、Privileged Access Managerの管理者が誰が、どのリソースに、どの権限を、どのような条件でリクエストできるかを定義するエンティティです。今回は、普段Cloud RunとCloud Loggingへのアクセス権がないエンジニアが、急遽本番環境にデプロイされているCloud Runの障害調査と復旧を行う想定で、利用資格を作成していきます。
-
管理コンソールから【利用資格】→【作成】をクリックします。

-
【利用資格の詳細】にいくつか情報を入力していき、【次へ】をクリックします。
- 資格名:troubleshooting-for-cloud-run
- リソース:プロジェクト名
- ロール:プライベートログ閲覧者、Cloud Runデベロッパー
- 権限を付与する最大時間:3時間
- 管理者の通知の受信者:自身のメールアドレス

- 【リクエスト元の追加】にいくつか情報を入力していき、【次へ】をクリックします。
- リクエスト元のプリンシパル:権限付与のリクエストを行うユーザのメールアドレス
- リクエスト元の正当な理由が必要:チェック(リクエスト時に申請理由の入力が必須になる)
- リクエスト通知の受信者:自身のメールアドレス

- 【承認者の追加】にいくつか情報を入力していき、【次へ】をクリックします。
- 承認なしでアクセスを有効化:チェックしない
- 承認者の正当な理由が必要:チェック
- 承認者のプリンシパル:自身のメールアドレス
- 承認通知の受信者:自身のメールアドレス

- 内容を確認し、【利用資格の作成】をクリック

- 利用資格が作成されていました。

権限付与申請
-
Privileged Access Managerを利用して権限付与申請を行う申請者としてGoogle Cloudコンソールへアクセスします。まず、事前に【Cloud Run】と【Cloud Logging】に対するアクセス権限がないことを確認します。Cloud Runのコンソール画面へ遷移すると、【アクセスが拒否されました】と表示されました。

-
同様にCloud Loggingのコンソール画面へ遷移すると、【権限が拒否されました】と表示されました。

-
Privileged Access Managerの管理コンソールから【利用資格】タブの【自分の資格】欄に先ほど管理者として作成した【troubleshooting-for-cloud-run】が表示されていることを確認し、【権限付与をリクエスト】をクリックします。

-
【権限付与の期間】と【理由】に入力し、【権限付与をリクエスト】をクリックします。

-
権限付与をリクエストし、承認・拒否の判断が下りるまでは【Approval Awaited】というステータスの状態になります。

権限付与申請の承認
- 権限付与がリクエストされると承認者には、以下のように承認するか、拒否するかを判断するように
pam-noreply@google.comからメールが来ますので、【Approve or deny grant】をクリックします。

- Privileged Access Managerの管理コンソール上の【権限付与を承認】タブで【承認待ち】のステータスで先ほど権限付与をリクエストしたものが確認することができますので、【承認・拒否】をクリックします。

- コメントに承認理由を入力し、【承認】をクリックします。

- 承認作業が完了すると、【承認履歴】に申請内容が表示され、承認時のコメントや、アクションを確認することができます。

- Privileged Access Managerを利用して権限付与申請を行う申請者として再度Google Cloudコンソールへアクセスし、管理コンソールを確認すると、ステータスが【Active】へ切り替わっており、有効時間も30分からスタートし、時間が減少していることがわかります。

-
再度、Cloud Runへアクセスを行うと、先ほどの【アクセスが拒否されました】の表示がなくなり、コンテナのデプロイや関数の作成等ができるようになっていました。

-
Cloud Loggingも同様に権限エラーなくログの表示を行うことができています。

-
30分経過後にCloud RunとCloud Loggingへアクセスを試みると、Privileged Access Managerによる一時的な権限が失われているので、それぞれPrivileged Access Managerの検証前の権限エラーの状態になっていました。
Cloud Audit Logsでの監査ログの確認
Privileged Access Managerのすべての操作は、Cloud Audit Logsに記録されます。
先ほどの一連の承認フローもPrivileged Access Managerの管理コンソール上の【監査ログ】タブから確認することができます。

以下のような記録内容が監査ログ上に記録されるので誰が・いつ・なにをしたのか監査ログ上から確認することができます。
- 権限リクエストの作成
- 承認者による承認/拒否
- 権限の付与と失効
- リソースへのアクセス履歴
最後に
今回は、Google CloudのPrivileged Access Managerを使用して、一時的に昇格されたアクセス権を付与する方法を紹介しました。
従来のIAM権限では、不要な期間も高い権限を持ち続けることになり、セキュリティリスクとなっていました。また、自前で一時的な権限を付与するツールを構築していた方も多いのではないでしょうか。Privileged Access Managerを利用することで、マネージドで必要な時にのみ一時的な権限を付与し、セキュリティを向上させることができます。
個人的には監査ログの確認も管理コンソール上から確認できる点が非常に使いやすくてよいと感じています。
特に、本番環境への管理者アクセスや、定期メンテナンス作業など、一時的に高い権限が必要な場合には、積極的にPrivileged Access Managerを利用するようにしていただければと思います。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部コンサルティング部の渡邉でした!






