さよなら、VPN。VPNをなくしたい!そんな思いを持つ情シス / コーポレートエンジニアに本記事を捧げます。
この記事ではVPNの現状と課題、そして解決(脱VPN)までの物語を語ります。
※本当にごく一部のみ、まだVPNは残しております。そして実際に脱VPNできたのはセキュリティのアドバイザーや、切り替えに際してプロダクトの設定変更を担当していただいたプロダクトサイドのインフラエンジニア、CTOなど、多くの関係者のおかげです。
現状
弊社ではオフィスのグローバルIPアドレスでアクセス制限をかける社内向けWebサービスが存在します。こういったWebサービスに接続するために、オフィスへVPN接続を行って、そのあとにブラウザでWebサービスへアクセスしていました。
たぶん、多くの企業がどうようのことを行っていると思います。
そんなVPNですが、私が入社してから使用者が増え続け、ついにVPNシステムを24時間365日稼働しないといけなくなりました。止まったらCS業務へ影響がでます。
情シスは僕1人しかいなくて、24時間365日ずっとお守りをするのはイヤだ!そうこれが課題、というか変えたい、という強いモチベーションになりました。
課題
事実、課題として
- コスト構造の問題
- 使用者が増えるとコストが増える構造
- セキュリティの問題
- VPNそのものの脆弱性
- 拡張性の問題
- 同時接続数やネットワーク機器の処理能力
- ユーザビリティ / 生産性の問題
- ツールを使うためにVPN接続が必要で面倒
- 可用性の問題
- 24時間365日動かし続けないと行けないが、VPNは冗長化されておらず、しかも運用するのは1人
- 24時間365日動かし続けないと行けないが、VPNは冗長化されておらず、しかも運用するのは1人
がありました。
なぜIPアドレスによるアクセス制限をしていたのか
IPアドレスによるアクセス制限をするためにVPNを使用していた ここまでは紐解きました。ここでさらに紐解いていくことにしました。
そもそも なぜIPアドレスによるアクセス制限をしていたのか? です。
実はこのWebサービスからプロダクトのデータが閲覧できました。よってこれは守るべきデータです。そのため、セキュアにするためにグローバルIPアドレスによるアクセス制限を行ったという話でした。
つまり、一定のセキュリティ対策がされていれば、グローバルIPアドレスによるアクセス制限やVPNを使わなくてもよい、ということになります。
VPN使わないなら、どんな方法があるのか
方向性としては2つ考えていました。
- IPアドレス制限のかわりになる仕組み
- IPアドレス制限以外の方法でセキュアにする仕組み
より具体的に選択肢を調査していくと3つの選択肢があることがわかりました。
- Azure ADアプリケーションプロキシ
- Netskope Private Accessなどを使う
- 業務管理サービスの認証をAzure ADにして2要素認証をする or SAML SSOする
この段階で選択肢3で解決したいと考えていました。しかし、このシステムは重要ではあるのですが、スタートアップということもあり開発者の手があまり回っていないシステムでした。
そのため、認証の仕組みを改善するリソースを捻出するのが難しいという判断になり、この選択肢は実施が不可能になりました。
ここで出てきたのが第4の選択肢。業務管理サービスがAWS上で稼働しているので、ALB(Application Load Balancer)でOpenID Connectを使ってAzure ADで認証をかけられるのでは、と。しかも変更に大きなコストもかからない。これをすると、業務管理ツールにアクセスする前に認証を必要とする構成になります。
これは、案1を超える解決策!
そして、もともとの課題がどう解決するのかというと、
- コスト構造の問題
- コスト下がる、かつ基本コスト増えない。
- セキュリティの問題
- 2段階認証。アクセス前の認証。
- 拡張性の問題
- ネットワーク機器との関連がなくなる
- ユーザビリティ / 生産性の問題
- 普通にブラウザアクセスするだけ
- 可用性の問題
- ネットワーク機器との関連がなくなり、AWSのマネージドサービスを使用することになるなので問題なし
そして、僕の心の平和
脱VPNした結果
ほんの一部だけ、VPNは残っていますが、ほぼVPNはなくなりました。今後、VPN利用者が増えることはないです。
脱VPNしてから、システムを1人で24時間365日稼働させなきゃとか、ネットワーク機器のリソース気にしなきゃ、、というヒリヒリしたプレッシャーはなくなりました。
業務管理サービス使いたいよーって言われて、いつもアカウントをVPNで使えるように設定変更して、デバイスにVPN設定するために、Self ServiceからXXをポチっとしてね、って言ってましたが、もうそんな運用も必要ありません。
そして、弊社はまた1つ物理から脱却できたのです。これは大きい。
まとめ
VPNやめたいと考えているコーポレートエンジニアは多いと思います。そうしたときになぜVPNを使っているのか?をシステムごとに深ぼっていくことで解決策が立てやすくなります。
そうしていくと、案外、絶対にIPアドレス制限でなければいけない、ということはないのではないでしょうか?
経験上あるとするならば、取引先のシステムを使うために固定IP環境を用意するというケース。このケースの場合は、取引先のセキュリティポリシーできまっており、私たちがコントロールできる範囲を超えているのでIPアドレス制限を使わざるを得ないと思います。
追記
2020年に終わった本プロジェクトですが、2023年についに認証そのものが改善されることになりました。