エラー内容
プライベートサブネットでセッションマネージャー(SSM)を利用しようとしたところ以下のエラーになった。
解決策
セッションマネージャー(SSM)を利用するためには、インターネット or SSM用エンドポイントを経由して、SSMにアクセスする必要がある。
今回はプライベートサブネットのためSSM用のエンドポイントを作成した。必要なエンドポイントはプライベートサブネットに配置したEC2にAWS Systems Manager Session Managerを使ってアクセスするに記載されている。
シェルにアクセスしたいだけだったため、VPCから以下2つのエンドポイントを作成した。
・com.amazonaws.ap-northeast-1.ssm
・com.amazonaws.ap-northeast-1.ssmmessages
※この2つはインターフェイスVPCエンドポイントという方式であり、ルートテーブルへの設定は不要だった。
そのほかの設定はうまくいっていたため、接続できるようになった。
その他のハマりどころ – EC2ロールについて
AmazonSSMManagedInstanceCoreを指定する。
※リリース当時はAmazonEC2RoleforSSMを指定することとなっていたが、許可している権限の範囲が広いため将来的には非推奨となる予定。
参考
・ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順
・PrivateLinkがリリースし新たにEC2, Systems Manager, ELB, Kinesis, Service CatalogがVPCエンドポイントに対応しました