Deep-dive on the Next Gen Platform. Join the Webinar!

Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • セキュリティ
  • Private Space
  • インフラストラクチャネットワーキング
  • Private Space VPN 接続

Private Space VPN 接続

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2022年06月27日(月)

Table of Contents

  • 制約
  • VPN 接続の設定
  • IKE 仮共有キーの変更
  • 互換性
  • StrongSwan の設定例

Heroku Private Spaces および Heroku Shield Spaces では、IPSec VPN を使用して別のプライベートネットワークへの接続を設定できます。これにより、dyno はプライベートネットワーク上のホストに接続でき、その逆も可能になります。接続はパブリックインターネット経由で確立されますが、すべてのトラフィックが IPSec を使用して暗号化されます。

現在、Private Space あたり 1 つの VPN 接続 (2 つの冗長なトンネルを含む) のみがサポートされています。

制約

Private Space VPN 接続を使用するには、プライベートネットワークと VPN ハードウェアまたはソフトウェアが次の制約に従う必要があります。

  • ルーティング可能な IP CIDR は、プライベートインターネットに割り当てられている RFC 1918​ ブロックのいずれかである必要があります。
  • Private Space によってすでに使用されている IP CIDR は使用できません。現在、Private Spaces はデフォルトで 10.0.0.0/16​ と 172.17.0.0/16​ を使用しますが、領域が作成されるときに別のブロックを指定できます。10.1.0.0/16​ はまた、ユーザーの領域に Heroku データサービスが追加されている場合にも予約されます。
  • ルートは静的に設定する必要があります。Heroku は BGP をサポートしていません。
  • VPN ゲートウェイは、静的パブリック IP アドレス経由でパブリックインターネットから到達できる必要があります。
  • VPN ゲートウェイの前にファイアウォールがある場合は、Private Space VPN ゲートウェイ IP アドレスからのトラフィックのために UDP 4500​ と UDP 500​ を開く必要があります。
  • VPN ゲートウェイでは、仮共有キー (PSK) の認証方法で IKE v1 または v2 を使用する必要があります。
    • Heroku は仮共有キーを提供します。このキーを VPN ゲートウェイで設定できる必要があります。Heroku は、別の当事者が生成した仮共有キーを受け付けることができません。
  • Heroku によって提供される両方の IPSec トンネルを使用するように VPN ゲートウェイを設定する必要があります。Heroku は、短いメンテナンスウィンドウのために 1 つのトンネルを停止し、2 番目のトンネルを使用して中断のないネットワーク接続を確保する場合があります。
  • VPN ゲートウェイは、接続のイニシエーターです。接続は、Private Space VPN ゲートウェイへのパケットの送信を開始するまで確立されません。
  • VPN 接続経由ではデータベースサービス (Heroku PostgreSQL など) にアクセスできません。信頼済み IP の許可リスト​を使用すると、データサービスに直接アクセスできます。

VPN 接続の設定

VPN ゲートウェイのパブリック IP アドレスと、プライベートネットワークの目的のルーティング可能な IP CIDR ブロックがわかっている必要があります。これらの情報を取得したら、次のコマンドを使用して Private Space の VPN ゲートウェイを設定します。

$ heroku spaces:vpn:connect \
    --name office \
    --ip PUBLIC_IP_OF_YOUR_VPN_GATEWAY \
    --cidrs ROUTABLE_CIDRS_OF_YOUR_PRIVATE_NETWORK \
    --space SPACE

ゲートウェイの設定には数分かかります。ゲートウェイの準備ができるまで待機するには、wait​ コマンドを使用します。

$ heroku spaces:vpn:wait --space SPACE office

ゲートウェイの準備ができたら、次を使用して設定を取得します。

$ heroku spaces:vpn:info --space SPACE office

これにより、VPN 接続のユーザー側の終端を設定するために必要なすべての詳細を含むテーブルが返されます。応答の例を次に示します。

$ heroku spaces:vpn:info --space acme-space office
=== acme-space VPNs
VPN Tunnel  Customer Gateway  VPN Gateway    Pre-shared Key  Routable Subnets  IKE Version
──────────  ────────────────  ─────────────  ──────────────  ────────────────  ───────────
Tunnel 1    52.91.173.226     34.203.187.158 abcdef12345     10.0.0.0/16       1
Tunnel 2    52.91.173.226     34.227.70.143  123456abcdef    10.0.0.0/16       1

VPN ゲートウェイを設定する方法は、ソフトウェアまたはハードウェアによって異なります。ただし、spaces:vpn:info​ コマンドによって返されるテーブルには必要なすべての情報が含まれています。さらに情報が必要な場合、このコマンドには --json​ オプションもあります。

後のこのセクション​には、これらのパラメータを使用して StrongSwan ソフトウェアの VPN ゲートウェイを設定する方法が示されています。また、Google Cloud Platform に接続するための設定の例​も使用できます。

IKE 仮共有キーの変更

VPN トンネルの資格情報が改ざんされていると思われる場合や、その他の理由で資格情報を変更したい場合は、VPN 接続を破棄してから作成し直す必要があります。

$ heroku spaces:vpn:destroy --space SPACE office

VPN 接続を作成し直すには、上記の手順​に従います。これにより、新しい PSK と、可能性として新しいゲートウェイ IP アドレスが生成されます。新しい PSK が作成され、IP アドレスが更新されたら、接続のもう一方の終端で VPN 設定を更新して接続を再確立します。

互換性

Heroku VPN は、マネージド AWS VPN 製品に基づいています。VPN ゲートウェイデバイスの互換性についての詳細は、AWS のドキュメント​を確認してください。また、AWS ゲートウェイデバイスの要件​を具体的に確認してください。

Heroku は、この VPN 機能が、マネージド Google Cloud Platform VPN 機能と互換性があることを検証しました。詳細は、GCP への VPN 接続に関する Dev Center の記事​を参照してください。

Heroku と Azure の間でサイト間 VPN 接続をセットアップするには、コミュニティによってメンテナンスされているこのガイド​を参照してください。

StrongSwan の設定例

VPN ゲートウェイの 1 つの例として、ほとんどの Linux ディストリビューションで動作する StrongSwan オープンソース VPN ゲートウェイがあります。上記の Heroku VPN 設定から何を入力するかを示すインジケータが含まれている設定ファイルの例を次に示します。

/etc/ipsec.conf

config setup
        strictcrlpolicy=no
        uniqueids = no
        charondebug=all
conn vpn1
        type=tunnel
        compress=no
        keyexchange=ikev1
        esp=aes256-sha2-modp2048!
        ike=aes256-sha2-modp2048!
        ikelifetime=28800s
        lifetime=1h
        authby=secret
        auto=route
        left=<private ip of your VPN host, e.g. 172.16.0.2>
        leftid=<private ip of your host, e.g. 172.16.0.2>
        leftsubnet=<your routable network, e.g. 172.16.0.0/16>
        right=<IP address of Private Space tunnel #1>
        rightid=<IP address of Private Space tunnel #1>
        rightsubnet=<cidr of private space ("Routable Subnets" from config)>
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart
        keyingtries=%forever
conn vpn2
        type=tunnel
        compress=no
        keyexchange=ikev1
        esp=aes256-sha2-modp2048!
        ike=aes256-sha2-modp2048!
        ikelifetime=28800s
        lifetime=1h
        authby=secret
        auto=route
        left=<private ip of your host, e.g. 172.16.0.2>
        leftid=<private ip of your host, e.g. 172.16.0.2>
        leftsubnet=<your routable network, e.g. 172.16.0.0/16>
        right=<IP address of Private Space tunnel #2>
        rightid=<IP address of Private Space tunnel #2>
        rightsubnet=<cidr of private space ("Routable Subnets" from config)>
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart
        keyingtries=%forever

/etc/ipsec.secrets

<IP address of Private Space tunnel #1> : <pre-shared key for Private Space tunnel #1>
<IP address of Private Space tunnel #2> : <pre-shared key for Private Space tunnel #2>

次のサンプル値があるとします。

  • VPN ゲートウェイの設定は上記の JSON ドキュメントから
  • ネットワークは 172.16.0.0/16
  • VPN ゲートウェイのプライベート IP は 172.16.0.2
  • Heroku Space ネットワークは 10.0.0.0/16

設定ファイルは次のようになります。

/etc/ipsec.conf

config setup
        strictcrlpolicy=no
        uniqueids = no
        charondebug=all
conn vpn1
        type=tunnel
        compress=no
        keyexchange=ikev1
        esp=aes256-sha2-modp2048!
        ike=aes256-sha2-modp2048!
        ikelifetime=28800s
        lifetime=1h
        authby=secret
        auto=route
        left=172.16.0.2
        leftid=172.16.0.2
        leftsubnet=172.16.0.0/16
        right=34.203.187.158
        rightid=34.203.187.158
        rightsubnet=10.0.0.0/16
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart
        keyingtries=%forever
conn vpn2
        type=tunnel
        compress=no
        keyexchange=ikev1
        esp=aes256-sha2-modp2048!
        ike=aes256-sha2-modp2048!
        ikelifetime=28800s
        lifetime=1h
        authby=secret
        auto=route
        left=172.16.0.2
        leftid=172.16.0.2
        leftsubnet=172.16.0.0/16
        right=34.227.70.143
        rightid=34.227.70.143
        rightsubnet=10.0.0.0/16
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart
        keyingtries=%forever

/etc/ipsec.secrets

34.203.187.158 : PSK "abcdef12345"
34.227.70.143 : PSK "123456abcdef"

関連カテゴリー

  • インフラストラクチャネットワーキング

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices