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

使用STS臨時授權方案上傳視頻

使用STS臨時授權可以有效避免RAM用戶密碼泄露導致的安全風險,本文介紹如何使用STS臨時授權方案上傳視頻。

步驟一:創建RAM用戶

說明
  • 下述步驟4中,建議您將登錄名稱設置為vod,本文后續描述都以登錄名稱vod為例。

  • 下述步驟5中,建議您訪問方式選擇OpenAPI調用訪問方式。

  1. 使用阿里云賬號(主賬號)或RAM管理員登錄RAM控制臺

  2. 在左側導航欄,選擇身份管理 > 用戶

  3. 用戶頁面,單擊創建用戶

  4. 創建用戶頁面的用戶賬號信息區域,設置用戶基本信息。

    • 登錄名稱:可包含英文字母、數字、半角句號(.)、短劃線(-)和下劃線(_),最多64個字符。

    • 顯示名稱:最多包含128個字符或漢字。

    • 標簽:單擊edit,然后輸入標簽鍵和標簽值。為RAM用戶綁定標簽,便于后續基于標簽的用戶管理。

    說明

    單擊添加用戶,可以批量創建多個RAM用戶。

  5. 訪問方式區域,選擇訪問方式,然后設置對應參數。

    為了賬號安全,建議您只選擇以下訪問方式中的一種,將人員用戶和應用程序用戶分離,避免混用。

    • 控制臺訪問

      如果RAM用戶代表人員,建議啟用控制臺訪問,使用用戶名和登錄密碼訪問阿里云。您需要設置以下參數:

      • 控制臺登錄密碼:選擇自動生成密碼或者自定義密碼。自定義登錄密碼時,密碼必須滿足密碼復雜度規則。更多信息,請參見設置RAM用戶密碼強度

      • 密碼重置策略:選擇RAM用戶在下次登錄時是否需要重置密碼。

      • 多因素認證(MFA)策略:選擇是否為當前RAM用戶啟用MFA。啟用MFA后,主賬號還需要為RAM用戶綁定MFA設備或RAM用戶自行綁定MFA設備。更多信息,請參見為RAM用戶綁定MFA設備

    • OpenAPI調用訪問

      如果RAM用戶代表應用程序,建議啟用OpenAPI調用訪問,使用訪問密鑰(AccessKey)訪問阿里云。啟用后,系統會自動為RAM用戶生成一個AccessKey ID和AccessKey Secret。更多信息,請參見創建AccessKey

      重要

      RAM用戶的AccessKey Secret只在創建時顯示,不支持查看,請妥善保管。

  6. 單擊確定

  7. 根據界面提示,完成安全驗證。

步驟二:為RAM用戶授予調用STS服務AssumeRole接口的權限

  1. 在RAM控制臺的用戶頁面,單擊目標RAM用戶(上述創建的vod用戶)操作列的添加權限

  2. 新增授權面板,為RAM用戶添加權限。

    說明

    vod用戶添加調用STS服務AssumeRole接口的權限策略AliyunSTSAssumeRoleAccess,可通過在系統策略的搜索輸入框中輸入AliyunSTSAssumeRoleAccess查找。

    選擇策略

    1. 選擇資源范圍。

    2. 選擇授權主體。

      授權主體即需要添加權限的RAM用戶。系統會自動選擇當前的RAM用戶。

    3. 選擇權限策略。

      權限策略是一組訪問權限的集合,分為以下兩種。支持批量選中多條權限策略。

      • 系統策略:由阿里云創建,策略的版本更新由阿里云維護,用戶只能使用不能修改。更多信息,請參見支持RAM的云服務

        說明

        系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授權時,盡量避免授予不必要的高風險權限策略。

      • 自定義策略:由用戶管理,策略的版本更新由用戶維護。用戶可以自主創建、更新和刪除自定義策略。更多信息,請參見創建自定義權限策略

    4. 單擊確認新增授權

  3. 單擊關閉

步驟三:創建RAM角色

說明

下述步驟5中,建議您將角色名稱設置為vodrole,本文后續描述都以角色名稱vodrole為例。

  1. 使用RAM管理員登錄RAM控制臺

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

  3. 角色頁面,單擊創建角色

  4. 創建角色頁面,選擇可信實體類型為阿里云賬號,然后單擊下一步

  5. 設置角色信息。

    1. 輸入角色名稱

    2. 輸入備注

    3. 選擇信任的云賬號。

      • 當前云賬號:當您允許當前阿里云賬號下的所有RAM用戶扮演該RAM角色時,您可以選擇當前云賬號

      • 其他云賬號:當您允許其他阿里云賬號下的所有RAM用戶扮演該RAM角色時,您可以選擇其他云賬號,然后輸入其他阿里云賬號(主賬號)ID。該項主要針對跨阿里云賬號的資源授權訪問場景,相關教程,請參見跨阿里云賬號的資源授權

        您可以在安全設置頁面查看阿里云賬號(主賬號)ID。

      重要

      如果您僅允許指定的RAM用戶扮演該RAM角色,而不是阿里云賬號(主賬號)下的所有RAM用戶,您可以采取以下兩種方式:

  6. 單擊完成

  7. 單擊關閉

步驟四:為RAM角色授予管理VOD的權限

  1. 在RAM控制臺的角色頁面,單擊目標RAM角色(上述創建的vodrole角色)操作列的添加權限

  2. 新增授權面板,為RAM角色添加權限。

    說明
    • 為控制風險,建議采用最小權限。

    • 如需vodrole角色可以訪問和管理視頻點播的資源,則建議為vodrole角色添加可以管理和操作視頻點播所有資源的系統策略權限AliyunVODFullAccess,可通過在系統策略的搜索輸入框中輸入AliyunVODFullAccess查找,更多有關視頻點播系統策略的定義及權限信息請參見系統授權策略

    授權

    1. 選擇資源范圍。

    2. 選擇授權主體。

      授權主體即需要添加權限的RAM用戶。系統會自動選擇當前的RAM用戶。

    3. 選擇權限策略。

      權限策略是一組訪問權限的集合,分為以下兩種。支持批量選中多條權限策略。

      • 系統策略:由阿里云創建,策略的版本更新由阿里云維護,用戶只能使用不能修改。更多信息,請參見支持RAM的云服務

        說明

        系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授權時,盡量避免授予不必要的高風險權限策略。

      • 自定義策略:由用戶管理,策略的版本更新由用戶維護。用戶可以自主創建、更新和刪除自定義策略。更多信息,請參見創建自定義權限策略

    4. 單擊確認新增授權

    完成授權后,會生成一條授權成功的記錄。授權成功

  3. 單擊關閉

步驟五:通過STS授權訪問視頻點播

說明

本文僅介紹通過調用API扮演RAM角色獲取并使用安全令牌(STS Token)訪問視頻點播的方法。

使用創建的RAM用戶調用STS APIAssumeRole - 獲取扮演角色的臨時身份憑證獲得RAM角色的安全令牌(STS Token),并使用安全令牌訪問視頻點播API。

本文僅提供Java語言獲取STS臨時Token的代碼示例,有關STS SDK的集成及其他語言的使用說明請參見STS SDK概覽

Java代碼示例

package pop;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoRequest;
import com.aliyuncs.vod.model.v20170321.CreateUploadVideoResponse;

/**
 * @author jack
 * @date 2020/5/25
 */
public class TestStsService {

    public static void main(String[] args) {
        // 從環境變量中獲取步驟一生成的RAM用戶的訪問密鑰(AccessKey ID和AccessKey Secret)。
        String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // AssumeRole API 請求參數:RoleArn, RoleSessionName, Policy, and DurationSeconds
        // RoleArn需要通過步驟三在RAM控制臺上獲取
        String roleArn = "<role-arn>";
        // RoleSessionName 角色會話名稱,自定義參數
        String roleSessionName = "session-name";
        // 定制你的policy
        String policy = "{\n" +
                "  \"Version\": \"1\",\n" +
                "  \"Statement\": [\n" +
                "    {\n" +
                "      \"Action\": \"vod:*\",\n" +
                "      \"Resource\": \"*\",\n" +
                "      \"Effect\": \"Allow\"\n" +
                "    }\n" +
                "  ]\n" +
                "}";
        try {
            AssumeRoleResponse response = assumeRole(accessKeyId, accessKeySecret, roleArn, roleSessionName, policy);
            System.out.println("Expiration: " + response.getCredentials().getExpiration());
            System.out.println("Access Key Id: " + response.getCredentials().getAccessKeyId());
            System.out.println("Access Key Secret: " + response.getCredentials().getAccessKeySecret());
            System.out.println("Security Token: " + response.getCredentials().getSecurityToken());
            System.out.println("RequestId: " + response.getRequestId());

            createUploadVideo(response.getCredentials().getAccessKeyId(), response.getCredentials().getAccessKeySecret(), response.getCredentials().getSecurityToken());
        } catch (ClientException e) {
            System.out.println("Failed to get a token.");
            System.out.println("Error code: " + e.getErrCode());
            System.out.println("Error message: " + e.getErrMsg());
        }
    }

    static AssumeRoleResponse assumeRole(String accessKeyId, String accessKeySecret, String roleArn, String roleSessionName, String policy) throws ClientException {
        try {
            //構造default profile(參數留空,無需添加Region ID)
            /*
            說明:當設置SysEndpoint為sts.aliyuncs.com時,regionId可填可不填;反之,regionId必填,根據使用的服務區域填寫,例如:cn-shanghai
            詳情參考STS各地域的Endpoint。
             */
            IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);
            //用profile構造client
            DefaultAcsClient client = new DefaultAcsClient(profile);
            // 創建一個 AssumeRoleRequest 并設置請求參數
            final AssumeRoleRequest request = new AssumeRoleRequest();
            request.setSysEndpoint("sts.aliyuncs.com");
            request.setSysMethod(MethodType.POST);
            request.setRoleArn(roleArn);
            request.setRoleSessionName(roleSessionName);
            request.setPolicy(policy);
            // 發起請求,并得到response
            final AssumeRoleResponse response = client.getAcsResponse(request);
            return response;
        } catch (ClientException e) {
            throw e;
        }
    }

    static void createUploadVideo(String accessKeyId, String accessKeySecret, String token) {
        // 點播服務所在的Region,接入服務中心為上海,則填cn-shanghai
        String regionId = "cn-shanghai";
        IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);

        CreateUploadVideoRequest request = new CreateUploadVideoRequest();
        request.setSecurityToken(token);
        request.setTitle("t5");
        request.setFileName("D:\\TestVideo\\t4.mp4");
        request.setFileSize(10240L);

        try {
            CreateUploadVideoResponse response = client.getAcsResponse(request);
            System.out.println("CreateUploadVideoRequest, " + request.getUrl());
            System.out.println("CreateUploadVideoRequest, requestId:" + response.getRequestId());
            System.out.println("UploadAddress, " + response.getUploadAddress());
            System.out.println("UploadAuth, " + response.getUploadAuth());
            System.out.println("VideoId, " + response.getVideoId());
        } catch (ClientException e) {
            System.out.println("action, error:" + e);
            e.printStackTrace();
        }
    }
}