🏸
EC2 Instance Connect EndpointをCDKで作成する
背景
EC2 Instance Connect Endpoint (以下 EIC)がリリースされ数ヶ月経ちました。
踏み台インスタンスの撲滅につながる画期的なサービスですが、Cloudformation非対応なのが悲しいポイントでした。
そんななかしれっとCfn対応していた(すなわちCDK L1Constructで作れる)のでさくっとご紹介です。
実装例
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
const cfnInstanceConnectEndpoint = new ec2.CfnInstanceConnectEndpoint(this, 'ec2InstanceConnectEndpoint', {
subnetId: 'subnetId', // 必須。private, publicいずれでもOK。
// 以下、任意の引数
clientToken: 'clientToken', // よくわからない。誰か教えてください。
preserveClientIp: false, // 後段のEC2へのリクエスト時に実際にリクエストを行ったアクセス元のIP情報を保持するか? default true
securityGroupIds: ['securityGroupId'], // セキュリティグループのID
tags: [{
key: 'key',
value: 'value',
}],
});
参考リンク
最後に
EIC経由でweb socketトンネルを張ってアクセスできますが、SSH, RDP以外の通信がリリース後1週間程度で閉じられてしまったのがとてもショックでした。
ただ、まさかのDB側でlistenするポートを3389(RDP)にすると通過できるのにウケています。
参考記事
猛烈に便利ですが、いつか封じられたり(どうやって?)したら困るなあと思い、あんまり採用に至っていません。
とりあえず個人開発用途なら全然良いのではと思っています。
Discussion