配置服务器端加密(即Bucket加密)后,OSS对上传的文件(Object)进行加密,再将得到的加密文件持久化保存。下载文件时,OSS自动将加密文件解密后返回给用户。本文介绍如何通过 bucket-encryption命令添加、修改、查询和删除Bucket的加密配置。

注意事项

  • 本文各命令行示例均基于Linux 64位系统,其他系统请将命令开头的./ossutil64替换成对应的Binary名称。详情请参见命令行工具ossutil快速入门
  • 关于服务器端加密的更多信息,请参见服务器端加密
  • 当您在OSS ON云盒中使用该命令时:
    1. 将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint
    2. 在本文已有示例的基础上添加--sign-version--region以及--cloudbox-id选项。关于这三个选项的具体用法,请参见通用选项

添加或修改Bucket加密配置

  • 命令格式
    ./ossutil64 bucket-encryption --method put oss://bucketName  --sse-algorithm algorithmName 
    [--kms-masterkey-id keyid]
    [--kms-data-encryption SM4]

    参数说明如下:

    参数 说明
    bucketName 配置服务器端加密的目标Bucket。
    --sse-algorithm Bucket的加密方式。

    取值:

    • KMS:使用KMS托管密钥进行加解密,即SSE-KMS。
    • AES256:使用OSS完全托管密钥进行加解密,即SSE-OSS。
    说明 在OSS ON云盒使用场景中,仅支持AES256。
    --kms-masterkey-id 当加密方式为SSE-KMS时,OSS使用默认托管的KMS CMK进行加密。如果您希望通过指定的KMS CMK进行加密,请通过此选项设置正确的CMK ID。
    说明

    在OSS ON云盒使用场景中,不支持使用此选项。

    --kms-data-encryption 当加密方式为SSE-KMS时,OSS使用默认加密算法AES256进行加密。如果您希望通过加密算法SM4进行加密,请通过此选项指定。
    说明

    在OSS ON云盒使用场景中,不支持使用此选项。

  • 使用示例
    • 将examplebucket的服务器端加密方式设置为SSE-OSS,并指定加密算法为AES256。
      ./ossutil64 bucket-encryption --method put oss://examplebucket --sse-algorithm AES256
    • 将examplebucket的服务器端加密方式设置为SSE-KMS,指定CMK ID,并使用默认加密算法AES256进行加密。
      ./ossutil64 bucket-encryption --method put oss://examplebucket --sse-algorithm KMS --kms-masterkey-id 9468da86-3509-4f8d-a61e-6eab1eac****
    • 将examplebucket的服务器端加密方式设置为SSE-KMS,不指定CMK ID,并使用加密算法SM4进行加密。
      ./ossutil64 bucket-encryption --method put oss://examplebucket --sse-algorithm KMS --kms-data-encryption SM4
    • 以下输出结果表明examplebucket已成功配置服务器端加密。
      0.856895(s) elapsed

获取Bucket加密配置

  • 命令格式
    ./ossutil64 bucket-encryption --method get oss://bucket
  • 使用示例

    获取examplebucket的加密配置。命令如下:

    ./ossutil64 bucket-encryption --method get oss://examplebucket
    以下输出结果表明examplebucket配置的服务器端加密方式为SSE-KMS,未指定CMK ID,且加密算法为AES256。
    SSEAlgorithm:KMS
    KMSMasterKeyID:
    KMSDataEncryption:

删除Bucket加密配置

  • 命令格式
    ./ossutil64 bucket-encryption --method delete oss://bucket
  • 使用示例
    删除examplebucket的加密配置。命令如下:
    ./ossutil64 bucket-encryption --method delete oss://examplebucket

    以下输出结果表明已成功删除examplebucket的服务器端加密配置。

    0.856686(s) elapsed

通用选项

当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。

例如,您需要为另一个阿里云账号下,华东1(杭州)名为examplebucket的存储空间配置AES256的加密方式,命令如下:
./ossutil64 bucket-encryption --method put oss://examplebucket --sse-algorithm AES256 -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

关于此命令的其他通用选项的更多信息,请参见通用选项