はじめに

プレビュー中となりますが、Privileged Access Manager という特権管理の仕組みが Google Cloud にはあります。こちらを利用して普段は閲覧のみの権限を付与しておき、申請をすることで変更作業を実施できる権限を付与する、というような運用が可能になります。
本内容で2回に分けて書こうと思いますが、第1回は基本的な機能の説明とし、第2回は AWS のスイッチロールに似た使い方を想定した、利用方法について何パターンか考察してみたいと思います。

PAM の資格情報作成から承認までの流れ

基本的なフローはざっくり纏めると以下のような流れで権限を申請し利用することが可能になります。

PAM 申請想定

それぞれのステップについて、以下に記載していきます。

エンタイトルメント(利用資格)の作成

一時的に権限をもらうための利用資格を作成します。

利用資格作成にあたり、権限は以下が付与されている必要があります。

  • Privileged Access Manager Admin (roles/privilegedaccessmanager.admin)
  • Folder IAM Admin (roles/resourcemanager.folderIamAdmin), Project IAM Admin (roles/resourcemanager.projectIamAdmin), or Security Admin (roles/iam.securityAdmin)

以下のようなイメージで設定を行います。

エンタイトルメント作成

設定にあたり、最低限以下のパラメータが必要になります。

  • 資格名
  • 付与するロール
  • 権限付与する最大期間
  • リクエスト元(権限付与したいプリンシパル)
  • 承認者(承認者無し or 承認者として指定したいプリンシパルを設定する)

注意したい点としては、この先の権限付与リクエストでリクエストする際には、自分は自身のリクエストのみが可能で、例えば、私がAさんを指定したリクエスト(権限付与依頼)を行うことはできません。また、自身を申請者及び承認者にする、自作自演もできませんでしたので、そういったことをしたい場合、承認不要とすることも可能でした。

作成されると、以下の通り自分がリクエスト可能な利用資格を確認できます。

利用可能資格

承認リクエストの作成

次に作成された利用資格に対して権限付与をリクエストします。

リクエストにあたっては以下の権限が必要となります。

  • Privileged Access Manager Viewer (roles/privilegedaccessmanager.viewer)

以下のようなイメージで設定を行います。

権限付与

設定にあたり、以下のパラメータが必要になります。

  • 権限付与する期間(利用資格作成時の最大期間までの枠)
  • 理由(利用資格作成時に必須にしない場合不要)

こちらでリクエストすると承認者を不要として設定していた場合、そのまま権限付与が行われます。

承認

権限付与をリクエストすると、承認者側に承認依頼が届きます。
※承認者は利用資格作成と同様の権限を付与されている場合に承認が可能となります。

以下のようなイメージで設定を行います。

承認リクエスト作成

設定にあたり、以下のパラメータが必要になります。

  • 承認理由(必須にしない場合は不要)
  • 承認

権限付与確認

権限が承認されると、権限付与画面にて承認されたことがわかります。

権限付与承認

また IAM にも以下の通り、PAM で付与されたことがわかるようになっております。

PAM temp grant

纏め

AWS でいうスイッチロールなどの機能もなく、ロールを必要に応じて取り外して利用するような運用も想定されていなかったため、当該機能は待望の機能だったかと思います。
例えば、開発環境、検証環境は強めの権限でも良いものの、本番は承認を得てから強い権限を与える、というような運用をされているケースでは、機能ではなく運用でカバーが求められるケースがありました。
それがこの機能により、より容易且つ、安全な運用を考えるきっかけになる機能だと思いますし、今後、IAM の設計を行い、権限管理を厳密に行うような場合、必要なケースは多くなるのでは、と思う機能でした。
第2回は冒頭にも記載した通り、どんな運用パターンが考えられるか、当該機能の基本を抑えた状態で考えてみたいと思います。