AWSメモ(HTTPS 通信で AWS EC2 へのリモートデスクトップ接続)
「RDP over HTTPS」に関するメモ。
「Systems Manager」を利用することで、パブリックなIPアドレスを持たなくても接続できる。
今回、試したAWS上の環境は下図のとおり。
エンドポイントに関しては、VPCのAZ数を「2」にしたことで各AZに自動生成された
CDKを使って、CloudFormation スタックとしてAWSにデプロイした。
VPCエンドポイントして、下記を追加。
- com.amazonaws.[region].ssm
- com.amazonaws.[region].ssmmessages
- com.amazonaws.[region].ec2messages
vpc.addInterfaceEndpoint("ssm-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.SSM }); vpc.addInterfaceEndpoint("ssm-messages-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.SSM_MESSAGES }); vpc.addInterfaceEndpoint("ec2-messages-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.EC2_MESSAGES });
EC2に関しては、下記のAMIを使用。
machineImage: ec2.MachineImage.latestWindows( ec2.WindowsVersion.WINDOWS_SERVER_2019_JAPANESE_FULL_BASE ),
SecurityGroupは下記のとおり。インバウンドルールでRDP「ポート3389」をオープンにしていない。
セッションマネージャ経由での接続はOK
アクセス元となるクライアント端末で、セッション開始&ポート転送。
% aws ssm start-session --target i-0355a33eb8da08120 --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"
Starting session with SessionId: <IAM Username>-0b524196744cd5ce7 Port 13389 opened for sessionId <IAM Username>-0b524196744cd5ce7. Waiting for connections...
RDPクライアント(ここでは、「Remmina」を使用)から「localhost:13389」
ドメインは入れなくてよい。
接続できた。