訪問控制
訪問控制(認證和授權服務),簡稱CIAM。
CIAM是資源訪問控制服務,主要作用在於集中管理子賬號,控制子賬號可以訪問哪些資源,透過CIAM,解決了公有云環境中如下兩個安全問題:
- 每次的API呼叫者是否為可信實體
- 呼叫API的可信實體是否被授權訪問資源
應用場景與實踐
IAM使用場景
使用場景:企業使用者賬號管理與分權
場景描述
企業A的某專案上雲,購買了多種雲資源(如CEC例項/CLB例項/COS物件儲存桶等)。專案裡有多個員工需要操作這些雲資源,比如有的負責購買,有的負責運維等。由於每個員工的工作職責不一樣,需要的許可權也不一樣。出於安全或信任的考慮,專案負責人不希望將雲賬號金鑰直接透露給員工,而希望能給員工建立相應的子賬號。使用者賬號只能在授權的前提下操作資源,不需要對子賬號進行獨立的計量計費,所有開銷都從A的賬戶中扣除。同時,A隨時可以撤銷子賬號的許可權,也可以隨時刪除其建立的子賬號。
需求說明
- 杜絕多員工共享主賬號,防止主賬號密碼或AK洩露導致風險不可控
- 給不同員工分配獨立使用者賬號,並獨立分配許可權,做到責權一致
- 所有使用者賬號的所有操作行為可審計
- 無需核算每個操作人員的成本,所有費用統一計入主賬號賬單
解決方案
使用IAM使用者賬號與授權管理功能,如下圖所示:
CIAM最佳實踐
不要為主賬戶建立訪問金鑰
由於主賬戶對名下資源有完全控制權限,所以為了避免因訪問金鑰洩露所帶來的災難性損失,我們不建議建立主賬號訪問金鑰並使用該金鑰進行日常工作。只要主賬戶不主動建立訪問金鑰,賬號名下的資產安全風險可控。
將控制檯使用者與API使用者分離
不建議給一個CIAM子使用者同時建立用於控制檯操作的登入密碼和用於API操作的訪問金鑰。通常只給員工建立登入密碼,給系統或應用程式只建立訪問金鑰。
撤銷使用者不再需要的許可權
當一個使用者由於工作職責變更而不再使用許可權時,您應該及時將該使用者的許可權進行撤銷。這樣,如果在不知情的時候,當用戶的訪問憑證洩露時對您帶來的安全風險最小。
使用使用者組給IAM使用者分配許可權
一般情況下,您不必對CIAM子使用者直接繫結許可權策略,更方便的做法是建立與人員工作職責相關的使用者組(如admins、developers、accounting等),為每個使用者組繫結合適的許可權策略,然後將子使用者加入這些使用者組,使用者組內的所有使用者共享相同的許可權。這樣,如果您需要修改使用者組內所有人的許可權,只需在一處修改即可。當您的組織人員發生調動時,您只需更改使用者所屬的使用者組即可。
遵循最小授權原則
最小授權原則是安全設計的基本原則。當您需要給使用者授權時,請授予剛好滿足他工作所需的許可權,不要過渡授權。比如,在您的組織中,如果Developers組員(或者一個應用系統)的工作職責只需要讀取COS儲存桶裡的資料,那麼就只給這個組(或應用系統)授予COS資源的只讀許可權,而不要授權COS資源的所有許可權,更不要授予對所有產品資源的訪問許可權。