本文介紹了RAM角色和STS Token的常見問題,為您提供說明和指導。

RAM角色有幾種類型?

根據RAM可信實體的不同,RAM支援以下三種類型的角色:

  • 阿里雲帳號
  • 阿里雲服務
  • 身份供應商

三種類型的RAM角色分別可以被誰扮演?

  • 阿里雲帳號:允許RAM使用者所扮演的角色。扮演角色的RAM使用者可以屬於自己的阿里雲帳號,也可以屬於其他阿里雲帳號。此類角色主要用來解決跨帳號訪問和臨時授權問題。
  • 阿里雲服務:允許雲端服務所扮演的角色。此類角色主要用於解決跨雲端服務授權訪問問題。例如:ECS執行個體RAM角色就是這個類型,其可信實體為ECS服務。更多資訊,請參見藉助於執行個體RAM角色訪問其他雲產品
  • 身份供應商:允許可信身份供應商下的使用者所扮演的角色。此類角色主要用於實現與阿里雲的SSO。

能否指定RAM使用者具體可以扮演哪個RAM角色?

您可以通過建立自訂策略指定RAM使用者具體可以扮演的RAM角色。策略樣本如下所示:

{
    "Statement": [
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Resource": "acs:ram:*:<account-id>:role/<role-name>"
        }
    ],
    "Version": "1"
}
说明
  • 上述自訂策略中的Resource為角色ARN,其中,<account-id>為阿里雲帳號ID,<role-name>為RAM角色名稱。關於如何查看角色ARN,請參見如何查看RAM角色的ARN
  • 將上述自訂策略授權給RAM使用者,便可以指定具體可以扮演的RAM角色。關於如何為RAM使用者授權,請參見為RAM使用者授權

如何查看RAM角色的ARN?

  1. 登入RAM控制台
  2. 在左側導覽列,選擇身份管理 > 角色
  3. 單擊目標RAM角色名稱。
  4. 基本資料地區,查看RAM角色ARN。 RAM角色ARN

為什麼使用STS時會報錯?

如果一個RAM使用者使用API、CLI或SDK調用AssumeRole擷取STS Token時,出現如下報錯資訊:

Error message: You are not authorized to do this action. You should be authorized by RAM.

問題原因和解決方案如下:

  • 該RAM使用者缺少允許STS扮演角色的權限原則:請為該RAM使用者添加系統策略(AliyunSTSAssumeRoleAccess)或自訂策略,詳情請參見能否指定RAM使用者具體可以扮演哪個RAM角色
  • RAM角色的信任策略不包含您正在使用的RAM使用者,即RAM角色不允許該RAM使用者扮演:請為RAM角色添加允許該RAM使用者扮演的信任策略,詳情請參見修改RAM角色的信任策略

STS服務調用次數是否有上限?

AssumeRole介面調用次數限制:每分鐘最多調用6000次,且一個阿里雲帳號及該帳號下的RAM使用者、RAM角色共用這6000次。當請求量超過6000次時,超出部分會報錯,報錯資訊如下:

Request was denied due to user flow control

STS Token的許可權限制是什嗎?

STS Token的許可權:指定角色的許可權與調用AssumeRole介面時所設定的Policy的交集。

说明 若在調用AssumeRole介面時不設定Policy參數,則返回的STS Token將擁有指定角色的所有許可權。

STS Token的有效期間是多久?

STS Token的有效期間最小值為900秒,最大值為角色最大會話時間設定的值,預設值為3600秒。

说明
  • 您可以通過AssumeRole介面的DurationSeconds參數來限制STS Token的有效期間。
  • 您可以通過控制台或API設定角色最大會話時間。更多資訊,請參見設定角色最大會話時間

STS擷取的多個Token是否同時有效?

STS Token在到期之前都是有效,無論是否建立了新的STS Token。

STS Token發生泄露時如何處理?

如果您通過扮演RAM角色擷取的安全性權杖(STS Token)發生泄露,您可以按以下步驟回收所有已經頒發的STS Token。

  1. 使用阿里雲帳號登入RAM控制台
  2. 移除RAM角色的所有權限原則。

    具體操作,請參見為RAM角色移除許可權

  3. 刪除RAM角色。

    具體操作,請參見刪除RAM角色

    刪除RAM角色後,所有通過扮演該RAM角色擷取的且未到期的STS Token都將立即失效。

如果您還需要使用該角色,您可以重新建立同名角色並授權相同的權限原則,使用新建立的角色繼續完成您的任務。