Estoy usando el nuevo kit de herramientas de desarrollo en la nube (CDK) para construir una infraestructura en AWS usando el lenguaje Java.
Estoy usando un Bastion Host en una subred pública para comunicarme con una instancia de RDS en una subred privada, así que accedo a la base de datos (en la subred privada) externamente a través de un túnel ssh en el Bastion Host.
He creado el BastionHost de esta manera:
BastionHostLinux .Builder .create(scope, bastionId) .vpc(vpc) .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.SMALL)) .subnetSelection(subnetSelection) .instanceName(bastionName) .build();No encuentro ningún método para crear o asociar un par de claves ssh a la instancia, por lo que cuando intento conectarme, aws me dice que no tengo ningún par de claves ssh asociado con la instancia ec2.
Mi pregunta es: ¿Cómo puedo asociar un par de claves ya existente con una instancia ec2 usando el CDK? O (sería mejor) ¿cómo puedo crear un nuevo par de claves usando el CDK?
Puede usar addPropertyOverride para configurar una clave existente para el host bastión.
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`);¿Cómo puedo asociar un par de claves ya existente con una instancia ec2 utilizando el CDK?
No hay una clave ssh en la instancia de bastión, si desea usar ssh, debe usar aws ec2-instance-connect , mire el ejemplo de la documentación de aws CDK. Y aquí hay una publicación de blog que explica con más detalles instance-connect .