全部產品
Search
文件中心

Resource Access Management:RAM角色和STS Token常見問題

更新時間:Jun 19, 2024

本文介紹了RAM角色和臨時身份憑證(STS Token)的常見問題,為您提供說明和指導。

使用STS時報錯“You are not authorized to do this action. You should be authorized by RAM.”,如何處理?

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

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

出現該問題的原因及解決方案如下:

AssumeRole介面允許誰調用?

AssumeRole介面用於擷取一個扮演RAM角色的STS Token,該介面僅允許RAM使用者或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服務調用次數是否有上限?

AssumeRole介面調用次數上限:100次/秒。一個阿里雲帳號及該帳號下的RAM使用者、RAM角色共用該介面調用次數上限。

當請求量超過上限時,會返回以下報錯資訊:

  • 錯誤資訊
    錯誤碼錯誤資訊
    Throttling.ApiRequest was denied due to api flow control.
    Throttling.UserRequest was denied due to user flow control.
    ThrottlingRequest was denied due to flow control.
  • 302狀態代碼

當出現以上報錯資訊時,請您減少並發調用次數。如果您的業務情境確實需要更高的並發調用次數,您可以提交工單申請配額。

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

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

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

STS Token的有效期間是多久?

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

說明

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都將立即失效。

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

STS Token的長度有最大值限制嗎?

阿里雲STS服務返回的安全性權杖(STS Token)的長度不固定,強烈建議您不要假設安全性權杖的最大長度。