亚马逊AWS官方博客

AWS数据纵深防御篇-如何配置EBS整合KMS的静态加密

几个月前,AWS Key Management Service(AWS KMS)服务终于在AWS中国上线。不同于全球区的KMS服务,在中国区的是一项使用中国政府批准的硬件安全模块保护密钥安全的托管服务,并且使用了合规的加密算法。加密密钥可以用于加密用户的应用程序,也可用于加密和保护其他AWS服务。Amazon Elastic Block Store (EBS) 对于用户的Amazon EBS卷提供了加密的解决方案,正是使用了KMS的加密服务。在对EBS卷启用加密后,用户不用为了安全考虑再去搭建和维护一套安全系统来实现块存储的加密。此项EBS卷加密服务也随着AWS KMS的服务在中国区上线一同发布。

当创建一个加密的Amazon EBS卷时,用户可以使用KMS中的 AWS 托管的密钥(AWS managed keys)或者客户管理的密钥(Customer managed keys)。如果用户使用的是客户管理的密钥,还能使用到其他更多的密钥功能,例如每年自动轮询密钥服务。更多的关于创建客户管理的密钥请参考创建密钥。EBS卷解密主要发生在EC2运行的虚拟化主机上,数据根据需要进行解密,然后存储在其内存中,这有助于用户保护EBS卷上保存的所有数据,同时帮助用户更加容易的获取一些安全合规认证。

在本篇文章中,我们将分别从AWS管理控制台、AWS命令行和SDK三方面分别介绍如何使用客户管理的密钥创建一个加密的Amazon EBS卷。

在EC2 控制台上创建一个加密的Amazon EBS卷:

参照以下步骤去启动一个客户管理的密钥加密的EC2实例:

1.登录到AWS管理控制台,打开EC2控制台,

2.选中启动实例,然后在向导的步骤1中,选中一个Amazon 系统映像 (AMI)

3.在向导的步骤2中,选择一个实例类型,然后提供额外的配置信息。

4.在向导的步骤3中,对于配置的详细信息,参照启动一个实例。

5.在向导的步骤4中,提供额外的你想要挂载到你的实例上的EBS卷。创建一个加密的Amazon EBS卷,首选需要使用添加新卷创建一个新卷。

6.在加密的参数设置里面,从下拉菜单中选择你之前创建的密钥。

7.选择下一步添加标签或者直接选择审核和启动去启动实例。

以AWS CLI或者SDK的方式创建一个加密的Amazon EBS卷:

你也可以使用RunInstances去启动一个带有加密Amazon EBS卷的实例,在启动过程中需要特别注意将Encrypted属性设置到true,并且添加kmsKeyID。例如:

$> aws ec2 run-instances –image-id ami-08b835182371dee58 –count 1 –instance-type t2.small –region cn-north-1 –block-device-mappings file://mapping.json

在这个例子里面,mapping.json 描述了创建的EBS卷的属性:

 

{

"DeviceName": "/dev/sda1",

"Ebs": {

"DeleteOnTermination": true,

"VolumeSize": 100,

"VolumeType": "gp2",

"Encrypted": true,

"kmsKeyID": "arn:aws-cn:kms:cn-north-1:612605126983:key/9b3c0ec1-0f5d-411c-a05d-583548ba5a6e"

}

}

更多详细内容,请参考以下文档:

AWS Key Management Service API Reference

AWS KMS in the AWS CLI Reference

 

本篇作者

刘亚彬

AWS 解决方案架构师。负责基于 AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内的应用和推广。在加入 AWS 前,拥有超过15年项目实施经验,曾就职于Citrix,主要服务于国内外金融类客户。