クラウド上に安全な Windows 開発環境を作りたくて、AWS EC2・Session Manager(SSM)・RDP を組み合わせた構成を作りました。
ローカルPCに負荷をかけず、いつでも起動・停止できる快適な開発環境です。
この記事では次の内容をまとめています:
AWS CLI のセットアップ Session Manager を使った “外部公開ゼロ” のRDP環境構築 Windows Server 2022 の初期設定(日本語化・時刻・安全設定) IAMユーザーとWindowsアカウントの整理(最小権限化)
1. AWS CLI のセットアップ
AWS上のEC2に安全にアクセスするため、CLI専用のIAMユーザーを作成しました。
1-1. IAM ユーザー「cli-user」を作成
今回は CLI専用アカウント として完全に分離。
作成内容
ユーザー名:cli-user アクセス方法:Access key(プログラムアクセス)
付与ポリシー:
AmazonSSMFullAccess
AmazonEC2ReadOnlyAccess
AdministratorAccess は不要(セキュリティ的にも排除)
セキュリティ:
後からグループを調整し、最低限の権限だけ付与する構成に変更。
1-2. AWS CLI インストール
ローカルPC(Windows)側でインストール:
公式:
インストール後
aws –version
1-3. 設定(aws configure)
CLIにキーを登録:
aws configure
登録例:
AWS Access Key ID: xxxxxxxxxxxxx
AWS Secret Access Key: xxxxxxxxxxxxx
Default region: ap-northeast-1
Default output: json
動作確認
aws sts get-caller-identity
出力に cli-user が表示されれば成功。
2. Session Manager(SSM)経由でRDPする安全構成
RDP の 3389ポートを完全に閉じたまま
AWS Systems Manager (SSM) でトンネルを張り、
安全にRDP接続する仕組みを構築しました。
これで外部攻撃リスクはゼロになります。
2-1. Windows Server 側:SSM Agent の更新
EC2 上の Windows Server にログインし、PowerShellで実行。
最新版のSSM Agentを取得
Invoke-WebRequest https://github.com/aws/amazon-ssm-agent/releases/latest/download/AmazonSSMAgentSetup.exe
-OutFile SSMSetup.exe
インストール
Start-Process .\SSMSetup.exe -ArgumentList “/S” -Wait
サービス再起動
Restart-Service AmazonSSMAgent
2-2. ローカルPC→EC2 へポートフォワード(RDPトンネル作成)
CLI で Session Manager のポートフォワードを開始。
aws ssm start-session --target i-xxxxxxxxxxxxxxx
–document-name AWS-StartPortForwardingSession `
–parameters “localPortNumber=13389,portNumber=3389”
これでローカルPCの:
localhost:13389 → EC2の3389(RDP)
という安全トンネルが確立します。
※ この PowerShell ウィンドウは閉じないこと
(閉じたい場合は Ctrl + C)
2-3. RDP接続(外部公開ゼロで接続)
Windows の RDP クライアント(mstsc)で:
localhost:13389
ユーザー名:Administrator
パスワード:EC2初回ログイン時に取得したもの
2-4. セキュリティグループから RDP を完全削除
トンネルRDPが動くのを確認した後、
セキュリティグループのインバウンドルールから TCP 3389(RDP)を削除。
結果:
外部からの RDP → 完全遮断 Session Manager 経由だけ → 許可
AWSが推奨する“最も安全なWindows運用”になります。
3. Windows Server 2022 の初期設定
Session Manager RDPで接続後、サーバの初期設定を実施。
3-1. 日本語化(表示言語)
Settings → Time & Language → Language & Region
→ Japanese を追加
→ Windows display language に設定
→ 再起動
システムロケールも日本語へ
Control Panel → Region → Administrative → Change system locale → 日本語
3-2. タイムゾーン(日本時間)
Set-TimeZone -Name “Tokyo Standard Time”
3-3. Windows Update の適用
最新の更新プログラムをすべて適用。
IME のバージョン確認は不要。
Windows Update が最新ならIMEも最新に更新される。
3-4. Windows Firewall
デフォルト設定のままでOK(推奨) 不要なルールを無効にするとSSMや内部通信が壊れる可能性があるためそのままにする
ポイントは:
外部からの攻撃は SecurityGroup で完全に遮断済み
Windows Firewall はデフォルトでよい
4. IAM と Windows アカウントの整理(セキュリティ強化)
最後に、AWS/Windows のアカウントを最適化。
4-1. cli-user の権限を必要最小限に変更
最終構成:
AmazonSSMFullAccess AmazonEC2ReadOnlyAccess
→ AdministratorAccess は削除
→ IAMグループも安全な状態に調整済み
4-2. Windows Server側も“個人管理者アカウント”を作成
セキュリティ向上のため:
Administrator(デフォルト)
自分専用の管理者アカウント
この2つに変更。
→ Administratorを使い続けるより安全でログも明確。
まとめ:今回構築した環境の特徴
AWS CLI で SSM を安全に実行できる Session Manager のポートフォワードで RDP 接続 外部から3389を完全に閉じた“最強の安全構成” Windows Server を日本語化・最新化 IAM権限とWindowsアカウントを分離 低コスト(停止中は EBS のみ課金)
ローカルPCに依存せず、
必要な時だけEC2を起動して安全に作業できる開発環境が完成しました。