配置服务器端加密(即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云盒中使用该命令时:
将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint。
在本文已有示例的基础上添加--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****
关于此命令的其他通用选项的更多信息,请参见通用选项。