はじめに

プレビュー中となりますが、Privileged Access Manager という特権管理の仕組みが Google Cloud にはあります。こちらを利用して、例えば、IAM 権限として、プロジェクト上での通常利用時は閲覧のみで利用し、変更作業が必要な場合に、申請ベースで権限を一時的に付与するような仕組みを利用することが可能になります。本内容で2回に分けており、第1回は基本的な機能の説明とし、第2回の今回は利用方法について何パターンか考察してみたいと思います。

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

基本的なフローはざっくり纏めると以下のような流れです。

PAM 申請想定

上記を想定される役割や運用に当てはめるといくつか運用ケースが想定できるかと思うので、パターンを考察してみます。

想定パターン

①必要なときに随時必要な利用資格作成パターン

完全に運用時に必要に応じた権限の利用資格(エンタイトルメント)を作成するパターンです。
このパターンでは、利用資格の作成を必要な権限に沿って作成し、その利用資格作成を受けて、権限付与申請、承認と進めるフローとなります。
利用資格の作成と承認の権限が同一であるため、多くのケースでは、同一メンバーが行う形になることから負担が多く、利用申請者が権限を得られるまで、若干道のりが長くなるのではないか、と考えられます。

メリット

  • 必要に応じて作業内容に応じて最小権限などを随時定義できる

デメリット

  • 利用資格の作成も行うため、あらかじめ手順化を行い、利用資格作成に必要と考えられる情報を揃えておく必要がある
  • 承認まで時間を要する
  • 承認時と同等の権限を利用資格作成時も要するため同一メンバーで行う場合、負担が大きくなる

②あらかじめ利用資格作成パターン

通常利用時以外の変更時などに必要な権限は、あらかじめ定義しておき、その定義した Role を付与できるような利用資格として作成しておき、運用の中の必要なタイミングで権限付与申請、承認を行うパターンです。
必要な利用資格を事前に作成しておくことで、権限付与申請、承認、を行うような形となり、運用としても煩雑にならずに運用が可能と感じました。

メリット

  • 利用資格の作成も Terraform や SDK などであらかじめ作成しておき IaC 化なども可能
  • あらかじめ決まったロールであれば、必要なタイミングで権限付与申請から行えるため、運用のコストが軽減可能

デメリット

  • 想定外のロールの付与が必要な場合、利用資格の作成から行う必要があるため、例外作業として行う必要がある。

③あらかじめ利用資格作成及び自動承認パターン

通常利用時に必要な権限は利用資格を作成しておき、必要なタイミングで権限付与申請を行うパターンです。
また、内容や運用方針次第ですが、権限付与申請に対する承認を自動化するパターンです。
②と同様にあらかじめ利用資格を作成しておきます。権限付与申請を、必要な作業前に行い、承認、については自動で行われる形になり、利用者が自由に触りやすい環境となります。なお、必要に応じて承認対応を何らかの形で担保するなどの検討が必要かもしれません。

メリット

  • 利用資格の作成も Terraform や SDK などであらかじめ作成しておき IaC 化なども可能
  • あらかじめ決まったロールであれば、必要なタイミングで権限付与申請から行えるため、運用のコストが軽減可能
  • 権限付与としての承認者は権限付与まで自動化しており、スピード感ある対応が可能

デメリット

  • 想定外のロールの付与が必要な場合、利用資格の作成から行う必要があるため、例外作業として行う必要がある。
  • 上位の権限付与が不要な場合も申請及び承認が行われるリスクがある

想定パターンに対する考察

各パターンを、セキュリティ、権限の柔軟さ、運用の容易さ、スピードで比較してみたところ、以下のような形となりました。

セキュリティ X
権限の柔軟さ
運用の容易さ X
スピード X

どれが一番良いというわけではなく、運用要件に合ったものを選択したり、適切な形として更に④、⑤の案も含めて検討が必要な内容になるかと思います。運用内容に応じて、開発・検証・本番等の環境によっても変わったりする場合もあると思いました。

纏め

プレビューとしてリリースされている PAM に関して、第1回の内容と今回の2回にわけて、機能の紹介と考えられる運用パターンについて、少しご紹介しました。
権限の問題については、この IAM の機能だけとして見るだけではなく、運用の一貫として検討を行う必要がある機能だと感じました。特にプロジェクトに閉じずに、フォルダ含めて権限の付与を行える機能でもあるため、組織構成含めて検討することで使い方によってはより厳格且つ簡略化する運用が可能であることから、個人的にはけっこう活躍の場が多く与えられている機能だと思いました。
ただ、何度も記載している通り、プレビュー中ではあるため、GA 後すぐに推進できるように準備進めておきたいと思います。