我正在为我创建的新EC2环境加密我的根EBS卷。我知道我可以从AWS控制台和CloudFormation做到这一点,但希望能够通过Elastic Beanstalk配置文件来做到这一点。
我尝试通过在启动配置中设置EBS卷,但是这只会从根卷中创建其他卷:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
BlockDeviceMappings: [ DeviceName: "/dev/sdf1", Ebs: { Encrypted: true, VolumeSize: 8, VolumeType: gp2}]
我也曾尝试在创建环境时创建一个新的EBS卷,但是我不确定如何动态获取EC2实例的逻辑名(我在这里使用MyEC2作为参考):
Type: AWS::EC2::Volume
Properties:
AutoEnableIO: true
AvailabilityZone: { "Fn::GetAtt" : [ "MyEC2", "AvailabilityZone" ] }
Encrypted: true
KmsKeyId: mykey
Size: 8
VolumeType: gp2
基本上,我需要能够使用加密的根卷创建一个新环境。任何帮助将不胜感激!
答案 0 :(得分:4)
您不能指定使用CloudFormation或Beanstalk加密根卷。关键是使用具有加密根卷的AMI。这意味着复制您要使用的AMI,并在AMI复制过程中对其进行加密。拥有加密的AMI后,您将在CloudFormation或Beanstalk中使用该AMI ID来启动实例。
要加密根卷,请执行以下操作:
这是AWS上唯一可用于加密EC2实例上的根卷的方法。拥有加密的AMI之后,您可以将其与任何可以指定AMI ImageId来创建实例的服务一起使用。
加密卷将使用KMS管理加密密钥。注意:每个KMS密钥和使用费用都需要支付少量费用。
您还可以使用CLI创建加密的AMI。
aws ec2 copy-image -r source_region -s source_ami_id \
[-n ami_name] [-d ami_description] [-c token] \
[--encrypted] [--kmsKeyID keyid]
在创建加密的AMI时,不要使用从快照创建的AMI。 AWS指出这可能会导致启动失败。
对于Elastic Beanstalk,这是使用自定义AMI的链接:
答案 1 :(得分:0)
自2019年5月23日起,您可以选择加入新EBS卷的默认加密。两个EBS(根/ docker数据)在启动时均已加密。需要按区域启用此功能。
测试设置
平台版本和解决方案堆栈名称:单容器Docker 18.06版本2.12.11
AWS控制台
EC2 Console > Settings > Always encrypt new EBS volumes
AWS CLI
先升级awscli
pip install awscli --upgrade
启用
aws ec2 enable-ebs-encryption-by-default --region us-east-1
{
"EbsEncryptionByDefault": true
}
禁用
aws ec2 disable-ebs-encryption-by-default --region us-east-1
{
"EbsEncryptionByDefault": false
}
获取状态
aws ec2 get-ebs-encryption-by-default --region us-east-1
{
"EbsEncryptionByDefault": false
}
https://aws.amazon.com/blogs/aws/new-opt-in-to-default-encryption-for-new-ebs-volumes/