AWS Site-to-Site VPNのGetActiveVpnTunnelStatus APIでVPNトンネルステータスを簡単確認してみた

AWS Site-to-Site VPNのGetActiveVpnTunnelStatus APIでVPNトンネルステータスを簡単確認してみた

Clock Icon2025.06.05

はじめに

AWS Site-to-Site VPNの運用保守フェーズでは、VPNトンネルのステータスを確認したい場面があります。例えば、障害が発生した際や現行システムの仕様を確認したい場合などです。

従来は、VPNトンネルの詳細な設定情報を確認するために、トンネルアクティビティログを有効にしてログを解析する必要がありました。

そんな中、GetActiveVpnTunnelStatusというAPIが追加されました。このAPIを使用すると、IKEバージョン・DHグループ・暗号化アルゴリズム・整合性アルゴリズムを簡単に確認できます。

https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ActiveVpnTunnelStatus.html

そこで、早速試してみました。

前提

検証のため、自宅に転がっている適当なVPNルータを使って、AWS Site-to-Site VPNを構築しました。構築手順は割愛いたします。

https://dev.classmethod.jp/articles/introduction-2024-aws-site-to-site-vpn/

APIが返す情報について

GetActiveVpnTunnelStatusは、以下の情報を返します。

  • IkeVersion: 使用されているIKE(Internet Key Exchange)プロトコルのバージョン
  • Phase1DHGroup: Phase 1 IKEネゴシエーションで使用されるDiffie-Hellmanグループ番号
  • Phase1EncryptionAlgorithm: Phase 1 IKEネゴシエーションで合意された暗号化アルゴリズム
  • Phase1IntegrityAlgorithm: Phase 1 IKEネゴシエーションで合意された整合性アルゴリズム
  • Phase2DHGroup: Phase 2 IKEネゴシエーションで使用されるDiffie-Hellmanグループ番号
  • Phase2EncryptionAlgorithm: Phase 2 IKEネゴシエーションで合意された暗号化アルゴリズム
  • Phase2IntegrityAlgorithm: Phase 2 IKEネゴシエーションで合意された整合性アルゴリズム
  • ProvisioningStatus: VPNトンネルの現在のプロビジョニングステータス(available、pending、failed)

AWS CLIで確認してみる

AWS CLIを使用して、VPNトンネルのステータスを確認してみます。AWS CLIは 2.27.23 以降のバージョンが必要です。今回は以下のバージョンを使っています。

$ aws --version
aws-cli/2.27.29 Python/3.13.3 Darwin/24.5.0 exe/x86_64

APIの引数には、Site-to-Site VPNのVPN IDとトンネルの外部IPを指定します。実際の結果は以下の通りです。

$ aws ec2 get-active-vpn-tunnel-status --vpn-connection-id vpn-xxxxxxxxxxxxxxxxx --vpn-tunnel-outside-ip-address xx.xx.xx.xx
{
    "ActiveVpnTunnelStatus": {
        "Phase1EncryptionAlgorithm": "AES128",
        "Phase2EncryptionAlgorithm": "AES128",
        "Phase1IntegrityAlgorithm": "SHA1",
        "Phase2IntegrityAlgorithm": "SHA1",
        "Phase1DHGroup": 2,
        "Phase2DHGroup": 2,
        "IkeVersion": "ikev1",
        "ProvisioningStatus": "available"
    }
}

セキュリティ強度が弱すぎですね。検証で使ったVPNルータが古すぎた。それはともかく、IKEバージョンなどの情報がサクッと確認できるので、とても便利です。

注意点

このAPIはあくまでも「ネゴシエートされている」VPNトンネルのステータスを確認するためのものです。なので、接続が確立しない原因を探りたい、などのユースケースでは使用できません。その場合は、これまでと同様にトンネルアクティビティログを有効にして、ログを確認する必要があります。

ちなみに、ネゴシエートしていない場合は、プロビジョニングステータスのみが返ってきました。

{
    "ActiveVpnTunnelStatus": {
        "ProvisioningStatus": "available"
    }
}

まとめ

VPNは一度接続が確立すると、その後はほぼ自動で運用されることが多いです。しかし、セキュリティ要件の変化や定期的な監査において、実際の設定を確認する必要があります。機会があれば、ぜひご活用ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.