五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

如何使用憑據(jù)管理服務(wù)解決AK&SK泄露問(wèn)題

憑據(jù)管理,即云憑據(jù)管理服務(wù)(Cloud Secret Management Service,CSMS),是一種安全、可靠、簡(jiǎn)單易用的憑據(jù)托管服務(wù)。用戶或應(yīng)用程序通過(guò)憑據(jù)管理服務(wù),創(chuàng)建、檢索、更新、刪除憑據(jù),輕松實(shí)現(xiàn)對(duì)敏感憑據(jù)的全生命周期的統(tǒng)一管理,有效避免程序硬編碼或明文配置等問(wèn)題導(dǎo)致的敏感信息泄露以及權(quán)限失控帶來(lái)的業(yè)務(wù)風(fēng)險(xiǎn)。

應(yīng)用場(chǎng)景

保存AK&SK,防止泄露。

應(yīng)用原理

通過(guò)統(tǒng)一身份認(rèn)證服務(wù)(Identity and Access Management,IAM )對(duì)彈性云服務(wù)器(Elastic Cloud Server,ECS)的委托獲取臨時(shí)訪問(wèn)密鑰來(lái)保護(hù)AK&SK。

訪問(wèn)憑證按照時(shí)效性可分為永久憑證和臨時(shí)憑證,相較于永久性訪問(wèn)憑證,例如用戶名和密碼,臨時(shí)訪問(wèn)密鑰因?yàn)橛行诙糖宜⑿骂l率高,所以安全性更高。因此,您可以為ECS實(shí)例授予IAM委托,使ECS實(shí)例內(nèi)的應(yīng)用程序可以使用臨時(shí)AK&SK+SecurityToken訪問(wèn)CSMS,不需要保存臨時(shí)訪問(wèn)密鑰,每次需要時(shí)動(dòng)態(tài)獲取,也可以緩存在內(nèi)存里定時(shí)更新。

操作流程

圖1 ECS委托操作流程

約束限制

管理員帳號(hào)或擁有ECS權(quán)限的IAM用戶才能為ECS實(shí)例配置委托。

操作步驟

IAM創(chuàng)建ECS委托。

a.登錄管理控制臺(tái)。

b.單擊頁(yè)面左側(cè),選擇“管理與監(jiān)督 > 統(tǒng)一身份認(rèn)證服務(wù)”,默認(rèn)進(jìn)入“用戶”界面。

c.在左側(cè)導(dǎo)航樹中,選擇“委托”,進(jìn)入“委托”頁(yè)面。

d.單擊右上角的“創(chuàng)建委托”。

e.在彈出的“創(chuàng)建委托”對(duì)話框中,填寫對(duì)應(yīng)參數(shù)。參數(shù)說(shuō)明如表 創(chuàng)建委托參數(shù)說(shuō)明所示。

圖2 創(chuàng)建委托

表1 創(chuàng)建委托參數(shù)說(shuō)明

參數(shù)名稱
參數(shù)說(shuō)明

委托名稱

填寫自定義的委托名稱。下文以“ECS_TO_CSMS”為例。

委托類型

選擇“云服務(wù)”。

云服務(wù)

選擇“彈性云服務(wù)器 ECS 裸金屬服務(wù)器 BMS”。

持續(xù)時(shí)間

選擇持續(xù)時(shí)間,可選擇“永久”、“一天”、“自定義”。

描述

(可選)填寫委托信息。

f.單擊“下一步”,進(jìn)入“授權(quán)”頁(yè)面。

g.單擊頁(yè)面右上角“新建策略”,若已存在需使用的策略忽略此步驟。

1、在“新建策略”頁(yè)面配置參數(shù),參數(shù)詳情如表 新建策略參數(shù)說(shuō)明所示。

圖3 新建策略

表2 新建策略參數(shù)說(shuō)明

參數(shù)名稱
參數(shù)說(shuō)明

策略名稱

輸入策略名稱。

策略配置方式

選擇“可視化視圖”。

策略內(nèi)容

  1. 允許:選擇“允許”。
  2. 云服務(wù):選擇“憑據(jù)管理服務(wù)CSMS”。
  3. 操作:選擇您的讀寫權(quán)限。
  4. 選擇資源(可選):選擇訪問(wèn)的資源范圍。
  5. 特定資源:訪問(wèn)特定的憑據(jù)。
  6. 說(shuō)明:
  7. 可以選擇“通過(guò)資源路徑指定”訪問(wèn)特定的憑據(jù),通過(guò)“添加資源路徑”加入可以訪問(wèn)的憑據(jù)名稱。
  8. 所有資源:訪問(wèn)所有憑據(jù)。
  9. 請(qǐng)求條件(可選):?jiǎn)螕簟疤砑訔l件”,選擇條件鍵、運(yùn)算符,填寫相應(yīng)的值。


策略描述

(可選)輸入策略描述。

為委托選擇策略。勾選策略后,單擊“下一步”。

選擇授權(quán)范圍方案,單擊“確定”。

所有資源:授權(quán)后,IAM用戶可以根據(jù)權(quán)限使用帳號(hào)中所有資源,包括企業(yè)項(xiàng)目、區(qū)域項(xiàng)目和全局服務(wù)資源。

指定企業(yè)項(xiàng)目資源:授權(quán)后,用戶根據(jù)權(quán)限使用已選企業(yè)項(xiàng)目中的資源。

指定區(qū)域項(xiàng)目資源:授權(quán)后,用戶根據(jù)權(quán)限使用已選區(qū)域項(xiàng)目中的資源。

2、將委托(如ECS_TO_CSMS)賦予ECS實(shí)例。

若ECS實(shí)例未創(chuàng)建,請(qǐng)參考自定義購(gòu)買彈性云服務(wù)器。在步驟三:高級(jí)配置中,“委托”選擇新建的委托(如ECS_TO_CSMS)。

若ECS實(shí)例已創(chuàng)建,請(qǐng)按照如下流程:

單擊頁(yè)面左側(cè),選擇“管理與監(jiān)督 > 統(tǒng)一身份認(rèn)證服務(wù)”,進(jìn)入“彈性云服務(wù)器”界面。

單擊需要配置委托的ECS實(shí)例的“名稱”,進(jìn)入“基本信息”界面。

在“管理信息”中,單擊選擇委托(如ECS_TO_CSMS)。

圖4 選擇委托

3、運(yùn)行在ECS實(shí)例上的應(yīng)用程序調(diào)用獲取委托臨時(shí)憑證的API,即可獲得用于訪問(wèn)CSMS的臨時(shí)AK&SK+SecrityToken。

a.獲取臨時(shí)AK&SK(Security Key 目錄下 ),詳情請(qǐng)參見元數(shù)據(jù)獲取。

URI

/openstack/latest/securitykey

方法

支持 GET 請(qǐng)求

返回?cái)?shù)據(jù)內(nèi)容:

{

"credential":{

"access": "LDHZK30XXXXXXXXXXXXV",

"secret":"gyqcdzVXXXXXXXXXXXXXXXXXXXXXXXMl6",

"securitytoken": "El9FI2C65qXXXXXXXXXXXXXXXXXXXXXnkcaoV",

"expires_at": "2022-07-14T12:09:24.147000Z"

        }

}

說(shuō)明:提取返回?cái)?shù)據(jù)中的“access”、“secret”、“securitytoken”用于訪問(wèn)CSMS。

ECS會(huì)為您自動(dòng)輪換臨時(shí)憑證,從而確保每次申請(qǐng)的臨時(shí)憑證安全、有效。

b.使用臨時(shí)AK&SK+SecurityToken訪問(wèn)CSMS。

查詢憑證列表示例如下,詳情請(qǐng)參見憑據(jù)管理服務(wù)。

package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.csms.v1.region.CsmsRegion;
import com.huaweicloud.sdk.csms.v1.*;
import com.huaweicloud.sdk.csms.v1.model.*;

public class ListSecretsSolution {

public static void main(String[] args) {
String ak = "<YOUR AK>";
String sk = "<YOUR SK>";
String securitytoken = "<YOUR SecurityToken>";

ICredential auth = new BasicCredentials()
.withAk(ak)
.withSk(sk)
.withSecurityToken(securitytoken);

CsmsClient client = CsmsClient.newBuilder()
.withCredential(auth)
.withRegion(CsmsRegion.valueOf("cn-north-1"))
.build();
ListSecretsRequest request = new ListSecretsRequest();
try {
ListSecretsResponse response = client.listSecrets(request);
System.out.println(response.toString());
} catch (ConnectionException e) {
e.getMessage();
} catch (RequestTimeoutException e) {
e.getMessage();
} catch (ServiceResponseException e) {
e.getMessage();
System.out.println(e.getHttpStatusCode());
System.out.println(e.getErrorCode());
System.out.println(e.getErrorMsg());
}
}
}