使用KMS密鑰在線加密和解密數(shù)據(jù)
當(dāng)您部署在阿里云或其他云上的公網(wǎng)IP資產(chǎn),需要對敏感數(shù)據(jù)進(jìn)行加密保護(hù)時,如果被加密的數(shù)據(jù)對象較小時,您可以使用KMS在線對數(shù)據(jù)進(jìn)行加解密。本文介紹如何對數(shù)據(jù)在線加解密。
應(yīng)用場景
適用于單次使用對稱密鑰加解密的數(shù)據(jù)不超過6 KB,或者單次使用非對稱密鑰加解密的數(shù)據(jù)不超過1KB。
單次加密的數(shù)據(jù)量越大,網(wǎng)絡(luò)傳輸失敗可能性越大,網(wǎng)絡(luò)傳輸所需時間越長,KMS實(shí)例對數(shù)據(jù)進(jìn)行加解密所需時間也越長。
典型場景包括以下兩類:
場景一:部署在阿里云上的應(yīng)用,需要對數(shù)據(jù)進(jìn)行加密和解密
阿里云上部署的應(yīng)用服務(wù)會產(chǎn)生或收到明文形式的敏感數(shù)據(jù),敏感數(shù)據(jù)需要加密后再通過數(shù)據(jù)庫等方式存儲,該場景推薦您使用對稱加密算法。
場景二:應(yīng)用部分部署在阿里云上,部分部署在阿里云外,需要對數(shù)據(jù)進(jìn)行加密和解密
推薦您使用非對稱加密算法,在阿里云外的應(yīng)用服務(wù)或客戶端程序使用公鑰對數(shù)據(jù)加密,經(jīng)加密的數(shù)據(jù)(即密文數(shù)據(jù))被傳送至部署于阿里云上應(yīng)用服務(wù),阿里云上的應(yīng)用服務(wù)收到密文數(shù)據(jù)后通過KMS實(shí)例使用非對稱密碼算法私鑰解密。
場景一:部署在阿里云上的應(yīng)用,需要對數(shù)據(jù)進(jìn)行加密和解密
相關(guān)API
API名稱 | 說明 |
AdvanceEncrypt(推薦) | 將明文加密為密文,加密時使用密鑰的當(dāng)前主版本。 說明 僅當(dāng)密鑰為KMS軟件密鑰管理實(shí)例中的對稱密鑰時,支持使用本接口。 |
AdvanceDecrypt(推薦) | 將密文解密為明文。 說明 僅當(dāng)密鑰為KMS軟件密鑰管理實(shí)例中的對稱密鑰時,支持使用本接口。 |
將明文加密為密文,加密使用密鑰的初始版本。 | |
將密文解密為明文。 |
操作步驟
購買并啟用KMS實(shí)例(軟件密鑰管理實(shí)例或硬件密鑰管理實(shí)例)。具體操作,請參見購買和啟用KMS實(shí)例。
在KMS實(shí)例中創(chuàng)建對稱密鑰,對數(shù)據(jù)進(jìn)行加密和解密。具體操作,請參見創(chuàng)建密鑰。
創(chuàng)建應(yīng)用接入點(diǎn)AAP,并在應(yīng)用接入點(diǎn)中創(chuàng)建Client Key。具體操作,請參見創(chuàng)建應(yīng)用接入點(diǎn)。
說明應(yīng)用接入點(diǎn)AAP用于阿里云部署的應(yīng)用服務(wù)在開發(fā)對接KMS實(shí)例時使用。如果您有多個應(yīng)用服務(wù),請分別為其創(chuàng)建應(yīng)用接入點(diǎn)AAP。
通過KMS實(shí)例SDK進(jìn)行加解密。具體操作,請參見KMS實(shí)例SDK。
說明KMS提供了多種SDK,但密碼運(yùn)算僅支持使用KMS實(shí)例SDK。關(guān)于SDK接入的更多信息,請參見SDK參考。
場景二:應(yīng)用部分部署在阿里云上,部分部署在阿里云外,需要對數(shù)據(jù)進(jìn)行加密和解密
相關(guān)API
API名稱 | 說明 |
將明文加密為密文,加密使用密鑰的初始版本。 | |
將密文解密為明文。 |
操作步驟
購買并啟用KMS實(shí)例(軟件密鑰管理實(shí)例或硬件密鑰管理實(shí)例)。具體操作,請參見購買和啟用KMS實(shí)例。
在KMS實(shí)例中創(chuàng)建非對稱密鑰,對數(shù)據(jù)進(jìn)行加密和解密。具體操作,請參見創(chuàng)建密鑰。
在KMS控制臺查看并保存公鑰,并將公鑰內(nèi)容通過線下方式分發(fā)給阿里云外的業(yè)務(wù)應(yīng)用。
創(chuàng)建應(yīng)用接入點(diǎn)AAP,并在應(yīng)用接入點(diǎn)中創(chuàng)建Client Key。具體操作,請參見創(chuàng)建應(yīng)用接入點(diǎn)。
說明應(yīng)用接入點(diǎn)AAP用于阿里云部署的應(yīng)用服務(wù)在開發(fā)對接KMS實(shí)例時使用。如果您有多個應(yīng)用服務(wù),請分別為其創(chuàng)建應(yīng)用接入點(diǎn)AAP。
阿里云外的業(yè)務(wù)應(yīng)用或APP使用公鑰加密敏感數(shù)據(jù)或臨時對稱密鑰,將敏感數(shù)據(jù)密文或臨時對稱密鑰密文發(fā)送給阿里云上部署的業(yè)務(wù)應(yīng)用。阿里云上部署的應(yīng)用,通過KMS實(shí)例SDK進(jìn)行解密敏感數(shù)據(jù)或臨時對稱密鑰,具體操作,請參見KMS實(shí)例SDK。
說明KMS提供了多種SDK,但密碼運(yùn)算僅支持使用KMS實(shí)例SDK。關(guān)于SDK接入的更多信息,請參見SDK參考。