Create/associate 使用 CDK 将 ssh 密钥对连接到 ec2 实例
Create/associate ssh keypair to an ec2 instance with the CDK
我正在使用新的云开发工具包 (CDK) 在 AWS 上使用 Java 语言构建基础设施。
我在 public 子网上使用 Bastion 主机与私有子网上的 RDS 实例通信,因此我通过 Bastion 上的 ssh 隧道从外部访问数据库(在私有子网上)主持.
我以这种方式创建了 BastionHost:
BastionHostLinux
.Builder
.create(scope, bastionId)
.vpc(vpc)
.instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.SMALL))
.subnetSelection(subnetSelection)
.instanceName(bastionName)
.build();
我找不到任何创建 ssh 密钥对或将其关联到实例的方法,因此当我尝试连接时,aws 告诉我没有任何与 ec2 实例关联的 ssh 密钥对。
我的问题是:如何使用 CDK 将已存在的密钥对与 ec2 实例相关联?或者,(这会更好)如何使用 CDK 创建新的密钥对?
How can I associate an already existent keypair with an ec2 instance using the CDK?
bastion 实例上没有 ssh 密钥,如果您想通过 ssh 连接到它,您应该使用 aws ec2-instance-connect
,查看 aws CDK 文档中的 example。
这里有一个 blog post 更详细地解释了 instance-connect
.
您可以使用 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`);
我正在使用新的云开发工具包 (CDK) 在 AWS 上使用 Java 语言构建基础设施。
我在 public 子网上使用 Bastion 主机与私有子网上的 RDS 实例通信,因此我通过 Bastion 上的 ssh 隧道从外部访问数据库(在私有子网上)主持.
我以这种方式创建了 BastionHost:
BastionHostLinux
.Builder
.create(scope, bastionId)
.vpc(vpc)
.instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.SMALL))
.subnetSelection(subnetSelection)
.instanceName(bastionName)
.build();
我找不到任何创建 ssh 密钥对或将其关联到实例的方法,因此当我尝试连接时,aws 告诉我没有任何与 ec2 实例关联的 ssh 密钥对。
我的问题是:如何使用 CDK 将已存在的密钥对与 ec2 实例相关联?或者,(这会更好)如何使用 CDK 创建新的密钥对?
How can I associate an already existent keypair with an ec2 instance using the CDK?
bastion 实例上没有 ssh 密钥,如果您想通过 ssh 连接到它,您应该使用 aws ec2-instance-connect
,查看 aws CDK 文档中的 example。
这里有一个 blog post 更详细地解释了 instance-connect
.
您可以使用 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`);