bucket-encryption(服务器端加密)

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

注意事项

  • 要添加或修改Bucket加密配置,您必须具有oss:PutBucketEncryption权限;要获取Bucket加密配置,您必须具有oss:GetBucketEncryption权限;要删除Bucket加密配置,您必须具有oss:DeleteBucketEncryption权限。具体操作,请参见RAM用户授权自定义的权限策略

  • ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考

  • 关于服务器端加密的更多信息,请参见服务器端加密

  • 当您在OSS ON云盒中使用该命令时:

    1. 将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint

    2. 在本文已有示例的基础上添加--sign-version--region以及--cloudbox-id选项。关于这三个选项的具体用法,请参见通用选项

添加或修改Bucket加密配置

  • 命令格式

    ossutil 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。

      ossutil bucket-encryption --method put oss://examplebucket --sse-algorithm AES256
    • examplebucket的服务器端加密方式设置为SSE-KMS,指定CMK ID,并使用默认加密算法AES256进行加密。

      ossutil bucket-encryption --method put oss://examplebucket --sse-algorithm KMS --kms-masterkey-id 9468da86-3509-4f8d-a61e-6eab1eac****
    • examplebucket的服务器端加密方式设置为SSE-KMS,不指定CMK ID,并使用加密算法SM4进行加密。

      ossutil bucket-encryption --method put oss://examplebucket --sse-algorithm KMS --kms-data-encryption SM4
    • 以下输出结果表明examplebucket已成功配置服务器端加密。

      0.856895(s) elapsed

获取Bucket加密配置

  • 命令格式

    ossutil bucket-encryption --method get oss://bucketname
  • 使用示例

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

    ossutil bucket-encryption --method get oss://examplebucket

    以下输出结果表明examplebucket配置的服务器端加密方式为SSE-KMS,未指定CMK ID,且加密算法为AES256。

    SSEAlgorithm:KMS
    KMSMasterKeyID:
    KMSDataEncryption:

删除Bucket加密配置

  • 命令格式

    ossutil bucket-encryption --method delete oss://bucketname
  • 使用示例

    删除examplebucket的加密配置。命令如下:

    ossutil 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的加密方式,命令如下:

ossutil bucket-encryption --method put oss://examplebucket --sse-algorithm AES256 -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

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