ユースケースTipsクラウドセキュリティネットワーク

(連載) HashiCorp活用例1: Webアプリの全通信経路暗号化と自動デプロイ

東京エレクトロンデバイスではHashiCorp社製品とその他各社製品とのマルチベンダー連携を通じて、お客様のWebアプリやクラウド、ITインフラなどの展開から運用までを効率化できるソリューション開発に取り組んでいます。さまざまな活用例をご紹介することで、HashiCorp社製品の提供する価値や可能性を発信していきたいと思っております。

今回はその第1弾として、HashiCorp社のエンジニアにもご協力いただき構築したサンプルユースケースをご紹介する記事を連載していきます。

はじめに

クラウド時代において、インフラストラクチャにおける多様な課題を解決すべく、HashiCorp社は様々な製品を提供・サポートすることでお客様を支援しています。主要クラウドベンダーであるAmazon Web Service、Microsoft Azure、Google Cloud、Oracle Cloudなどにおいて非常に多くのお客様でご採用・ご活用いただいており、その結果様々なユースケースがございます。

一方で、ほとんどのお客様が自社のITシステムのインフラストラクチャ全てを主要クラウドベンダーのサービスのみで構築されているわけではなく、より専門性の高いアプライアンス製品やプライベートクラウドのシステムと組み合わせて構築・運用されています。

HashiCorp社の製品は、主要クラウドベンダーだけではなく、各種アプライアンス製品やプライベートクラウドも含めてサポートしており、広いカバー範囲を持ちあわせております。しかしながら、HashiCorop社のユースケースの多くが主要クラウドベンダーのものとなっているため、それ以外のシステムも含めて構成されたインフラストラクチャを運用されているお客様の課題をどの様に解決できるかも、依然として有効なユースケースであると当社では考えております。

当社の従来からお客様の各種アプライアンス製品やプライベートクラウドシステムのご導入を支援してきた知見を活かし、主要クラウドベンダーだけではなくアプライアンス製品、プライベートクラウドシステムを組み合わせて構成されたITシステムのインフラストラクチャにおけるお客様の様々な課題を解決すべく、HashiCorp社製品をどの様に活用することができるかを、本取り組みにおいてご紹介してまいります。また、導入後の運用をイメージしていただくために、様々なユースケースにおけるより具体的な解決方法までを、実際に実施した技術評価検証の結果を交えてご紹介していきます。

全通信経路が暗号化されたWebアプリの自動デプロイ

第1弾で取り上げるのは、Webアプリのためのインフラや、セキュリティのための全通信経路暗号化の環境を効率よく構築・運用していくことができるユースケースです。

本記事ではこのユースケースの全体図と概要をご紹介し、以後の連載記事の中で個々の連携要素をピックアップして深掘りしていきます。

連載記事一覧:

  1. Webアプリ用マルチベンダーインフラの自動構築  ←本記事
  2. 動的なバックエンドSSL証明書の管理
  3. 動的なDNSレコード管理
  4. 動的なロードバランサの構築
  5. プライベートネットワークでのIaC
  6. 一連のWebアプリ用のマルチベンダーインフラ展開を効率化   

このユースケースのポイント

このユースケースでは、全通信経路をSSLにより暗号化することでWebアプリの仕組みをよりセキュアに構成しつつ、その実現のために必要だが構築と運用が煩雑になってしまうSSL証明書の管理、DNSサーバーのレコード管理、ロードバランサーの管理といった一連のオペレーションを、HashiCorp社製品を組み合わせて自動化・効率化することで解決していくものになります。

  • Azure VMに構築した仮想マシンでWebアプリが実行されています。
  • その前段にロードバランサー/ADCとしてF5 Networks社のBIG-IPを配置しています。BIG-IPでフロントエンドのSSL終端と、バックエンドであるWebアプリへSSLで接続しています。
  • BIG-IPに配置するフロントエンドSSL用のサーバー証明書は公的認証機関から発行されたものを、Webアプリが動作する各サーバーに配置するバックエンドSSL用のサーバー証明書は自己署名認証機関から発行されたものをそれぞれ利用しています。
  • F5 Networks社のBIG-IPはバックエンドのWebアプリにSSLでのアクセスとなるため、SSLサーバー証明書に設定されたCN(Common Name)またはSAN(Subject Alternative Name)でのアクセスが必要になります。各Webアプリサーバーの名前解決のため、Infoblox社の仮想アプライアンスをDNSサーバーとして配置しています。
  • Webアプリが動作するサーバーはスケールアウト/スケールインにより負荷状況に対してリソースを動的に割り当てます。

課題と解決策

このユースケースで想定される構築・運用上の課題と、それに対してHashiCorp社製品が提供できる解決策を以下にまとめます。

課題   解決策と効果

バックエンドSSLに使うサーバー証明書の発行と各サーバーへの配置を手動で行っている。

  • 必要なサーバー証明書に設定する情報の確認や管理、発行作業と各サーバーへの配置が煩雑。
  • 有効期限切れに伴うライフサイクル管理が大変で、サーバーごとの更新タイミングの違いの管理や、更新作業そのものと作業手順書の管理に負荷がかかる。
  • 作業ミスや更新忘れによる通信トラブルの懸念がある。
  • ただし負荷軽減のため安易に長い有効期限のサーバー証明書を使うのはセキュリティ上のリスクがあるため避けたい。

Vaultを用いて、バックエンド用SSLサーバー証明書の自動発行と、有効期限前の自動更新を実装することが可能です。

  • 新たに追加するサーバーへ個別にバックエンドSSL用サーバー証明書を発行し配置することが可能です。
  • 有効期限が経過する前に自動で再発行することにより証明書のライフサイクル管理を自動化・簡略化し、短い証明書の有効期限での運用も実現できます。

新規デプロイしたサーバー、およびスケールアウト/スケールインにより増減したサーバーの情報をDNSサーバーやロードバランサーへ登録/削除するのを手動で行っている。

  • 作業そのものや作業手順書のメンテナンス、事前の手順チェックに工数がかる。
  • 熟練者と非熟練者との間で作業時間・品質に差が出てしまう。
  • 作業ミスの懸念がある。

Terraformを用いて、増減したサーバーの情報をDNSサーバーやロードバランサーへ自動登録/削除することが可能です。

  • 自動化による工数削減、機械処理による作業品質の平準化が可能です。
  • 作業ミスを削減できます。

本ユースケースにHashiCorp社の製品を導入し、最終的に以下のようなコンポーネントで構成されるシステムを構築することで上記課題を解決していきます。

追加要素:

  • HashiCorp Terraformを使ったマルチベンダープロビジョニング
  • HashiCorp Vaultを使った動的PKI管理

次回以降

本記事では、パブリッククラウド上にアプライアンス製品を組み合わせて構築されたITシステムにおける課題と、その解決策としてどの様なアプローチが取れるかを概要としてご紹介してきました。

次回以降は具体的な要素ごとの実装方法を、実際に実施した技術評価検証の結果を交えながらご紹介していきます。

 

■HashiCorp(ハシコープ)社 会社紹介

https://cn.teldevice.co.jp/maker/hashicorp-inc/