安全使用 IAM

本頁向您建議使用 IAM 時應注意的安全最佳做法。

本頁適用於精通 IAM 的使用者。如果您剛開始使用 IAM,本頁說明內容並不會教您如何使用;新使用者請參閱 IAM 快速入門導覽課程

最低權限

❑  
基本角色包含所有 Google Cloud 服務的數千項權限。在正式環境中,除非沒有其他替代方案,否則請勿授予基本角色。請改為授予最受限制的預先定義角色自訂角色,以符合您的需求。

如需取代基本角色,可以使用角色建議,判斷要改授哪些角色。您也可以使用政策模擬器,確保變更角色不會影響主體的存取權。

如要為專案授予更廣泛的權限,可以考慮授予基本角色。舉例來說,您可以授予基本角色,在測試或開發環境中使用。

❑  
將應用程式的每個元件視為單獨的信任範圍。如果您有多項服務需要不同權限,請針對各項服務建立獨立的服務帳戶,然後僅向各個服務帳戶授予所需權限。
❑  
請注意,子項資源的允許政策會沿用父項資源的允許政策。舉例來說,如果專案的允許政策授予使用者管理 Compute Engine 虛擬機器 (VM) 執行個體的權限,則使用者可以管理該專案中的任何 Compute Engine VM,無論您在每個 VM 上設定的允許政策為何。
❑  
依最小需要範圍授予角色。舉例來說,如果使用者只需要發布 Pub/Sub 主題的存取權,請授予使用者該主題的「發布者」角色。
❑  
指定哪些主體可以扮演服務帳戶的角色。如果使用者獲得服務帳戶的「服務帳戶使用者」角色,就能存取服務帳戶有權使用的所有資源。因此,將服務帳戶使用者角色授予使用者時,請務必小心謹慎。
❑  
指定有權在專案中建立及管理服務帳戶的使用者。
❑  
授予專案 IAM 管理員及資料夾 IAM 管理員預先定義角色,就有權修改允許政策,無需允許對所有資源的直接讀取、寫入及管理存取權。

擁有者 (roles/owner) 角色授予主體,可讓主體存取及修改幾乎所有資源,包括修改允許政策。 這樣的權限具有風險。請僅在需要 (近乎) 通用存取權時授予擁有者角色。
❑  
使用條件式角色繫結,讓存取權自動失效,並考慮授予暫時提升的存取權

服務帳戶

❑  
採用服務帳戶最佳做法。確保服務帳戶的權限有限,防範潛在安全威脅。
❑  
請勿刪除執行個體正在使用的服務帳戶。如果您未先改用替代服務帳戶,可能會導致應用程式全部或部分失敗。
❑  
利用服務帳戶的顯示名稱來追蹤服務帳戶的用途和所需權限。

服務帳戶金鑰

❑  
如有其他選項,請避免使用服務帳戶金鑰。 如未妥善管理服務帳戶金鑰,可能會產生安全性風險,請盡可能 選用比服務帳戶金鑰更安全的替代方案。如必須使用服務帳戶金鑰進行驗證,您有責任保護私密金鑰的安全,並執行 管理服務帳戶金鑰的最佳做法一文所述的其他作業。如果無法建立服務帳戶金鑰,可能是因為貴機構已停用這項功能。詳情請參閱「 管理預設安全機構資源」。

如果您是從外部來源取得服務帳戶金鑰,必須先驗證金鑰,才能使用。 詳情請參閱「 外部來源憑證的安全規定」。

❑  
使用 IAM 服務帳戶 API 輪替服務帳戶金鑰。輪替方法是先建立新的金鑰,將應用程式改為使用新金鑰,然後停用舊金鑰。確認不再需要舊金鑰後,即可刪除。
❑  
執行相關程序,管理使用者代管的服務帳戶金鑰。
❑  
請注意不要將加密金鑰與服務帳戶金鑰混淆。加密金鑰通常用於加密資料;服務帳戶金鑰則用於保護 Google Cloud API 的存取權。
❑  
請勿將服務帳戶金鑰簽入來源程式碼,也不要將金鑰留在下載目錄中。

稽核

❑  
使用 Cloud 稽核記錄中的記錄,定期稽核允許政策的變更。
❑  
將稽核記錄匯出至 Cloud Storage 即可長期儲存您的記錄。
❑  
稽核可以變更專案允許政策的使用者。
❑  
使用 記錄角色管理記錄檔存取權。
❑  
將您套用到記錄檔探索工具以傳送記錄的存取政策,套用到 Google Cloud 資源。
❑  
透過 Cloud 稽核記錄中的記錄,定期稽核服務帳戶金鑰的存取權。

政策管理

❑  
如果主體需要存取機構中的所有專案,請在機構層級授予主體角色。
❑  
如果可行,請將角色授予群組,而非個別使用者。更新群組成員比更新允許政策中的主體更容易。