共享AWS加密快照时为何需要同时向目标账号共享对应加密密钥?
为什么共享加密EBS快照必须同步共享客户托管密钥
这一要求是由AWS EBS加密的底层设计决定的,核心逻辑如下:
- EBS加密采用信封加密机制,所有密钥管理依托KMS服务实现,加密快照时,系统会用你指定的客户托管密钥(CMK)生成唯一的明文数据密钥(DK):用明文DK加密快照的实际数据,再将用CMK加密后的DK存储在快照元数据中。全程CMK的明文密钥材料不会对外暴露,所有加解密操作都必须调用KMS接口完成。
- 跨账号共享快照时,快照本身仅携带加密后的DK,不包含任何能直接解密数据的明文密钥信息。
- 接收方账号要使用快照,首先需要调用KMS的
Decrypt接口,用对应CMK把加密后的DK解密为明文DK,才能最终解密快照数据。如果没有该CMK的访问权限,接收方即使获取了快照也无法读取其中内容。
关于「仅需要解密密钥即可」的疑问
这个理解本质是正确的,你提到的「解密密钥」对应的就是该CMK的解密权限。只是AWS KMS的设计不允许用户直接获取CMK的明文密钥材料,所有解密操作都必须通过KMS接口完成,因此「给接收方解密权限」的实现方式就是共享客户托管密钥的访问权限,而非直接传递明文密钥。
补充说明:如果快照是用AWS托管的默认aws/ebs密钥加密的,这类密钥不支持跨账号授权,因此这类加密快照本身就不支持跨账号共享,只有使用客户自行创建的托管CMK加密的快照才支持跨账号共享。
内容的提问来源于stack exchange,提问作者Sahand
相关产品推荐
相关产品推荐

