身份是指使用者在系統中的唯一識別碼,憑據是指使用者證明其身份的一組資訊,而授權是決定一個已驗證身份的使用者擁有操作特定資源的許可權的過程。通過身份、憑據、授權即可確保使用者身份的安全性和控制使用者對資源的存取權限。
身份
身份是指使用者在系統中的唯一識別碼,通過身份,系統可以識別使用者的身份,確定其操作許可權。阿里雲的身份類型主要有:阿里雲帳號,RAM使用者,RAM角色。
阿里雲帳號
阿里雲帳號(主帳號)是阿里雲資源歸屬、資源使用計量計費的基本主體。阿里雲帳號為其名下所擁有的資源付費,並對其名下所有資源擁有完全控制許可權。除了一些要求必須使用阿里雲帳號的情境外,我們建議您使用RAM使用者或RAM角色身份存取控制台和調用OpenAPI。
RAM使用者
RAM使用者是RAM的一種實體身份類型,有確定的身份ID和身份憑證,它通常與某個確定的人或應用程式一一對應。更多詳情,請參見RAM使用者概覽。
RAM角色
RAM角色是一種虛擬使用者,可以被授予一組權限原則。與RAM使用者不同,RAM角色沒有永久身份憑證(登入密碼或存取金鑰),需要被一個可信實體扮演。扮演成功後,可信實體將獲得RAM角色的臨時身份憑證,即安全性權杖(STS Token),使用該安全性權杖就能以RAM角色身份訪問被授權的資源。
例如:阿里雲帳號 A 開放了一個 RAM 角色a_rr1,授權 OSS 產品的
FullAccess
,將該 RAM 角色的扮演者指定為阿里雲帳號 B 的 RAM 使用者b_ru1。那麼開發人員可通過登入 B 帳號的 RAM 使用者b_ru1,通過角色扮演 A 帳號的a_rr1,管理 A 帳號的 OSS 資源。更多詳情,請參見RAM角色概覽。
憑據
憑據是指使用者證明其身份的一組資訊。使用者在系統中進行登入時,需要提供正確的憑據才能驗證身份。常見的憑據類型有:
阿里雲主帳號和RAM使用者的永久憑據 AccessKey(簡稱AK)。一組由AccessKey ID和AccessKey Secret組成的金鑰組。
警告由於主帳號 AK 有資源完全的許可權,一旦泄露風險巨大。建議您使用RAM使用者的AccessKey,並設定定期輪換,建立RAM使用者AccessKey的方法請參見建立AccessKey。
阿里雲RAM角色的STS臨時訪問Token,簡稱STS Token。它是可以自訂時效和存取權限的臨時身份憑據,更多詳情,請參見臨時訪問憑證STS概念。
說明臨時身份憑證只有一定的時效,若到期失效,需要再次調用 STS 擷取最新的 STS Token。
Bearer Token。它是一種身分識別驗證和授權的令牌類型。目前只有Cloud Call CenterCCC這款產品支援Bearer Token的憑據初始化方式。您可在鑒權方式配置選擇Bearer Token方式。
憑據如果發生泄漏,可能會給雲上資源及業務帶來巨大的安全隱患,日常營運管理要尤其注意憑據的安全使用。更多詳情,請參見憑據的安全使用方式情節。
授權
授權是指系統管理員或者資源所有者授予使用者(身份)訪問資源的許可權。在使用者身分識別驗證通過之後,系統會根據使用者的身份和許可權來授權其對資源的訪問。
在阿里雲OpenAPI中,每個介面都有其最小存取權限策略,在調用介面前需要確認調用者是否具備對應的許可權。每個介面的最小存取權限策略可通過OpenAPI門戶的API文檔介面自動產生擷取。下圖以阿里雲ECS的RunInstances介面為例。
阿里雲帳號
阿里雲帳號(主帳號)對當前雲帳號下所有雲資源有完全控制許可權,無需授權,也無法修改授權。但是如果該帳號歸屬於某個資來源目錄(Resource Directory),則它可能受到管控策略的限制,詳情參見管控策略概述。
RAM使用者
您可將從 API 文檔中擷取的權限原則授權給RAM使用者。RAM 使用者授權詳情可參見為RAM使用者授權。
RAM角色
RAM角色的授權比RAM使用者授權多一步:
確定可信實體。您可以允許某個雲帳號,或者雲帳號下的某個RAM使用者或RAM角色扮演該角色。
授權。具體授權操作請參見文檔RAM角色概覽。
在對RAM角色進行授權時,需要尤其注意以下兩種情境:
情境一:鏈式扮演
當A帳號的RAM使用者aRamUser1可以扮演B帳號的RAM角色bRamRole1,而B帳號bRamRole1可以扮演C帳號的RAM角色cRamRole1時,雖然沒有授權A帳號可扮演C帳號的cRamRole1,但是通過角色的鏈式扮演,可以實現A帳號的aRamUser1扮演bRamRole1,再由bRamRole1扮演cRamRole1,訪問C帳號資源。
情境二:隱式授權
雲帳號下建立RAM角色時,如果我們選擇授信實體為當前雲帳號,表示預設允許雲帳號下任何一個可以調用
assumeRole
許可權的RAM使用者或RAM角色扮演該RAM角色。如果該RAM角色被授予了很高的許可權,會導致只被賦予了assumeRole
的某個RAM使用者或RAM角色具備很高的許可權。