OSS提供哪些數(shù)據(jù)加密的方式?
我來答

OSS提供哪些數(shù)據(jù)加密的方式?

莊麗 2021-08-11 提問
534

OSS提供哪些數(shù)據(jù)加密的方式??有懂的嗎

關(guān)閉
提交回答
1 個回答
我來答
黃文文

加密方式

OSS通過服務(wù)器端加密機制,提供靜態(tài)數(shù)據(jù)保護。適合于對于文件存儲有高安全性或者合規(guī)性要求的應(yīng)用場景。例如,深度學(xué)習(xí)樣本文件的存儲、在線協(xié)作類文檔數(shù)據(jù)的存儲。

同一對象在同一時間內(nèi)僅可以使用一種服務(wù)器端加密方式。OSS針對不同使用場景提供了兩種服務(wù)器端加密方式,您可以根據(jù)實際使用場景選用。

  • 使用KMS(Key Management Service)托管密鑰進行加解密(SSE-KMS)

    使用KMS托管的默認CMK(Customer Master Key)或指定CMK進行加解密操作。數(shù)據(jù)無需通過網(wǎng)絡(luò)發(fā)送到KMS服務(wù)端進行加解密,是一種低成本的加解密方式。

    注意

    • 使用KMS密鑰功能會產(chǎn)生少量的KMS密鑰使用費用。費用詳情,請參見KMS計費標(biāo)準(zhǔn)。

    • 用于加密Object的密鑰也會被加密,并寫入Object的元信息中。

    • KMS托管密鑰的服務(wù)器端加密方式僅加密Object數(shù)據(jù),不加密Object的元數(shù)據(jù)。

  • 使用OSS完全托管密鑰進行加解密(SSE-OSS)

    使用OSS完全托管的密鑰加密每個Object。為了提升安全性,OSS還會使用定期輪轉(zhuǎn)的主密鑰對加密密鑰本身進行加密。該方式適合于批量數(shù)據(jù)的加解密。

操作方式


操作方式說明
控制臺Web應(yīng)用程序,直觀易用。
命令行工具ossutil
  • 配置Bucket默認加密方式

  • 上傳文件并指定加密方式

命令行工具,性能好。
Java SDK豐富、完整的各類語言SDK demo。
Python SDK
Go SDK

使用KMS托管密鑰進行加解密

使用KMS托管的用戶主密鑰CMK生成加密密鑰加密數(shù)據(jù),通過信封加密機制,可進一步防止未經(jīng)授權(quán)的數(shù)據(jù)訪問。借助KMS,您可以專注于數(shù)據(jù)加解密、電子簽名驗簽等業(yè)務(wù)功能,無需花費大量成本來保障密鑰的保密性、完整性和可用性。

SSE-KMS加密方式的邏輯示意圖如下。加密1

使用SSE-KMS加密方式時,可使用如下密鑰:

  • 使用OSS默認托管的KMS密鑰

    OSS使用默認托管的KMS CMK生成不同的密鑰來加密不同的Object,并且在下載時自動解密。首次使用時,OSS會在KMS平臺創(chuàng)建一個OSS托管的CMK。

    配置方式如下:

    • 配置Bucket默認加密方式

      配置Bucket默認加密方式為KMS,指定加密算法為AES256或SM4,但不指定具體的CMK ID。此后,所有上傳至此Bucket的Object都會被加密。

    • 為指定Object配置加密方式

      上傳Object或修改Object的meta信息時,在請求中攜帶x-oss-server-side-encryption參數(shù),并設(shè)置參數(shù)值為KMS。此時,OSS將使用默認托管的KMS CMK,并通過AES256加密算法加密Object。如需修改加密算法為SM4,您還需增加x-oss-server-side-data-encryption參數(shù),并指定值為SM4。更多詳情,請參見PutObject。

  • 使用自帶密鑰BYOK(Bring Your Own Key)

    您在KMS控制臺使用BYOK材料生成CMK后,OSS可使用指定的KMS CMK生成不同的密鑰來加密不同的Object,并將加密Object的CMK ID記錄到Object的元數(shù)據(jù)中,只有具有解密權(quán)限的用戶下載Object時才會自動解密。

    BYOK材料來源有兩種:

    配置方式如下:

    • 配置Bucket默認加密方式

      配置Bucket默認加密方式為KMS,指定加密算法為AES256或SM4,并指定具體的CMK ID。此后,所有上傳至此Bucket的Object都會被加密。

    • 為目標(biāo)Object配置加密方式

      上傳Object或修改Object的meta信息時,在請求中攜帶x-oss-server-side-encryption參數(shù),并設(shè)置參數(shù)值為KMS;攜帶x-oss-server-side-encryption-key-id參數(shù),并設(shè)置參數(shù)值為指定CMK ID。此時,OSS將使用指定的KMS CMK,并通過AES256加密算法加密Object。如需修改加密算法,您還需增加x-oss-server-side-data-encryption參數(shù),并設(shè)置參數(shù)值為SM4。更多詳情,請參見PutObject。

    • 由阿里云提供的BYOK材料:在KMS平臺創(chuàng)建密鑰時,選擇密鑰材料來源為阿里云KMS。

    • 使用用戶自有的BYOK材料:在KMS平臺創(chuàng)建密鑰時,選擇密鑰材料來源為外部,并按照要求導(dǎo)入外部密鑰材料。導(dǎo)入外部密鑰可參考文檔導(dǎo)入密鑰材料。

使用OSS完全托管密鑰進行加解密

OSS負責(zé)生成和管理數(shù)據(jù)加密密鑰,并采用高強度、多因素的安全措施進行保護。數(shù)據(jù)加密的算法采用行業(yè)標(biāo)準(zhǔn)的AES256(即256位高級加密標(biāo)準(zhǔn))和國密SM4算法。

配置方式如下:

  • 配置Bucket默認加密方式

    配置Bucket默認加密方式為OSS完全托管,并指定加密算法為AES256或SM4。此后,所有上傳至此Bucket的Object都會默認被加密。

  • 為目標(biāo)Object配置加密方式

    上傳Object或修改Object的meta信息時,在請求中攜帶x-oss-server-side-encryption參數(shù),并設(shè)置參數(shù)值為AES256SM4。此時,目標(biāo)Object將使用OSS完全托管的密鑰進行加密。

回答于 2021-08-11
贊同
評論