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

密鑰管理快速入門

更新時(shí)間:

您可以使用KMS輕松地創(chuàng)建密鑰,使用密鑰加密、解密業(yè)務(wù)數(shù)據(jù),保護(hù)您的數(shù)據(jù)安全。本文介紹如何創(chuàng)建及使用密鑰。

概述

KMS提供默認(rèn)密鑰、軟件密鑰和硬件密鑰三種密鑰管理類型,以滿足不同業(yè)務(wù)場景、安全與合規(guī)要求。更多詳細(xì)信息,請(qǐng)參見密鑰服務(wù)概述密鑰管理類型和密鑰規(guī)格

  • 默認(rèn)密鑰是KMS免費(fèi)為用戶提供的功能,可供云產(chǎn)品服務(wù)端加密,比如和ECS結(jié)合使用。默認(rèn)密鑰只提供對(duì)稱解密這一種加密方式,并且不支持客戶端數(shù)據(jù)加密。

  • 軟件密鑰和默認(rèn)密鑰一樣提供云產(chǎn)品服務(wù)端加密功能,除此之外也可用于構(gòu)建應(yīng)用層密碼技術(shù)方案,提供接口API用于客戶端數(shù)據(jù)加解密、數(shù)字簽名計(jì)算和驗(yàn)證,支持對(duì)稱密鑰和非對(duì)稱密鑰,同時(shí)支持密鑰輪轉(zhuǎn)(自動(dòng)更新密鑰),減少密鑰泄漏風(fēng)險(xiǎn)。

  • 硬件密鑰和軟件密鑰一樣提供云產(chǎn)品服務(wù)端加密功能和構(gòu)建應(yīng)用層密碼技術(shù)方案,提供接口API用于客戶端數(shù)據(jù)加解密、數(shù)字簽名計(jì)算和驗(yàn)證,支持對(duì)稱密鑰和非對(duì)稱密鑰,相對(duì)軟件密鑰支持的密鑰規(guī)格更多,同時(shí)會(huì)把密鑰存儲(chǔ)在密碼機(jī)中,滿足密碼法和FIPS國際的合規(guī)要求,但不支持密鑰輪轉(zhuǎn)

密鑰管理為云產(chǎn)品加密

密鑰管理可供云產(chǎn)品服務(wù)端加密,比如和ECS結(jié)合使用,解決服務(wù)端數(shù)據(jù)明文傳輸?shù)陌踩珕栴}。支持該功能的密鑰類型:默認(rèn)密鑰、軟件密鑰、硬件密鑰

使用示例

本文以ECS集成KMS默認(rèn)主密鑰為例。關(guān)于云產(chǎn)品集成KMS的更多信息,請(qǐng)參見云產(chǎn)品集成KMS加密概述支持集成KMS加密的云產(chǎn)品

步驟一:啟用默認(rèn)主密鑰

  1. 登錄密鑰管理服務(wù)控制臺(tái),在頂部菜單欄選擇地域后,在左側(cè)導(dǎo)航欄單擊資源 > 密鑰管理

  2. 在密鑰管理頁單擊默認(rèn)密鑰,點(diǎn)擊主密鑰操作欄的啟用按鈕。為主密鑰取名alias/mainimage

說明

您的默認(rèn)密鑰中的主密鑰只能用于云產(chǎn)品服務(wù)端加密,不能用于您的客戶端數(shù)據(jù)加密。如果您有客戶端數(shù)據(jù)加密的訴求,請(qǐng)通過創(chuàng)建實(shí)例購買主密鑰(軟件)或者主密鑰(硬件)。

步驟二:ECS集成KMS默認(rèn)密鑰

購買ECS產(chǎn)品時(shí),在購買頁選擇使用創(chuàng)建的主密鑰alias/main加密服務(wù)端數(shù)據(jù)

image

步驟三:ECS使用KMS對(duì)數(shù)據(jù)進(jìn)行密文傳輸

當(dāng)有數(shù)據(jù)在ECS上傳輸時(shí),ECS會(huì)默認(rèn)調(diào)用KMS API對(duì)數(shù)據(jù)進(jìn)行加解密處理,無需人工處理數(shù)據(jù)。通常云產(chǎn)品采用信封加密的機(jī)制實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密,詳情請(qǐng)參見使用KMS密鑰進(jìn)行信封加密

密鑰管理構(gòu)建應(yīng)用層密碼技術(shù)方案

密鑰管理可用于構(gòu)建應(yīng)用層密碼技術(shù)方案,提供接口API用于客戶端數(shù)據(jù)加解密、數(shù)字簽名計(jì)算和驗(yàn)證。支持該功能的密鑰類型:軟件密鑰、硬件密鑰

前提條件

已購買并啟用KMS軟件/硬件密鑰管理實(shí)例。具體操作,請(qǐng)參見購買和啟用KMS實(shí)例

使用示例

本文以使用軟件實(shí)例密鑰對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行加密(AdvanceEncrypt)和解密(AdvanceDecrypt)為例。更多操作請(qǐng)參見使用KMS密鑰在線加密和解密數(shù)據(jù)

步驟一:創(chuàng)建軟件密鑰

  1. 登錄密鑰管理服務(wù)控制臺(tái),在頂部菜單欄選擇地域后,在左側(cè)導(dǎo)航欄單擊資源 > 密鑰管理

  2. 進(jìn)入用戶主密鑰頁面,點(diǎn)擊創(chuàng)建密鑰,根據(jù)提示完成配置。

  • KMS實(shí)例選擇之前購買的KMS軟件密鑰管理實(shí)例

  • 密鑰類型選擇對(duì)稱加密。

  • 密鑰規(guī)格選擇Aliyun_AES_256。

image

步驟二:依賴安裝

  1. 環(huán)境準(zhǔn)備

    環(huán)境要求

    已下載并安裝Java 8或以上版本。

    驗(yàn)證版本

    打開終端,輸入java -version,查看Java(JDK)版本。

  2. 安裝SDK

    在項(xiàng)目中添加Maven依賴,從Maven倉庫中自動(dòng)下載Java安裝包。

    訪問alibabacloud-dkms-gcs-java-sdk了解更多安裝信息和源代碼。

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>alibabacloud-dkms-gcs-sdk</artifactId>
      <version>xx.xx.xx</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>tea</artifactId>
        <version>[1.2.3)</version>
    </dependency>
                
    重要
    • 建議您安裝最新版本的SDK。

    • 請(qǐng)使用com.aliyun.tea  1.2.3及以上版本。

步驟三:創(chuàng)建接口調(diào)用憑證

  1. 登錄密鑰管理服務(wù)控制臺(tái),在頂部菜單欄選擇地域后,在左側(cè)導(dǎo)航欄單擊應(yīng)用接入 > 接入點(diǎn)

  2. 創(chuàng)建接入點(diǎn)

    1. 應(yīng)用接入頁簽,單擊創(chuàng)建應(yīng)用接入點(diǎn),在創(chuàng)建應(yīng)用接入點(diǎn)面板完成各項(xiàng)配置。

      配置項(xiàng)

      說明

      創(chuàng)建模式

      選擇快速創(chuàng)建

      作用域(KMS實(shí)例)

      選擇應(yīng)用要訪問的KMS實(shí)例。

      應(yīng)用接入點(diǎn)名稱

      自定義應(yīng)用接入點(diǎn)的名稱。

      認(rèn)證方式

      默認(rèn)為ClientKey,不支持修改。

      默認(rèn)權(quán)限策略

      默認(rèn)為key/*secret/*,不支持修改。即應(yīng)用可以訪問指定KMS實(shí)例中的所有密鑰和憑據(jù)。

    2. 單擊確定,瀏覽器會(huì)自動(dòng)下載ClientKey。

      ClientKey包含應(yīng)用身份憑證內(nèi)容(ClientKeyContent)憑證口令(ClientKeyPassword)應(yīng)用身份憑證內(nèi)容(ClientKeyContent)文件名默認(rèn)為clientKey_****.json憑證口令(ClientKeyPassword)文件名默認(rèn)為clientKey_****_Password.txt

    image

步驟四:下載KMS實(shí)例的CA證書

  1. 登錄密鑰管理服務(wù)控制臺(tái),在頂部菜單欄選擇地域后,在左側(cè)導(dǎo)航欄單擊資源 > 實(shí)例管理

  2. 在右側(cè)操作頁面上方,點(diǎn)擊CA證書下載。

    image

步驟五:客戶端調(diào)用

  1. 初始化KMS實(shí)例SDK

      public static void initClient() throws Exception {
            Config config = new Config();
            config.setProtocol("https");
            config.setEndpoint("實(shí)例id.cryptoservice.KMS.aliyuncs.com"); // 設(shè)置KMS實(shí)例Endpoint
            config.setClientKeyFile("<YOUR-CLIENT-KEY-FILE>"); // 設(shè)置client key文件地址
            // config.setClientKeyContent("<YOUR-CLIENT-KEY-CONTENT>"); // 或設(shè)置client key文件的內(nèi)容
            config.setPassword("<YOUR-PASSWORD>"); // 設(shè)置client key 保護(hù)密碼
            config.setCaFilePath("<path/to/yourCaCert>");// 設(shè)置KMS實(shí)例的CA證書,可通過文件路徑
            //config.setCa("<your-ca-certificate-content"); // 或者設(shè)置服務(wù)端證書內(nèi)容
    
            client = new Client(config);
        }
  2. 調(diào)用AdvanceEncrypt加密數(shù)據(jù)

    /**
         * KMS默認(rèn)采用GCM加密模式。
         * @param keyId     keyId 參數(shù),可使用密鑰Id或別名
         * @param plaintext 需要加密的數(shù)據(jù)
         * @param aad       用戶可根據(jù)使用的需要設(shè)置GCM加密模式的AAD參數(shù)。如果不需要使用,請(qǐng)?jiān)O(shè)置為null或不設(shè)置。
         * @return AdvanceEncrypt密文數(shù)據(jù)上下文(本示例采用AdvanceEncryptContext),包含密文數(shù)據(jù)(ciphertextBlob)和相關(guān)參數(shù)密文(AAD)。
         */
        private static AdvanceEncryptContext advanceEncryptSample(String keyId, byte[] plaintext, byte[] aad) {
            AdvanceEncryptRequest request = new AdvanceEncryptRequest();
            request.setKeyId(keyId);
            request.setPlaintext(plaintext);
            request.setAad(aad);
            try {
                AdvanceEncryptResponse response = client.advanceEncrypt(request);
                return new AdvanceEncryptContext(response.getCiphertextBlob(), aad);
            } catch (TeaException e) {
                System.out.printf("code: %s%n", e.getCode());
                System.out.printf("message: %s%n", e.getMessage());
                System.out.printf("requestId: %s%n", e.getData().get("requestId"));
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (Exception e) {
                System.out.printf("advance encrypt err: %s%n", e.getMessage());
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
  3. 調(diào)用AdvanceDecrypt解密數(shù)據(jù)

       /**
         * 調(diào)用 AdvanceDecrypt 的示例。
         *
         * @param advanceEncryptContext AdvanceEncrypt密文數(shù)據(jù)上下文(本示例采用AdvanceEncryptContext),包含密文數(shù)據(jù)(ciphertextBlob)和相關(guān)參數(shù)密文(AAD)。
         * @return 解密后得到的明文數(shù)據(jù)。
         */
        private static byte[] advanceDecryptSample(final AdvanceEncryptContext advanceEncryptContext) {
            // 構(gòu)建高級(jí)解密請(qǐng)求對(duì)象
            AdvanceDecryptRequest request = new AdvanceDecryptRequest();
            request.setCiphertextBlob(advanceEncryptContext.getCiphertextBlob());
            request.setAad(advanceEncryptContext.getAad());
            try {
                AdvanceDecryptResponse response = client.advanceDecrypt(request);
                System.out.printf("RequestId: %s%n", response.getRequestId());
                return response.getPlaintext();
            } catch (TeaException e) {
                System.out.printf("code: %s%n", e.getCode());
                System.out.printf("message: %s%n", e.getMessage());
                System.out.printf("requestId: %s%n", e.getData().get("requestId"));
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (Exception e) {
                System.out.printf("advance decrypt err: %s%n", e.getMessage());
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    

完整代碼樣例參見AdvanceEncryptAdvanceDecryptSample.java

相關(guān)文檔