使用STS授權您的客戶端直接訪問雲儲存

2021-09-23 23:27:33 字數 1831 閱讀 4599

摘要:當阿里雲客戶使用雲儲存服務來儲存來自其客戶端的使用者資料時,現有的解決方案都存在一些問題。針對這一場景及問題,本文介紹了一種輕量級的安全解決方案,即使用sts服務授權客戶端直接訪問雲儲存。本文闡述了sts方案的基本原理,並且結合具體應用場景,對實施步驟進行了詳細的描述。

1 引言

圖1. 使用**服務進行資料中轉

這個**服務需要實現對您的客戶端的身份驗證、業務規則驗證,並提供資料快取與中轉功能。這種設計模式存在乙個缺點,當客戶端規模較大時,設計這種滿足規模擴充套件且支援大批量事務處理的**服務是非常困難的,而且研發成本也非常昂貴。

圖2. 使用**服務計算訊息簽名

針對這一場景及現有方案存在的問題,本文將介紹一種更輕量、更安全的基於sts (security token service)的解決方案——使用sts授權您的客戶端直接訪問雲儲存。

2 阿里雲sts服務簡介

sts是阿里雲為客戶提供的一種安全令牌管理服務,它是資源訪問管理(ram)產品家族中的一員。通過sts,獲得許可的雲服務或ram使用者可以自主頒發自定義時效和子許可權的乙個訪問令牌。獲得訪問令牌的應用程式可以使用令牌直接呼叫阿里雲服務api操作資源。

3 使用sts授權您的客戶端直接訪問雲儲存

圖3. 基於sts方案的頂層描述

針對這一具體場景,我們來逐步揭開使用sts授權的面紗。(注意:在進行下文的實際操作之前,請確保您的雲賬號已經開通ram服務。)

3.1初始化配置與部署

在使用sts之前,我們需要在ram中進行適當的配置,具體流程如圖4所示。

圖4. 配置ram與部署

請使用您的雲賬號(或稱為主賬號)身份登陸阿里雲ram管理控制台,執行以下操作:

進入ram控制台,選擇使用者管理 -> 新建使用者,填寫登入名,並選擇「為該使用者自動生成accesskey」,選擇確定後ram會建立使用者並為該使用者建立accesskeyid和accesskeysecret(這個金鑰後續將無法)。

然後再給角色授權。在角色詳情頁中,選擇「新增授權策略」,這裡選擇「aliyunossfullaccess」系統授權策略,完成授權。此處若為了進一步限制角色的許可權,您也可以選擇自定義授權策略來代替「aliyunossfullaccess」系統授權策略。

進入使用者授權策略頁面,選擇新增授權策略,選擇aliyunstsassumeroleaccess系統授權策略即可。

3.2 臨時授權令牌的頒發與使用

圖5. 臨時授權令牌的頒發與使用

step 1. 獲取臨時授權令牌

protocoltype protocoltype = protocoltype.https; // 必須使用https協議訪問sts服務

trycatch (clientexception e)

}step 2. 獲得乙個臨時授權令牌

在上述例子中,assumerole執行成功後將返回有效的臨時授權令牌。臨時授權令牌包括accesskeyid, accesskeysecret, securitytoken以及令牌的過期時間。預設的過期時間是1小時,建議客戶端裝置每半小時就要請求一次新的臨時授權令牌。

step 4. 客戶端裝置可以直接使用令牌訪問oss,新版本oss sdk已經支援sts授權令牌來訪問oss服務。

4. 安全性分析

避免安全風險的最佳實踐原則之一是讓每個子系統在執行時都使用最小許可權。那麼,當乙個子系統被攻破時,它不會對全域性造成系統性破壞。

5. 結語

sts是阿里雲為客戶提供的一種安全令牌管理服務。通過sts,您可以給您的客戶端或任意第三方應用頒發乙個自定義時效和子許可權的訪問令牌,客戶端或第三方應用可以直接使用sts令牌訪問您的雲服務。sts可以幫助客戶有效解決移動領域、遊戲領域或物聯網領域的一類典型應用場景或解決方案的最小授權問題,進而有效控制業務上雲所帶來的資訊保安風險。

Nacos Config 客戶端的使用

此處我們以之前建立的服務提供者專案為例 在pom.xml中增加org.springframework.cloud spring cloud starter alibaba nacos config依賴 org.springframework.cloud spring cloud starter al...

假設您需要整個客戶端上的永久資料儲存

您得到了localstorage 您得到了indexeddb 它們都是客戶端,並且能夠儲存資料,但僅限於單個瀏覽器。我無法從膝上型電腦那裡儲存資料,然後稍後在手機上恢復並擁有相同的資料。擁有後端資料庫就是這種情況。資料儲存在其他位置,因此您可以隨處訪問。但是,如果您不想處理後端怎麼辦?有第三方解決方...

Linux下的Perforce客戶端使用 P4

linux下的perforce客戶端使用 p4 1.引數設定 export p4port 192.168.4.88 1666 p4所在的主機 export p4client dev client 指定了與perforce伺服器交流的client是什麼 export p4user daihh p4使用...