Security Token Service (STS) is an Alibaba Cloud service that provides short-term access credentials for Alibaba Cloud accounts or RAM users. In addition to upload URLs and credentials, specific upload methods allow you to use STS tokens for access control. This topic describes the principles and usage notes of STS tokens. This topic also describes how to obtain STS tokens.
How it works
You can use STS to issue an STS token to a third-party user. An STS token is an access credential with a custom validity period and limited access permissions. Then, the third-party user can use the short-term STS token to call API operations of ApsaraVideo VOD.
Usage notes
You can select STS tokens or upload URLs and credentials based on the benefits of the two access methods. For more information about the comparison between the two methods, see Comparison between credentials and STS. For more information about upload URLs and credentials, see Upload URLs and credentials.
Take note of the following differences when you determine whether to use STS tokens or upload URLs and credentials:
If a user uploads a media file by using an STS token, the user must construct an upload request that includes the STS token and a temporary AccessKey pair.
If a user uploads a media file by using an upload URL and an upload credential, the user can directly specify the AccessKey pair of an Alibaba Cloud account or a RAM user in the upload request.
The following table describes the support for STS tokens by different upload methods.
Upload method | Support for STS tokens | References |
Supported only by the server upload SDK for Java | For more information about how to obtain STS tokens, see Obtain an STS token. For more information about how to use STS tokens to upload media files, see the topics of different upload methods. | |
Supported | ||
N/A | ||
You can use only STS tokens when you upload media files by using OSS SDKs. | ||
N/A |
Obtain an STS token
We recommend that you integrate the STS SDK and call AssumeRole to obtain the STS token. This frees you from complex signature calculations. Before you integrate the STS SDK, you must create a RAM user and assign a role that has the permissions to access ApsaraVideo VOD to the RAM user.
Create a RAM user. For more information, see Use STS to upload videos.
Optional. Attach custom authorization policies to the RAM user. For more information, see Create a custom policy.
Integrate the STS SDK and call the AssumeRole operation to obtain an STS token. The substeps of this step vary based on the programming language of the server.
Programming language of the server
References
Java
NoteThe following section provides sample code in Java.
Python
PHP
.NET
Node.js
Go
Sample code in Java
Sample Java code on how to obtain an STS token
The following sample code describes how to obtain an STS token by using the STS SDK V3.1.1. For more information about how to integrate other versions of the STS SDK, see STS SDK overview.
Integrate the STS SDK.
Call the AssumeRole operation to obtain an STS token.
Parameter
Description
RoleArn
The Alibaba Cloud Resource Name (ARN) of the role that you want to assign to the RAM user. After you create a role for a RAM user, you can obtain the ARN of the role from the RAM console: In the left-side navigation pane, choose
. On the Roles page, click the name of the role. In the Basic Information section, copy the ARN.RoleSessionName
The name of the role session. Set this parameter based on your business requirements. In most cases, you can set this parameter to the identity of the API caller. For example, you can specify a username. In ActionTrail logs, you can distinguish the users who assume the same RAM role to perform operations based on the value of the RoleSessionName parameter. This way, you can perform user-specific auditing. The value must be 2 to 64 characters in length, and can contain letters, digits, periods (.), at signs (@), hyphens (-), and underscores (_).
Policy
The permissions added when a role is assumed.
NoteThe Policy parameter is used to control the permissions of the temporary access credentials after the user assumes a role. The final permissions obtained by the temporary access credentials are an intersection of the permissions of the role and the permissions specified by the Policy parameter.
The Policy parameter is passed in to improve flexibility. For example, you can set this parameter to specify that only the CreateUploadVideo operation can be called.
DurationSeconds
The validity period of the temporary access credentials. Valid values: 900 to 3600. Unit: seconds.
accessKeyId and accessKeySecret
The AccessKey ID and AccessKey secret of the RAM user that assumes the role.