社内システムのIP制限更新作業が大変になってきたのでAWS ClientVPNを導入した話
こんにちは、アルダグラムのSREエンジニアの okenak です
今回は AWS ClientVPN を導入したことで、社内の運用業務の効率化とセキュリティの強化を達成した事例を紹介したいと思います。
背景
2019年の段階では社員数が12名程度だったこともあり、社内システムのアクセス制御にAWSのセキュリティグループを利用してオフィスIPやリモート接続先IPを解放することで対応を行っておりました。
2023年には社員数が80名になっており、インバウンドルールが40を超えセキュリティグループが穴だらけという状態になっており、社員数増加に伴うIP制限更新作業による管理コストの増大とセキュリティ上のリスクが問題になってきたため、AWS ClientVPNを導入することに踏み切りました。
AWS ClientVPNについて
VPNに関して他社のサービスとも比較しましたが以下の点が推しポイントでした
- フルマネージドサービスのためインフラの管理運用コストが少ない
- ネットワークの帯域が広く、通信が安定、スケーラビリティ性が高い
- セキュリティ周りで細かいアクセス制御や監査のログが取れる
AWS Client VPN とは? - AWS クライアント VPN
構成
インフラ構成としては以下の通りとなります。
リモートワーク等で接続状況が変わる環境においても AWS Client VPN 利用時の通信を NAT Gateway 経由にすることでグローバルIPの固定化を行い、IP制限がかかっている社内システムへアクセスできるようにしています。
証明書管理の自動化
AWS Client VPNを利用することで課題になってくるのが証明書の管理です。
サーバー証明書を自前で発行すると有効期限があるため定期的に入れ替え作業が必要となり運用上の負荷が発生します。特に忘れた頃にやってきてアクセス障害になったりするのが厄介な点です。
そこで今回は AWS Certificate Manage(ACM) で発行したマネージドな証明書を使うことで運用管理の手間を削減しました。ACMに証明書の管理を任せることで更新作業が自動化されるのでうっかりミスの有効期限切れをなくすことができます。
設定作業周りでは以下の記事を参考にさせていただきました。
ACM で発行したパブリック証明書で Client VPN を構築してみた | DevelopersIO
認証方式について
AWS Client VPNの認証方式には以下の3つがあります。
それぞれの特徴やメリット・デメリットは以下の通りです。
-
相互認証 (証明書ベース)
-
特徴:
- クライアントとサーバーの双方が証明書を用いて認証を行う
- 証明書を持っているクライアントだけがVPNに接続できる
-
メリット:
- 要求される構成がシンプルで、構築が比較的簡単
- ローカルPCにクライアント証明書を設置することでアクセスが可能
-
デメリット:
- 証明書の管理や更新作業が必要
- ユーザー単位のアクセス制御が困難で証明書の無効化や再配布が必要な場合がある
-
特徴:
-
Active Directory 認証
-
特徴:
- Active Directory (AD) を利用した認証方式
- AD のユーザー名とパスワードを使用して認証を行う
-
メリット:
- 既にADが導入されている会社であれば導入が容易
- ユーザー単位のアクセス制御などの一元管理が可能でありセキュアである
-
デメリット:
- ADが導入されていない場合はSimpleAD等の新規構築が必要
- ADの管理・運用コストが発生するため情シスのない企業ではハードルが高い
-
特徴:
-
シングルサインオン (SAMLベースのフェデレーション認証)
-
特徴:
- SAMLを用いた認証方式
- 連携先のIDプロバイダを使用してサインインすることで、サービスにアクセスできる
-
メリット:
- 既存のIDプロバイダとユーザー管理の統合が可能
- ユーザー単位のアクセス制御などの一元管理が可能でありセキュアである
- IDプロバイダ側のサインイン時に2段階認証などが要求できる
-
デメリット:
- 連携先のIDプロバイダが必要
- SAMLの実装や設定周りの手間がある
-
特徴:
上記の中で、社内にAD基盤がないためActive Directory 認証は最初に除外されました。
次に相互認証ですが、クライアント証明書はAWSサービス外であり、ACMで管理できないため手動で管理運用のコストが発生してしまいます。また、認証局用のサーバー構築等も必要です。
弊社では年初にAWSのIAMユーザー管理をIAM Identity Centerに移行したことのもあったため、
VPNの認証をIAM Identity Centerに紐付ける運用にすることにしました。
この方式にしたことで感じたメリットは以下の通りです
- 入退社時にAWSユーザーを発行・削除するだけで良い
- 証明書の定期更新などの作業が不要
- AWSへのシングルサインオン時に2段階認証を強制できる
- セッションタイムアウト時間などを細かく制御できる
設定方法等は以下の記事を参考にしています。
AWS Client VPNの認証をIAM Identity Centerと連携させる。 - Qiita
まとめ
AWS Client VPNを利用することで、セキュリティグループの解放作業から解放されて運用が楽になったことがいちばんの収穫でした。
今後もクラウドのマネージドサービスを積極的に活用して、運用管理の手間を削減しつつ改善活動に取り組んでいきたいと思います。
株式会社アルダグラムのTech Blogです。 世界中のノンデスクワーク業界における現場の生産性アップを実現する現場DXサービス「KANNA」を開発しています。 採用情報はこちら: herp.careers/v1/aldagram0508/
Discussion