日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

創建并授權STS用戶

本文主要介紹RAM角色(STS用戶)背景信息、基本概念、如何創建RAM角色及RAM角色授權。

背景信息

在使用5G互聯平臺產品時,如果有跨賬號使用和臨時使用的場景,可以通過創建RAM角色(STS用戶)來實現,且RAM角色具有一定的規避風險的能力:

  • 使用STS Token,減少長期訪問密鑰(Accesskey)泄露的風險。

  • STS Token具有時效性,可以自定義有效期,到期后將自動失效,無需定期輪換。

  • 可以為STS Token綁定自定義權限策略,提供更加靈活和精細的云資源授權。

基本概念

RAM角色(STS用戶)是一種虛擬用戶,沒有確定的身份認證密鑰,需要被一個受信的實體用戶扮演才能正常使用,根據可信實體的不同,支持三種類型的角色:阿里云賬號、阿里云服務、身份提供商。

根據產品的特性,我們推薦使用信任阿里云賬號的方式進行使用。扮演的阿里云賬號可以是屬于自己的賬號,也可以是其他賬號(解決跨賬號問題),同時可以通過令牌來解決臨時使用的問題。

創建RAM角色

  1. 使用阿里云主賬號,或具有管理員權限的RAM用戶、RAM角色登錄RAM控制臺

  2. 單擊左側導航欄的角色,在角色頁面單擊創建角色,類型選擇阿里云賬號,單擊下一步;

  3. 輸入角色名稱和備注之后,選擇信任的云賬號,單擊完成

RAM角色授權

首先需要創建一個RAM用戶,并對該用戶授予創建STS令牌的權限。

  • 創建RAM用戶。

  • 在權限策略中對該RAM用戶授權系統策略,AliyunSTSAssumeRoleAccess。

獲取STS令牌

獲取令牌的方式為SDK的方式獲取。獲取令牌時,也獲取到了該RAM角色的AccessKeyId和AccessKeySecret。

前提條件:

  • 創建RAM用戶,且創建了該RAM用戶的AccessKey;

  • 對該RAM用戶授權AliyunSTSAssumeRoleAccess。

獲取步驟:

  • 首先在項目的pom.xml文件中加入如下依賴項:

<dependencies>
    <dependency>
        <groupId>com.alibaba.fastjson2</groupId>
        <artifactId>fastjson2</artifactId>
        <version>2.0.12</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-sts</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.4.6</version>
    </dependency>
</dependencies>
  • JAVA SDK 實例:

import com.alibaba.fastjson2.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.sts.model.v20150401.*;

public class STS {
    public static void main(String[] args) {
        //構建一個阿里云客戶端,用于發起請求。
        //構建阿里云客戶端時需要設置AccessKey ID和AccessKey Secret。
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
        IAcsClient client = new DefaultAcsClient(profile);

        //構造請求,設置參數。
        AssumeRoleRequest request = new AssumeRoleRequest();
        request.setRegionId("cn-hangzhou");
        request.setRoleArn("<RoleArn>");
        request.setRoleSessionName("<RoleSessionName>");
        request.setDurationSeconds(1800L);//設置令牌可使用時長(單位:秒),不能超過控制臺設置的最大會話時間

        //發起請求,并得到響應。
        try {
            AssumeRoleResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSONString(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }

    }
}
說明

RoleArn獲取方式為:在RAM訪問控制臺,單擊創建的角色名稱可查看詳情,詳情中有ARN,格式為:acs:ram::<阿里云主賬號ID>:role/<角色名>

關于令牌生效時長:在RAM訪問控制臺,單擊創建的角色名稱可查看詳情,詳情中有最大會話時間,設置的時間范圍為3600~43200 秒,默認為3600秒,在獲取STS token時,DurationSeconds可以配置的范圍為900~最大會話時間,如果超出該范圍,則會提示【The Min/Max value of DurationSeconds is 15min/1hr.】

說明

如果在通過SDK的方式獲取STS令牌時報如下提示:

ErrCode:NoPermission

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

原因在于沒有給RAM用戶授權AliyunSTSAssumeRoleAccess,或者使用的是主賬號。