Classmethod Cognito Cloudfront Vpc Origin Agentcore Websocket
CognitoとVPCオリジンでAgentCoreのインタラクティブシェル環境を構築してみた
- URL: https://dev.classmethod.jp/articles/cognito-cloudfront-vpc-origin-agentcore-websocket/
- 日付: 2026-06-07
- Tier: Tier 3
- 要旨: AgentCore RuntimeのWebシェルにCognito + CloudFront署名付きCookieで認証を追加し、VPC Origin(2026年5月GA)のWebSocketサポートとRegional NAT Gatewayを活用したパブリックサブネットレス構成をCDKで構築した。
詳細
全体アーキテクチャ
ブラウザー → CloudFront → VPC Origin → Internal ALB → ECS Fargate(WebShell中継)
→ NAT GW → AgentCore Runtime Shell API認証の仕組み
/login→ Lambda → Cognito Hosted UI へ302リダイレクト- ログイン成功 →
/callback?code=xxx→ CallbackLambdaがauthorization codeをtokenに交換 - CloudFront署名付きCookie(Policy/Signature/Key-Pair-Id)を発行(有効期間8時間)
- Cookie付きでリクエスト → CloudFront Trusted Key Groupで検証
CDKの実装ポイント
- 署名鍵ペアはカスタムリソースでデプロイ時にRSA 2048bit生成
- 秘密鍵はSSM Parameter Store(SecureString)保存、公開鍵はCloudFront Public Key + Key Group登録
- Lambda関数URLはOAC(Origin Access Control)+
AWS_IAM認証でCloudFront経由以外の直接アクセスを拒否
CloudFront VPC Origin(2026年5月GA)
- WebSocketサポートが追加され、プライベートサブネットにあるWebSocketアプリをCloudFront経由で公開可能
- デフォルトビヘイビアの設定ポイント:
CACHING_DISABLED+ALL_VIEWER+ALLOW_ALL - CloudFront・VPC Origin側にWebSocket固有の追加設定は不要、HTTP Upgradeを透過的に中継
Regional NAT Gateway(2025年11月GA)
- CDKのL2 VpcコンストラクトはRegional NAT Gatewayに非対応のため
CfnNatGateway(L1) で作成 availabilityMode: 'regional'+vpcIdを直接指定(従来のzonal NAT Gwと異なりsubnetId不要)- パブリックサブネットなしのVPCからAgentCore Shell APIへのアウトバウンドを実現