对象存储OSS支持服务器端加密功能。上传文件(Object)时,OSS对收到的文件进行加密,再将得到的加密文件持久化保存;下载文件时,OSS自动将加密文件解密后返回给用户,并在返回的HTTP请求Header中,声明该文件进行了服务器端加密。

背景信息

OSS支持以下两种数据加密方式:
  • 使用KMS托管密钥进行加解密(SSE-KMS)
    使用KMS托管的默认CMK(Customer Master Key)或指定CMK ID加密OSS Object。加密密钥由KMS托管,您无需花费大量成本来保障密钥的保密性、完整性和可用性。
    注意 使用KMS密钥功能时会产生少量的KMS密钥API调用费用,费用详情请参考KMS计费标准
  • 使用OSS完全托管加密(SSE-OSS)

    使用OSS托管的密钥加密每个Object,作为额外的保护,OSS会使用定期轮转的主密钥对加密密钥本身进行加密。

服务器端加密功能详情请参见服务器端加密。您可以通过以下两种方式在OSS控制台上开启服务器端加密功能:

方式一:创建Bucket时开启服务器端加密功能

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击创建Bucket
  3. 创建Bucket页面填写各项参数。
    其中,服务器端加密区域配置参数说明如下:
    • 服务端加密方式:选择Object的加密方式。
      • :不启用服务器端加密。
      • OSS完全托管:使用OSS托管的密钥进行加密。OSS会为每个Object使用不同的密钥进行加密,作为额外的保护,OSS会使用定期轮转的主密钥对加密密钥本身进行加密。
      • KMS:使用KMS默认托管的CMK或指定CMK ID进行加解密操作。KMS加密详情请参见使用KMS托管密钥进行加解密
        注意
        • 使用KMS加密方式前,需要开通KMS服务,详情请参见开通KMS服务
        • 使用KMS密钥功能时会产生少量的KMS密钥API调用费用,费用详情请参见KMS计费标准
    • 加密算法可选择AES256或SM4加密算法。
    • 加密密钥服务端加密方式选择KMS时,可配置此项。参数说明如下:
      • alias/acs/oss:使用默认托管的CMK生成不同的密钥来加密不同的Object,并且在Object被下载时自动解密。
      • CMK ID:使用指定的CMK生成不同的密钥来加密不同的Object,并将加密Object的CMK ID记录到Object的元信息中,具有解密权限的用户下载Object时会自动解密。选择指定的CMK ID前,您需在KMS管理控制台创建一个与Bucket相同地域的普通密钥或外部密钥

    其他参数请参见创建存储空间

  4. 单击确定

方式二:为已创建的Bucket开启服务器端加密

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击基础设置 > 服务器端加密
  4. 单击设置
    参数说明如下:
    • 服务端加密方式:选择Object的加密方式。
      • :不启用服务器端加密。
      • OSS完全托管:使用OSS托管的密钥进行加密。OSS会为每个Object使用不同的密钥进行加密,作为额外的保护,OSS会使用定期轮转的主密钥对加密密钥本身进行加密。
      • KMS:使用KMS默认托管的CMK或指定CMK ID进行加解密操作。KMS加密详情请参见使用KMS托管密钥进行加解密
        注意
        • 使用KMS加密方式前,需要开通KMS服务,详情请参见开通KMS服务
        • 使用KMS密钥功能时会产生少量的KMS密钥API调用费用,费用详情请参见KMS计费标准
    • 加密算法可选择AES256或SM4加密算法。
    • 加密密钥服务端加密方式选择KMS时,可配置此项。参数说明如下:
      • alias/acs/oss:使用默认托管的CMK生成不同的密钥来加密不同的Object,并且在Object被下载时自动解密。
      • CMK ID:使用指定的CMK生成不同的密钥来加密不同的Object,并将加密Object的CMK ID记录到Object的元信息中,具有解密权限的用户下载Object时会自动解密。选择指定的CMK ID前,您需在KMS管理控制台创建一个与Bucket相同地域的普通密钥或外部密钥
  5. 单击保存
    注意 开启或修改Bucket默认加密方式不会影响Bucket中已有文件的加密配置。