Создать / связать пару ключей s sh с экземпляром ec2 с помощью CDK - PullRequest
2 голосов
/ 03 февраля 2020

Я использую новый Cloud Development Toolkit (CDK) для построения инфраструктуры на AWS с использованием языка Java.

Я использую Bastion Host в общедоступной c su bnet для связи с экземпляром RDS на частном su bnet, поэтому я получаю доступ к базе данных (на частном su bnet) через туннель s sh на хосте Bastion.

I Я создал BastionHost следующим образом:

BastionHostLinux
            .Builder
            .create(scope, bastionId)
            .vpc(vpc)
            .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.SMALL))
            .subnetSelection(subnetSelection)
            .instanceName(bastionName)
            .build();

Я не нашел никакого метода для создания или привязки пары ключей sh к экземпляру, поэтому при попытке подключиться aws сообщает мне, что у меня нет пары ключей s sh, связанной с экземпляром ec2.

Мой вопрос: как я могу связать уже существующую пару ключей с экземпляром ec2, используя CDK? Или (было бы лучше), как я могу создать пару ключей fre sh, используя CDK?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Как связать уже существующую пару ключей с экземпляром ec2 с помощью CDK?

Нет ключа s sh в экземпляре бастиона, если вы хотите s sh для этого вы должны использовать aws ec2-instance-connect, посмотрите пример из aws документации CDK. И вот сообщение в блоге , которое объясняет более подробно instance-connect.

1 голос
/ 17 марта 2020

Вы можете использовать addPropertyOverride, чтобы установить существующий ключ для хоста бастиона.

    const bastionSecurityGroup = new ec2.SecurityGroup(this, 'BastionSecurityGroup', {
      vpc,
    });
    const bastion = new ec2.BastionHostLinux(this, 'Bastion', {
      vpc,
      subnetSelection: { subnetType: ec2.SubnetType.PUBLIC },
      instanceName: `my-bastion`,
    });
    bastion.instance.instance.addPropertyOverride('KeyName', `my-bastion-key`);
...