VPC Reachability Analyzerでクロスアカウントのトラブルシューティング

既存のAWSアカウントをControlTowerの管理下に移管する

AWSにおけるマルチアカウントやオンプレとのネットワーク

先日の記事でマルチアカウントでセキュアな環境を簡単に構築できる AWS Control Towerについて触れました。

AWSでのマルチアカウント運用には様々なベストプラクティスがあります。
こちらはネットワークに関するベストプラクティスで、AWS Transit GatewayやIPAMを配置したネットワーク専用アカウントを作成する、というものです。

企業のオンプレミスのネットワークと接続する場合は、このTransit Gatewayに対してAWS VPNをアタッチメントしたりやDirect Connect Gatewayを関連付けたりすることができます。

例えば以下は企業のオンプレのネットワークとの接続に、ネットワーク専用アカウントにあるTransit Gatewayとサイト間VPN接続を構築した場合のイメージです。

1つの組織で複数のDirect Connectやサイト間VPN接続を構築することはありますが、さすがにアカウントの数だけ構築することはないでしょう。
AWSでアカウント間やオンプレとの通信を必要とするサービスを実装した場合、その通信の正常性を確認したり、トラブル時にはトラブルシューティングを行ったりしなくてはなりません。
サービスを構築したアカウント、ネットワーク専用アカウント、オンプレと複数の環境にわたってネットワークの正常性を確認する必要があるでしょう。

VPC Reachability Analyzer

このような確認を行う場合には、コマンドを実行したりルーティングテーブル、ACL、セキュリティグループなどの設定を確認したりと様々な箇所を調べる必要があります。
特にオンプレのネットワーク運用に精通した方ほど、経験に裏打ちされたトラブルシューティングにより問題解決が早く大変頼りになります。(私も日々精進しております)

このような設定を個別に調べていくことももちろん可能ですが、AWSには大変便利なVPC Reachability Analyzerという機能があります。
AWSのリソース間の到達可能性を簡単に確認できる機能で、もし到達不可能だった場合はその箇所も明らかにしてくれるという機能です。

例えばVPC内の特定のEC2インスタンスから別のEC2インスタンスへRDP(TCP3389ポート)の到達可能性を確認したい場合は以下のようなパスの分析を実行します。

この例では送信先のインスタンスのセキュリティグループのルールにマッチしていないと言われています。実際に3389番ポートの内向きの通信を許可するルールは追加していませんでしたので、このようにして遮断されている箇所を迅速に特定できます。

クロスアカウントでのVPC Reachability Analyzer

このように便利なVPC Reachability Analyzerですが、アカウントを跨いだ通信の到達可能性を確認したい場合は、少しだけ設定が必要となります。
AWS Organizationsを利用している場合は、管理アカウントから
AWS Network Manager→モニタリングとトラブルシューティング→Reachability Analyzer→設定
と移動します。

この画面より「信頼されたアクセスをオンにする」をクリックします。
これによってAWS OrganizationsのメンバーアカウントにCloudFormation StackSetによって受け入れるロールが自動的にデプロイされるようです。(Amazon VPC Reachability Analyzer と AWS Organizations - AWSユーザーガイド )
必要に応じて委任された管理者として、メンバーアカウントを登録することも可能です。ここで登録されたアカウントからはVPC Reachability Analyzerによってクロスアカウントのパスの分析が可能になります。

それでは実際にネットワーク専用アカウントのVPC Reachability Analyzerで、アカウントAのEC2インスタンスからオンプレへの到達可能性を確認してみます。
委任された管理者のアカウントでは、パスの作成を行う画面でソースアカウントと送信先アカウントの選択肢が追加されていることがわかります。

アカウントAからオンプレへの通信は、ネットワーク専用アカウントに作成されたTransit Gatewayを→サイト間VPNのエンドポイントを経て到達します。
今回はオンプレのとあるサーバへの到達可能性を確認したいので、宛先は特定のIPアドレスとします。IPアドレスとなると特定のアカウントには紐付かないので、送信先タイプでIPアドレスを選択するとアカウント選択はグレーアウトしました。

パスの分析結果は以下のようになりました。tgw-attach-***がアカウントAとネットワーク専用アカウントの境目と考えることができます。無事、アカウントを跨いだ到達性が確認できていることがわかります。
なお、今回は最終的な宛先がAWSの外部にあるので、AWS上の最後のネットワークゲートウェイまでの到達可能性がチェックされます。(Amazon VPC Reachability Analyzer が、さらに 3 つの AWS ネットワークサービスをサポート-AWS の最新情報)
また、Rechability Analyzerはパケットを送信して到達性を解析しているわけではないので、オンプレのネットワーク機器にログは残りません。

これらの機能を使いこなして、正常性確認・トラブルシューティングを迅速に行えるようになっていきたいですね!

Next Post Previous Post