どうも駆け出し12冠SIerのアスカです。2024年3月から某SIerで働き始めました。今日は初めてのPJでAWS SSMのFleet Managerで詰まったのでその内容と解決方法を共有します。
やりたかった事
やりたかったのはプライベートサブネットに設置したインバンドポート無しのWindowsサーバにSSMを使ってRDP接続する事です。※構成図は以下
ぶち当たった問題
SSMエージェントがいつまで経っても認識されない...
ちなみに多くの記事で見かける以下設定は正しく出来ていました。
- AmazonSSMManagedInstanceCoreを付与したIAMロールの作成とEC2へのアタッチ
- SSMエージェントのインストール(デフォルトでインストール済みだった)
- 各種VPCエンドポイントの作成
- VPCエンドポイント用SGの作成とアタッチ(443のインバンドを許可,アウトバウンドはデフォルト)
- VPCのDNS名前解決の有効化
原因&解決策
原因は、VPCエンドポイントのプライベートDNS名が無効になっていた事でした。
なので、解決方法としてはCloudFormationのVPCエンドポイントを作る記述にPrivateDnsEnabledのプロパティを加えるだけでした。(デフォルトはFalse)
sample_cfn_yaml
Resources:
CWLInterfaceEndpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
VpcEndpointType: 'Interface'
ServiceName: !Sub 'com.amazonaws.${AWS::Region}.logs'
VpcId: !Ref myVPC
SubnetIds:
- !Ref subnetA
- !Ref subnetB
SecurityGroupIds:
- !Ref mySecurityGroup
+ PrivateDnsEnabled: True
記事が少ないと単純な事でもぶつかったりしますね。良い勉強になりました。
余談
Fleet Managerは便利ですが、デフォルトではPowerShellの入力が出来ない使いにくさがあります。この問題も2つ程のコマンドで解決出来たので思い出した頃に記事を上げます。