全部產品
Search
文件中心

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

更新時間:Jun 27, 2025

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

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

調用AssumeRole介面擷取STS Token時,出現如下報錯資訊:

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

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

  • 使用阿里雲帳號(主帳號)調用該介面。

    AssumeRole介面不允許阿里雲帳號(主帳號)調用,請使用RAM使用者或RAM角色調用。

  • 發起調用的RAM使用者或RAM角色缺少允許STS扮演角色的權限原則。

    請為發起調用的RAM使用者或RAM角色添加系統權限原則(AliyunSTSAssumeRoleAccess)或自訂權限原則。自訂權限原則樣本,請參見權限原則樣本

  • 要扮演的RAM角色的信任策略中不包含正在發起調用的RAM使用者或RAM角色。

    請修改要扮演的RAM角色的信任策略,允許發起調用的RAM使用者或RAM角色扮演該RAM角色。更多資訊,請參見修改RAM角色的信任策略

AssumeRole介面允許誰調用?

AssumeRole介面用於擷取一個扮演RAM角色的STS Token,該介面僅允許RAM使用者或RAM角色調用,不允許阿里雲帳號(主帳號)調用。

RAM角色有幾種?分別可以被誰扮演?

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

  • 可信實體為阿里雲帳號的RAM角色:允許RAM使用者或RAM角色扮演的角色。扮演角色的RAM使用者或RAM角色可以屬於自己的阿里雲帳號,也可以屬於其他阿里雲帳號。該類角色主要用於解決跨帳號訪問和臨時授權問題。

  • 可信實體為阿里雲服務的RAM角色:允許雲端服務扮演的角色。分為普通服務角色和服務關聯角色兩種。該類角色主要用於解決跨服務訪問問題。

  • 可信實體為身份供應商的RAM角色:允許可信身份供應商下的使用者所扮演的角色。該類角色主要用於實現與阿里雲的單點登入(SSO)。

如何限制指定RAM使用者扮演指定RAM角色?

  1. 修改RAM角色信任策略。

    在RAM角色的信任策略中,通過Principal指定允許扮演該角色的RAM使用者,其中,<account-id>為阿里雲帳號ID,<user-name>為RAM使用者名稱稱。具體操作,請參見修改RAM角色的信任策略

    信任策略樣本:

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::<account-id>:user/<user-name>"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  2. 為RAM使用者授予角色扮演的許可權。

    為RAM使用者授予系統權限原則(AliyunSTSAssumeRoleAccess)或自訂權限原則,自訂權限原則可以進一步縮小角色扮演的範圍。

    在自訂權限原則中,通過Resource指定允許扮演的RAM角色ARN,其中,<account-id>為阿里雲帳號ID,<role-name>為RAM角色名稱。具體操作,請參見建立自訂權限原則為RAM使用者授權

    權限原則樣本:

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Resource": "acs:ram:*:<account-id>:role/<role-name>"
            }
        ],
        "Version": "1"
    }

如何查看RAM角色的ARN?

  1. 登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 角色

  3. 單擊目標RAM角色名稱。

  4. 基本資料地區,查看RAM角色ARN。 RAM角色ARN

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

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

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

  • 錯誤資訊

    錯誤碼

    錯誤資訊

    Throttling.Api

    Request was denied due to api flow control.

    Throttling.User

    Request was denied due to user flow control.

    Throttling

    Request was denied due to flow control.

  • 302狀態代碼

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

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

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

說明

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

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

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

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

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