簡體   English   中英

使用 CDK 創建/關聯 ssh 密鑰對到 ec2 實例

[英]Create/associate ssh keypair to an ec2 instance with the CDK

我正在使用新的雲開發工具包 (CDK) 在 AWS 上使用 Java 語言構建基礎設施。

我正在使用公共子網上的堡壘主機與私有子網上的 RDS 實例進行通信,因此我通過堡壘主機上的 ssh 隧道從外部訪問數據庫(在私有子網上)。

我以這種方式創建了 BastionHost:

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

我沒有找到任何方法來創建 ssh 密鑰對或將 ssh 密鑰對關聯到實例,所以當我嘗試連接時,aws 告訴我我沒有任何與 ec2 實例關聯的 ssh 密鑰對。

我的問題是:如何使用 CDK 將已存在的密鑰對與 ec2 實例相關聯? 或者,(最好)如何使用 CDK 創建新的密鑰對?

您可以使用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 將已存在的密鑰對與 ec2 實例相關聯?

堡壘實例上沒有 ssh 密鑰,如果您想通過 ssh 連接到它,您應該使用aws ec2-instance-connect ,查看 aws CDK 文檔中的示例 這是一篇博客文章,其中詳細解釋了instance-connect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM