GCP IAM Security — 使用 PAM 強化特權帳號管理

Kuro Huang
資安工作者的學習之路
11 min readNov 27, 2024

2024 年 GCP 出了一個我非常喜歡的資安服務 — 特權存取管理(PAM),PAM(Privileged Access Management)與 MFA(多因子驗證)的目標不同,PAM 是特權帳號的管理,這是資安領域的重要議題。在許多企業中常見到不良的權限管理習慣,例如每位內部使用者甚至外部廠商都被長期授予過高權限,而缺乏適當的稽核與控制。但其實我們有更好的方式暫時去授予所必要的權限,並能自動收回還具有稽核軌跡,這就是 PAM 的好處了!

本篇文章英文版連結(English Version) :GCP IAM Security — Enhancing Privileged Account Management with PAM

傳統地端服務

在傳統地端環境中,PAM 通常要買很貴的解決方案。然而雲端平台如 Azure 和 GCP,則提供了更易於部署且便宜或不用費用的 PAM 解決方案。例如,Azure 提供的 Privileged Identity Management (PIM),以及 GCP 的 Privileged Access Manager (PAM) 功能有一點類似,AWS 可惜一點沒整合的很好。但這類型功能讓企業能在雲端環境中實作臨時特權存取的管理,協助企業建立更安全的雲端環境,節省掉許多帳號管理的時間成本!

本次主要目標是希望能讓資安管理人員稍微理解雲端的一些解決方案是如何實作出來,所以會簡單能理解當作目標,故用字遣詞不會很精確,能以好理解為主。

Azure PIM https://www.microsoft.com/zh-tw/security/business/security-101/what-is-privileged-access-management-pam

這篇文章會大概介紹 GCP-PAM 的概念、功能,並透過實作範例,帶您了解如何利用 PAM 來強化 GCP 環境的安全性,更能理解 GCP 內建的 PAM 機制能帶來什麼好處。

MFA vs. PAM

MFA 與 PAM 是解決不同資安問題的技術。 GCP 的 PAM 則側重於對特權帳號臨時授權的管理,確保即使登入成功,也只能在必要的範圍內操作。混淆這兩者可能導致潛在的權限濫用風險未被妥善管理。

You can use Privileged Access Manager (PAM) to control just-in-time temporary privilege elevation for select principals, and to view audit logs afterwards to find out who had access to what and when.

Just-in-time

CISSP CBK 書中敘述:

(JIT) identity and access management has two primary use cases, and both focus on provisioning access only when needed. A user’s account provides the same level of access to the legitimate user and an attacker who has compromised the credentials, and JIT identity is a way to reduce some of this insider threat

JIT is often implemented as an element of privileged account management (PAM),which deals with the management of credentials for privileged accounts such as systemadministrators. Due to the broad, and potentially disruptive, authorizations given to suchusers, it is advisable to follow the principle of minimum necessary access and heavilyrestrict these permissions.

為什麼需要GCP-PAM?

  • 最小權限原則: 確保每個使用者僅擁有完成工作所需的最小權限,降低風險。
  • 臨時權限: 提供 Just-in-Time (JIT) 的臨時權限,減少權限暴露時間。
  • 稽核追蹤: 記錄所有存取活動,方便追蹤和分析。
  • 整合 GCP 服務: 深度整合 GCP 的各種服務,提供全面的權限管理。
  • 符合法規: 協助企業符合各種資安法規的要求。

GCP-PAM 的核心概念

  • Resources: GCP中的各種資源,例如專案、虛擬機器、儲存桶等。
  • Permissions: 角色所擁有的具體權限,例如讀取、寫入、刪除等。
  • Entitlements: 將角色賦予特定資源的規則,可設定有效期限、條件等。
  • Requests: 使用者請求臨時權限的申請。

實作流程

  1. 啟用PAM: 在目標專案、資料夾或組織中啟用 PAM 服務。
  2. 建立Role: 定義所需的角色,並賦予相應的權限。
  3. 建立Entitlements: 將角色與資源綁定,設定有效期限、條件等。
  4. 請求權限: 使用者提出權限請求,管理員審核並批准。
  5. 使用權限: 使用者在批准的期限內執行相關操作。
  6. 稽核追蹤: 定期檢視稽核日誌,確保安全性。

實作說明

管理者視角

首先,我們要到IAM內啟用PAM功能後,點擊 “Create”

這邊視角是管理員(可以Approve權限申請的人)

建立 Entitlement:

這邊首先要命名該 Entitlement,並思考要授予什麼權限,你可能有外部廠商連入做特定資源或是程式的維護,針對廠商所需的業務去思考授予哪些權限,在 Role 與 IAM Condition 做詳細限制,使用時間應思考該業務可能所需多久,開放過多權限與過長時間都有其風險存在

這邊以 Browser 的 Role 為示範 ,並設定對方請求權限後最多四小時會收回該權限

新增 request 可勾選需要 justification,而 Requesters 也可以是為 Group 或Principals ,這邊是輸入一個已經存在的使用者當範例,只是該帳號權限原本比較少,透過這個申請可以獲取 Browsers 權限,同樣 Approvers 也可以設定誰能擔任 Approvers

新增完畢後就可以看到這個 Entitlements 已被建立,也能看到誰可申請權限、誰能同意該權限申請

申請者視角

這時候我們切到申請者視角 (要申請權限那方)

同樣到 IAM 的 PAM 可看到 REQUEST GRANT,按下去

這時候會跳出申請表,填寫相關資訊後送出申請

管理者視角

我們切換回管理員帳號,會看到有一筆申請等待 Approve,點進去該申請表即可看到詳細資訊與申請原因

申請完成後檢視 IAM 目前狀況,會發現該使用者的權限已經新增 Broswer,並顯示是由 PAM 所建立,這種自動化過程比「工人」智慧好多了

檢視 PAM 的 Audit Logs,可以追蹤所有授權與操作過程,包括使用者的手動操作與系統的自動化流程。此外,若需要提前移除申請者的臨時權限,可透過該 Entitlement 的設定頁進行權限撤銷(Revoke)

Summary

GCP-PAM 提供了一套完善的機制,協助大家有效管理特權帳號,降低資安風險。建議在實際的 GCP 專案中部署並測試 PAM 功能,從而有效提升雲端環境的安全性。

AWS 何時才可以做出比較方便的 PAM 服務呢~

參考與延伸閱讀

Cloud Computing

我想把各種經驗寫出來做分享教學,希望把社群的分享風氣帶出來給大家。並期望之後有人也可以寫出不同的心得文,如果是自修同學對於申請考試和準備上有任何問題,可以透過 LinkedIn 交朋友與 Facebook 來聯絡我,能力範圍內盡量幫你解決(或是你想認識我出來喝杯咖啡也歡迎,我很喜歡多認識業界的朋友們交流,也真的不少人找我聊聊過了!)。

--

--

資安工作者的學習之路
資安工作者的學習之路

Published in 資安工作者的學習之路

業餘資安寫手,希望透過紀錄所學的知識來回饋於社群上,互相學習分享。個人介紹參考 https://portaly.cc/kurohuang

Kuro Huang
Kuro Huang

Written by Kuro Huang

對教育充滿期待的資安從業者,現任ISC2台北分會理監事,希望對資安社群盡一點心力。期望自己與各位夥伴能有所進步,歡迎喝咖啡聊資安。希望保持著定期參與資安社群活動。個人介紹 https://portaly.cc/kurohuang

No responses yet