本文介紹了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.
出現該問題的原因及解決方案如下:
- 該RAM使用者缺少允許STS扮演角色的權限原則。
請為該RAM使用者添加系統策略(AliyunSTSAssumeRoleAccess)或自訂策略。更多資訊,請參見為RAM使用者授權或能否指定RAM使用者具體可以扮演哪個RAM角色。
- RAM角色的信任策略不包含您正在使用的RAM使用者,即RAM角色不允許該RAM使用者扮演。
請為RAM角色添加允許該RAM使用者扮演的信任策略。更多資訊,請參見修改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?
- 登入RAM控制台。
- 在左側導覽列,選擇 。
- 單擊目標RAM角色名稱。
- 在基本資料地區,查看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的許可權:指定角色的許可權與調用AssumeRole介面時所設定的Policy
的交集。
STS Token的有效期間是多久?
STS Token的有效期間最小值為900秒,最大值為角色最大會話時間設定的值,預設值為3600秒。
- 您可以通過AssumeRole介面的DurationSeconds參數來限制STS Token的有效期間。
- 您可以通過控制台或API設定角色最大會話時間。更多資訊,請參見設定RAM角色最大會話時間。
STS擷取的多個Token是否同時有效?
STS Token在到期之前都是有效,無論是否建立了新的STS Token。
STS Token發生泄露時如何處理?
如果您通過扮演RAM角色擷取的安全性權杖(STS Token)發生泄露,您可以按以下步驟回收所有已經頒發的STS Token。
- 使用阿里雲帳號登入RAM控制台。
- 移除RAM角色的所有權限原則。
具體操作,請參見為RAM角色移除許可權。
- 刪除RAM角色。
具體操作,請參見刪除RAM角色。
刪除RAM角色後,所有通過扮演該RAM角色擷取的且未到期的STS Token都將立即失效。
如果您還需要使用該角色,您可以重新建立同名角色並授權相同的權限原則,使用新建立的角色繼續完成您的任務。
STS Token的長度有最大值限制嗎?
阿里雲STS服務返回的安全性權杖(STS Token)的長度不固定,強烈建議您不要假設安全性權杖的最大長度。