この記事はトピック「Azure上でセキュアなアプリケーションを作るベストプラクティス」の中の一記事となります。 例として PCI DSS の要件を取り上げており、それぞれの要件と Azure での実装を解説していきます。
本記事では、Azure 上で PCI DSS に対応するアーキテクチャを検討する上で、Microsoft が提供している 「PCI DSS のための PaaS Web アプリケーション」 を紹介します。
PCI DSS に対応するアーキテクチャをゼロから考える必要はありません。Microsoft から、PCI DSS のための PaaS Web アプリケーション(以下 本システムと呼びます) というドキュメントが公開されており、我々もそれを参考にしています。
本システム は、下記のような構成になっています。我々が構築した実際のサイトは企業ネットワークとの ExpressRoute 接続があるなど、もっと複雑な構成ですが、基本的な考え⽅は同じです。
本システム の構成を簡単に説明します。まず、システム全体は仮想ネットワークに展開されます。左側のフロントから説明すると、公開エンドポイントを Applicaiton Gateway + WAF で保護し、Internal LB 経由で、AppService Environment (ASE)に接続します。
アプリケーションは ASE に展開され、バックエンドのSQL Databaseにデータを保存します。データベースとの通信は、暗号化され、Virtual Network Service Endpoints でエンドポイントを保護します。企業ネットワークとはExpress Routeで接続され、システム連携のため特定のシステム(システム連携相⼿)との通信を許可しています。また、運⽤管理⽤に踏み台サーバー(Bastion)が設置され、踏み台サーバーへのアクセスは Express Route 経由で特定の端末からのみのアクセスに制限された環境とします。そして、ログ、メトリックは、Azure Monitorに集約します。
システムは、仮想ネットワーク内の、Network Security Group(NSG)で保護されたサブネット内にコンポーネント毎に展開されます。
そして、NSG ではコンポーネント間の必要な通信だけを許可します。この分離⽅針は、PCI DSS で求められているものよりも厳格ですが、Azure では追加コストも低く容易に実装できるため積極的に活用しています。
本環境を構築するためのリソースは、GitHub で公開されています。Securing PaaS deployments。
セキュリティ関連のおすすめリンク(本文未掲載)
お問い合わせはこちらから
問い合わせる