[アップデート] AWS Site-to-Site VPN にセキュリティ強化のための3つの新機能が導入されました

[アップデート] AWS Site-to-Site VPN にセキュリティ強化のための3つの新機能が導入されました

事前共有キー (PSK) がAWS Secrets Manager に統合されました。
Clock Icon2025.06.05

こんにちは、なおにしです。

AWS Site-to-Site VPN に関するアップデートがありましたのでご紹介します。

はじめに

2025年6月3日に以下のアップデートが公開されました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/06/aws-site-to-site-vpn-three-capabilities-enhanced-security/

内容としてはAWS Site-to-Site VPN のセキュリティ強化ということで、以下3つの機能が追加されています。

  1. 事前共有キー (PSK) のAWS Secrets Manager への統合
    • 事前共有キー (PSK) をサイト間 VPN サービスに直接保存するのではなく、AWS Secrets Manager に保存可能
  2. VPNアルゴリズムを追跡するための新しいAPI「GetActiveVpnTunnelStatus」の追加
    • アクティブな VPN トンネルで使用されているセキュリティパラメータをリアルタイムで可視化可能
  3. カスタマーゲートウェイ(オンプレミス側VPNルータ)に適用するサンプルコンフィグを取得するAPI「GetVpnConnectionDeviceSampleConfiguration」に対する「recommended」パラメータの追加
    • IKEv1 などのレガシーオプションを除外した最新のプロトコルの使用を強制する推奨セキュリティ設定を生成可能

ドキュメントとしては以下にまとまって反映されています。

https://docs.aws.amazon.com/vpn/latest/s2svpn/enhanced-security.html

というわけで、追加された機能を1つずつ実際に試してみます。

やってみた

事前準備

  • アクティブな Site-to-Site VPN 接続が存在する前提で進めます

  • VPNトンネルのステータスはアップ状態です

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_1.jpg

  • AWS CLI は執筆時点で最新のバージョンを使用します

    • 実際に使用したバージョン
        $ aws --version                                                                                                               
        aws-cli/2.27.29 Python/3.13.3 Darwin/24.5.0 exe/x86_64
      

① 事前共有キー (PSK) のAWS Secrets Manager への統合

ドキュメントに記載のとおり、事前共有キー(PSK)の保存モードを変更します。まず、[VPNトンネルオプションを変更]から対象のトンネルを選択します。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_2.jpg

今回は「Tunnel 2(54.65.10.223)」から変更します。以下のように、[事前共有キーストレージ]として[シークレット マネージャー]が選択可能になっています。また、現在設定されている事前共有キーもそのまま表示されてしまっています。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_3.jpg

[シークレット マネージャー]を選択すると、[事前共有キー]の箇所が[事前共有キー]に変わります。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_4.jpg

このまま[変更を保存]を押すと、以下のようにチェックボックスにチェックを入れていないため警告が表示されます。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_5.jpg

ドキュメントにも以下の記載があるので、実際に変更される場合はトンネルが一時的にダウンすることをご留意ください。

After changing the storage mode for a VPN tunnel, connectivity is interrupted for up to several minutes. Ensure that you plan for expected downtime.

(機械翻訳)

VPNトンネルのストレージモードを変更すると、最大数分間接続が中断されます。予想されるダウンタイムを必ず計画してください。

改めてチェックボックスにチェックを入れて[変更を保存]すると、ステータスが以下のようになりました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_6.jpg

2〜3分ほどすると、トンネル2がダウン状態になりました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_7.jpg

[変更を保存]してから4分ほどで、トンネル2のステータスはアップに戻りました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_8.jpg

設定変更の対象トンネルがダウンするので、一時的に対向トンネルによる片系運用になりますが、その状態でも正しく通信できることが確認できているのであれば、トンネル片方ずつに適用することでサービス影響は回避できるかと思います。

Secrets Manager のコンソール画面を開くと、以下のとおりシークレットが作成されていました。シークレットキーはIPアドレスのようですね。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_9.jpg

画面上部に表示されているメッセージのとおり、シークレットの値を更新する場合はSecrets Manager からではなく、以下のとおりVPNトンネルオプションの変更から設定します。事前共有キーの値がコンソール画面には表示されなくなりました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_10.jpg

なお、当たり前ではありますが上記の事前共有キーだけを変更して、対向のオンプレミスのVPNルータで同じ事前共有キーを設定しなければ、トンネルがダウンしますのでご注意ください。

同様の流れでトンネル1も事前共有キーをSecrets Managerから取得するように変更しました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_11.jpg

CloudWatch メトリクスで確認すると、トンネルが交互にダウンしたことが分かります。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_12.png

再度Secrets Manager を確認すると、以下のように同じシークレットにキーが追加されていました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_13.jpg

このためSecrets Managerの料金としては1つのVPN接続あたり1シークレット分とそれに伴うAPIコール分が加算される形になります。

補足:サンプルコンフィグでの表記

使用している検証機はFortiGate(60D、ファームウェア: v5.4.4)なので、該当するサンプルコンフィグをダウンロードして確認したところ、以下のような表記に変わっていました。

  (抜粋)
  set proposal aes128-sha1
  set keylife 28800
  set remote-gw 52.68.234.250
  set psksecret *****REDACTED*****
  set dpd-retryinterval 10

Secrets Manager を使用するまではpsksecretに事前共有キーがそのまま記載されていました。

補足:VPN接続作成時に事前共有キーをSecrets Managerに保存することはできない

ここまでの手順は既存のVPN接続に対して事前共有キーの管理をSecrets Managerに変更するという手順でしたが、ドキュメントにも最初から事前共有キーをSecrets Managerに保存する方法については明記されていません。
実際に新しいVPN接続を作成する画面でも、従来どおり事前共有キーを手入力するまたは入力せずに自動生成するしかできないようです。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_14.jpg

② VPNアルゴリズムを追跡する新API「GetActiveVpnTunnelStatus」

続いて、新しく追加されたAPIを試してみます。APIに関するドキュメントは以下です。

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

該当するAWS CLI のコマンドは以下となります。

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/get-active-vpn-tunnel-status.html

実際にコマンドを実行した結果は以下のとおりです。アクティブなVPNトンネルの現在ネゴシエートされているセキュリティパラメータが返ってきています。(古い機器を使用して検証していることがバレますね)

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

以下の記事も本アップデートに併せて投稿されていましたのでご参照ください。(私が検証した環境と全く同じセキュリティ強度でクスッときてしまいました)

https://dev.classmethod.jp/articles/aws-site-to-site-vpn-get-active-vpn-tunnel-status-api/

③「GetVpnConnectionDeviceSampleConfiguration」API に対する「recommended」パラメータの追加

最後に、「GetVpnConnectionDeviceSampleConfiguration」APIの「recommended」パラメータを確認します。こちらのAPIはAWS マネジメントコンソール画面でいうと以下の[設定をダウンロードする]に相当します。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_15.jpg

実際にダウンロードしようとすると、[サンプルタイプを含める]というオプションが追加されていました。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_16.jpg

上記のとおり、サンプルタイプが選択できるようになっていますが、表示されているのはCmpatibilityのみです。これは、ドキュメントに記載のとおりIKEv1では追加された値であるRecommendedを選択できないためです。(そもそも検証に使用した機器のサンプルコンフィグの場合、IKEv2を選択することすらできません)

  • SampleType

    The type of sample configuration to generate. Valid values are "compatibility" (includes IKEv1) or "recommended" (throws UnsupportedOperationException for IKEv1).

以下のようにIKEv2を選択できる場合は、Recommendedを選択することが可能です。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_17.jpg

AWS CLIの場合で取得する場合は、以下のドキュメントをご参照ください。

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/get-vpn-connection-device-sample-configuration.html

APIに関するドキュメントは以下です。

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

このためコマンドのオプションとしては--vpn-connection-id--vpn-connection-device-type-idが必須です。

--vpn-connection-device-type-idについては、例えばベンダーがCisco Systems, Inc.の場合は以下のように確認可能です。

$ aws ec2 get-vpn-connection-device-types --query 'VpnConnectionDeviceTypes[?contains(Vendor, `Cisco Systems, Inc.`)]'
[
    {
        "VpnConnectionDeviceTypeId": "6883834a",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "ASA 5500 Series",
        "Software": "ASA 8.2+"
    },
    {
        "VpnConnectionDeviceTypeId": "b556dcd1",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "ASA 5500 Series",
        "Software": "ASA 9.7+ VTI"
    },
    {
        "VpnConnectionDeviceTypeId": "78c1a727",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "ASA 5500 Series",
        "Software": "ASA 9.x"
    },
    {
        "VpnConnectionDeviceTypeId": "48548f98",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "Cisco ASR 1000",
        "Software": "IOS 12.4+"
    },
    {
        "VpnConnectionDeviceTypeId": "7b754310",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "CSRv AMI",
        "Software": "IOS 12.4+"
    },
    {
        "VpnConnectionDeviceTypeId": "ae4cefeb",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "Firepower",
        "Software": "v6.2.2+"
    },
    {
        "VpnConnectionDeviceTypeId": "b0adb196",
        "Vendor": "Cisco Systems, Inc.",
        "Platform": "ISR Series Routers",
        "Software": "IOS 12.4+"
    }
]

上記で出力されているVpnConnectionDeviceTypeIdを使用して、以下のようにサンプルタイプを指定してコマンドを実行できます。

$ aws ec2 get-vpn-connection-device-sample-configuration --vpn-connection-id vpn-0d521f12ca2c69eee --vpn-connection-device-type-id b556dcd1 --sample-type recommended --output text
! Amazon Web Services
! Virtual Private Cloud

! AWS utilizes unique identifiers to manipulate the configuration of
! a VPN Connection. Each VPN Connection is assigned an identifier and is
! associated with two other identifiers, namely the
! Customer Gateway Identifier and Virtual Private Gateway Identifier.
!
! Your VPN Connection ID                  : vpn-0d521f12ca2c69eee
! Your Virtual Private Gateway ID         : vgw-04c0addeb4c01289b
! Your Customer Gateway ID                : cgw-0d2e9b9616380591c
!
!
! This configuration consists of two tunnels. Both tunnels must be
! configured on your Customer Gateway.
!
(略)

まとめ

今回のアップデートのうち、特に「事前共有キー (PSK) のAWS Secrets Manager への統合」については、これまでシークレット情報がそのまま表示されてしまう状態でしたが、その状況が改善されていますので、セキュリティ的には問題でも仕様上やむなしという整理になっていた環境にはありがたいアップデートかと思います。

ちなみに検証に使用したVPN接続の環境はTerraformで作成しているのですが、事前共有キーについては執筆時点で以下のとおり注意書きがあり、Ephemeral Values も適用できずどうしようかなと思っていたところだったので、いずれアップデートされるのを心待ちにしています。

20250605_naonishi_aws-site-to-site-vpn-security-enhancements-202506_18.png

本記事がどなたかのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.