全部產品
Search
文件中心

:AssumeRole - 擷取扮演角色的臨時身份憑證

更新時間:Aug 08, 2025

通過調用AssumeRole介面,擷取一個扮演RAM角色的臨時身份憑證(STS Token)。

介面說明

前提條件

該介面不能使用阿里雲帳號(主帳號)調用,只能使用 RAM 使用者或 RAM 角色調用,請確保已為調用者(RAM 使用者或 RAM 角色)授予 STS 的系統管理權限(AliyunSTSAssumeRoleAccess)。

否則,會報如下錯誤:

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

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

最佳實務

STS Token 自頒發後將在一段時間內有效,建議您設定合理的 Token 有效期間,並在有效期間內重複使用,以避免業務請求速率上升後,STS Token 頒發的速率限制影響到業務。具體速率限制,請參見 STS 服務調用次數是否有上限。您可以通過請求參數DurationSeconds設定 Token 有效期間。

在移動端上傳或下載 OSS 檔案等情境下,其訪問量較大,即使重複使用 STS Token 也可能無法滿足限流要求。為避免 STS 的限流成為 OSS 訪問量的瓶頸,您可以嘗試 OSS 的在 URL 中包含簽名的方案。更多資訊,請參見在 URL 中包含簽名服務端簽名後直傳

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

sts:AssumeRole

get

*Role

acs:ram::{#accountId}:role/{#RoleName}

請求參數

名稱

類型

必填

描述

樣本值

DurationSeconds

integer

Token 有效期間。單位:秒。

Token 有效期間最小值為 900 秒,最大值為要扮演角色的MaxSessionDuration時間。預設值為 3600 秒。

您可以通過 CreateRole 或 UpdateRole 設定角色最大會話時間MaxSessionDuration。更多資訊,請參見 CreateRoleUpdateRole

3600

Policy

string

為 STS Token 額外添加的一個權限原則,進一步限制 STS Token 的許可權。具體如下:

  • 如果指定該權限原則,則 STS Token 最終的權限原則取 RAM 角色權限原則與該權限原則的交集。

  • 如果不指定該權限原則,則 STS Token 最終的權限原則取 RAM 角色的權限原則。

長度為 1~2048 個字元。

關於權限原則元素和樣本,請參見權限原則基本元素權限原則樣本庫

{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}

RoleArn

string

要扮演的 RAM 角色 ARN。

該角色是可信實體為阿里雲帳號類型的 RAM 角色。更多資訊,請參見建立可信實體為阿里雲帳號的 RAM 角色CreateRole

格式:acs:ram::<account_id>:role/<role_name>

您可以通過 RAM 控制台或 API 查看角色 ARN。具體如下:

acs:ram::123456789012****:role/adminrole

RoleSessionName

string

角色會話名稱。

該參數為使用者自訂參數。通常設定為調用該 API 的使用者身份,例如:使用者名稱。在Action Trail日誌中,即使是同一個 RAM 角色執行的操作,也可以根據不同的RoleSessionName來區分實際操作者,以實現使用者層級的訪問審計。

長度為 2~64 個字元,可包含英文字母、數字和特殊字元.@-_

alice

ExternalId

string

角色外部 ID。

該參數為外部提供的用於表示角色的參數資訊,主要功能是防止混淆代理人問題。更多資訊,請參見使用 ExternalId 防止混淆代理人問題

長度為 2~1224 個字元,可包含英文字母、數字和特殊字元=,.@:/-_。正則為:[\w+=,.@:\/-]*

abcd1234

SourceIdentity

string

源身份資訊。

在扮演角色時,可以指定扮演者的源身份(SourceIdentity)作為會話的初始身份標識。 該源身份的值在持續扮演角色的鏈式會話中將一直存在,中途不可更改,可確保操作的可追溯性和安全性。

SourceIdentity 長度為 2~64 個字元,可包含英文字母、數字、以及特殊字元:=,.@-_。正則為:[\w+=,.@-]*。您不能使用以acs:aliyun:alibabacloud: 開頭的值,這些首碼為阿里雲內部使用。

Alice

關於公用請求參數的詳情,請參見公用請求參數

返回參數

名稱

類型

描述

樣本值

object

返回參數。

RequestId

string

請求 ID。

6894B13B-6D71-4EF5-88FA-F32781734A7F

AssumedRoleUser

object

角色扮演時的臨時身份。

AssumedRoleId

string

臨時身份的 ID。

34458433936495****:alice

Arn

string

臨時身份的 ARN。

acs:ram::123456789012****:role/adminrole/alice

Credentials

object

訪問憑證。

SecurityToken

string

安全性權杖。

說明

安全性權杖的長度不固定,我們強烈建議您不要對安全性權杖的最大長度做任何限制。

********

Expiration

string

Token 到期失效時間(UTC 時間)。

2015-04-09T11:52:19Z

AccessKeySecret

string

存取金鑰。

wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****

AccessKeyId

string

存取金鑰 ID。

STS.L4aBSCSJVMuKg5U1****

SourceIdentity

string

源身份資訊。

在扮演角色時,可以指定扮演者的源身份(SourceIdentity)作為會話的初始身份標識。 該源身份的值在持續扮演角色的鏈式會話中將一直存在,中途不可更改,可確保操作的可追溯性和安全性。

如果沒有設定源身份資訊,則該欄位不會返回。

Alice

樣本

正常返回樣本

JSON格式

{
  "RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F",
  "AssumedRoleUser": {
    "AssumedRoleId": "34458433936495****:alice",
    "Arn": "acs:ram::123456789012****:role/adminrole/alice"
  },
  "Credentials": {
    "SecurityToken": "********",
    "Expiration": "2015-04-09T11:52:19Z",
    "AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
    "AccessKeyId": "STS.L4aBSCSJVMuKg5U1****"
  },
  "SourceIdentity": "Alice"
}

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 InvalidParameter.DurationSeconds The Min/Max value of DurationSeconds is 15min/1hr.
400 InvalidParameter.ExternalId The parameter ExternalId is wrongly formed.
400 InvalidParameter.RoleArn The parameter RoleArn is wrongly formed.
400 InvalidParameter.RoleSessionName The parameter RoleSessionName is wrongly formed.
400 InvalidParameter.SerialNumber The parameter SerialNumber is wrongly formed.
400 InvalidParameter.TokenCode The parameter TokenCode is wrongly formed.
400 InvalidParameter.PolicyGrammar The parameter Policy has not passed grammar check.
400 InvalidParameter.PolicySize The size of Policy must be smaller than 2048 bytes.
400 InvalidParameter.ContentType The ContentType request header must be either "application/json" or "application/x-www-form-urlencoded".
500 InternalError STS Server Internal Error happened, please send the RequestId to us.
403 NoPermission You are not authorized to do this action. You should be authorized by RAM.
403 AuthenticationFail.ApiUsername The specified api username is not legal.
403 AuthenticationFail.ApiPassword The specified api password is not legal.
404 EntityNotExist.Role The specified Role not exists .

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情