Privileged Access Manager(PAM)を解説!

記事タイトルとURLをコピーする

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 では承認ワークフローを用いた特権付与ができるため、不正な特権の付与を未然に防ぐこともできます。

また、過去のワークフローの内容は監査ログから確認ができるため、権限付与の妥当性の検証も簡易に実施できます。

Preview 版のサービスに関する注意点

PAM は、記事が執筆された2024年5月時点でプレビュー版であり、本番環境での利用は推奨されておりません。プレビュー版のサービスを使うことに関しての注意点は、以下の記事を参照ください。

blog.g-gen.co.jp

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エンジニアとして、要件定義〜保守運用まで全工程に従事。
フルスタックな人材を目指し、日々邁進。