全部產品
Search
文件中心

:RAM和STS介紹

更新時間:Jun 30, 2024

RAM(Resource Access Management)是阿里雲提供的系統管理使用者身份與資源存取權限的服務。STS(Security Token Service)是阿里雲提供的一種臨時存取權限管理服務。RAM提供RAM使用者和RAM角色兩種身份。其中,RAM角色不具備永久身份憑證,而只能通過STS擷取可以自訂時效和存取權限的臨時身份憑證,即安全性權杖(STS Token)。

瞭解RAM和STS的功能特性和優勢,請參見什麼是存取控制什麼是STS

背景介紹

RAM和STS解決的一個核心問題是如何在不暴露主帳號的AccessKey的情況下,安全地授權他人訪問。因為一旦主帳號的AccessKey被泄露,會帶來極大的安全風險:獲得該帳號AccessKey的人可任意操作該帳號下所有的資源,盜取重要訊息等。

RAM提供的是一種長期有效許可權控制機制。通過建立RAM使用者,並授予RAM使用者相應的許可權,將不同的許可權分給不同的使用者。RAM使用者的 AccessKey也不能泄露。即使RAM使用者泄露也不會造成全域的資訊泄露。一般情況下,RAM使用者長期有效。

相對於RAM提供的長效控制機制,STS提供的是一種臨時訪問授權。通過調用STS,獲得臨時的AccessKey和Token。可以將臨時AccessKey和Token發給臨時使用者,用來訪問相應的資源。從STS擷取的許可權會受到更加嚴格的限制,並且具有時間限制。因此,即使出現資訊泄露的情況,影響相對較小。

使用情境樣本,請參見使用樣本

基本概念

使用RAM和STS涉及的基本概念,請參見存取控制相關概念

RAM使用者和角色可以類比為個人和其身份的關係。如,某人在公司的角色是員工,在家裡的角色是父親。同一人在不同的情境扮演不同的角色。在扮演不同角色的時候,擁有對應角色的許可權。角色本身並不是一個操作的實體,只有使用者扮演了該角色之後才是一個完整的操作實體。並且,一個角色可以被多個不同的使用者同時扮演。

使用樣本

為避免阿里雲帳號的AccessKey泄露而導致安全風險,某阿里雲帳號管理員使用RAM建立了兩個RAM使用者,分別命名為A和B,並為A和B產生獨立的AccessKey。A擁有讀許可權,B擁有寫入權限。 管理員可以隨時在RAM控制台取消RAM使用者的許可權。

現在因為某些原因,需要授權給其他人臨時訪問物聯網平台介面的許可權。這種情況下,不能直接把A的AccessKey透露出去,而應該建立一個角色C,並給這個角色授予讀取物聯網平台介面的許可權。但請注意,目前角色C還無法直接使用。因為並不存在對應角色C的AccessKey,角色C僅是一個擁有訪問物聯網平台介面許可權的虛擬實體。

需調用STS的AssumeRole介面,擷取訪問物聯網平台介面的臨時授權。在調用STS的請求中,RoleArn的值需為角色C的Arn。如果調用成功,STS會返回臨時的AccessKeyId、AccessKeySecret和SecurityToken作為訪問憑證(憑證的到期時間,在調用AssumeRole的請求中指定)。將這個憑證發給需要訪問的使用者,該使用者就可以獲得訪問物聯網平台介面的臨時許可權。

為什麼RAM和STS的使用這麼複雜?

雖然RAM和STS的概念和使用比較複雜,但這是為了帳號的安全性和許可權控制的靈活性而犧牲了部分易用性。

將RAM使用者和角色分開,主要是為了將執行操作的實體和代表許可權集合的虛擬實體分開。如果某使用者需要使用多種許可權,如讀/寫入權限,但是實際上每次操作只需要其中的一部分許可權,那麼就可以建立兩個角色。這兩個角色分別具有讀或寫入權限。然後,建立一個可以扮演這兩個角色的RAM使用者。當使用者需要讀許可權的時候,就可以扮演其中擁有讀許可權的角色;使用寫入權限的時候同理。這樣可以降低每次操作中許可權泄露的風險。而且,通過扮演角色,可以將角色許可權授予其他使用者,更加方便了協同使用。

STS對許可權的控制更加靈活。如按照實際需求設定有效時間長度。但是,如果需要一個長期有效臨時訪問憑證,則可以只適用RAM使用者管理功能,而無需使用STS。

在後面的章節中,我們將提供一些RAM和STS的使用指南和使用樣本。如果您需要瞭解更多RAM和STS的代碼詳情,請參見RAM APISTS API