Как автоматизировать шифрование EBS с помощью Elastic Beanstalk - PullRequest
0 голосов
/ 08 сентября 2018

Я хочу зашифровать мои корневые тома EBS для новых создаваемых мной сред EC2. Я знаю, что могу сделать это из консоли 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

По сути, мне нужно создать новую среду с зашифрованным корневым томом. Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

По состоянию на 23 мая 2019 г. вы можете включить шифрование по умолчанию для новых томов EBS . Оба EBS (данные root / docker) были зашифрованы при запуске. Эта функция должна быть включена для каждого региона.

Тестовая настройка

Версия платформы и имя стека решения: Single Container Docker 18.06 версия 2.12.11

Консоль AWS

EC2 Console > Settings > Always encrypt new EBS volumes

AWS CLI

обновление awscli first

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/

0 голосов
/ 15 сентября 2018

Нельзя указать для шифрования корневого тома с помощью CloudFormation или Beanstalk. Ключ должен использовать AMI, который имеет зашифрованный корневой том. Это означает копирование AMI, который вы хотите использовать, и шифрование его во время процесса копирования AMI. Получив зашифрованный AMI, вы будете использовать этот идентификатор AMI в CloudFormation или Beanstalk для запуска экземпляров.

Чтобы зашифровать корневой том:

  • Выберите AMI, для которого вы хотите создать свой экземпляр EC2 в консоли.
  • Скопируйте AMI, выбрав «зашифровать» в настройках. Это создаст новый AMI с зашифрованным корневым томом.
  • Укажите новый AMI при создании экземпляра.

Это единственный метод, доступный в AWS для шифрования корневого тома в экземпляре EC2. Получив зашифрованный AMI, вы можете использовать его с любым сервисом, где вы можете указать AMI ImageId для создания экземпляров.

Зашифрованный том будет использовать KMS для управления ключами шифрования. Примечание. За каждый ключ KMS и плату за использование взимается небольшая плата.

Вы также можете создать зашифрованный 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:

Использование пользовательского образа машины Amazon (AMI)

...