PaloAltoをAWSに導入する ~#1 事前準備編~

記事タイトルとURLをコピーする

こんにちは、CI部の鎌田です。

AWSでのネットワークのアクセス制御を考えられる際、基本はセキュリティグループを使った方法を考えられるかと思いますが、URLによってのアクセス制御となると、どうでしょうか。 2020年10月現在ではAWSだけの機能では実現できないため、何らかのアプライアンスを導入することになります。 この記事ではPaloAltoを導入し、URLフィルタリングを設定するまでの手順についてまとめています。 全部で3回に分けて執筆していますので、最後の記事まで目を通していただければと思います。 この記事では、事前準備としてAWSのリソースを作る部分をまとめています。AWSリソースの作り方が分かる方は、構成図を確認の上、次の記事からお読みください。

構築する構成

下記の構成を作ります。 ※手順では具体的なIPアドレスは書かず、各インターフェイス名などで記載しているため、各自の構成に沿って読み替えてください。 必要になるリソースは、この後の手順で作成します。

f:id:swx-kamata:20201012183203p:plain

手順では言及していないが構成次第で考慮が必要な事項

手順などにはしていませんが、PaloAlto導入にあたっては考慮が必要な事項があります。

  • PaloAltoを冗長構成にする場合、PaloAltoのHA機能を使う場合はMulti-AZ構成にできない
    • Multi-AZにしたい場合はPaloAltoの機能は使わず、AWSのルートテーブルを書き換えるLambdaを実装する必要がある
  • PaloAltoは設定の際に固定IPアドレスを記載する箇所があるため、AWS上で固定IP設定とすることを推奨
  • PaloAltoのENIが置かれるサブネットは、サーバーを配置する予定がない場合は/28の最小サイズで可
  • PaloAltoのTrust(Private)側となるENIにアタッチするセキュリティグループは、ローカルIPアドレスを全開放にし、PaloAlto内部のポリシーで制御を推奨
  • PaloAltoとAWS側の両方でルーティングと通信制御の設定を入れるため、どちらでどこまで制御しているのかを把握しておくこと
  • PrivateサブネットからPaloAltoを経由してインターネットに出る出口制御で利用する場合、PaloAlto自体がNAT Gatewayと同様の働きをするため、NatGatewayが不要になる

いずれも指摘されればなるほどな事項ではありますが、考慮として漏れやすい点ですので、念頭に置いて設計を行いましょう。

事前準備 (VPC、サブネット、RouteTable、セキュリティグループの用意)

では、実際にAWSの準備から進めていきましょう。

VPC

1つ作成します。

CIDR
192.168.0.0/16

f:id:swx-kamata:20201002114503j:plain

サブネット

全部で6つ作成します。

CIDR AZ
192.168.1.0/24 a
192.168.2.0/24 c
192.168.3.0/24 a
192.168.4.0/24 c
192.168.5.0/24 a
192.168.6.0/24 c

f:id:swx-kamata:20201002115015j:plain

RouteTableとInternateGateway

RouteTable2つ作成します。 InternateGatewayを作成してVPCにアタッチの上、PublicサブネットのGatewayとして設定をしておいてください。

用途 追加設定 関連付けるサブネット
publicサブネット用 GatewayとしてInternetGawayを指定 192.168.1.0/24
192.168.2.0/24
privateサブネット用 特になし(この後の手順で追加設定をします) 192.168.3.0/24
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24

f:id:swx-kamata:20201002115037j:plain f:id:swx-kamata:20201002115040j:plain f:id:swx-kamata:20201002115044j:plain f:id:swx-kamata:20201002115048j:plain

セキュリティグループ

3つ作成します。

PaloAltoの管理用

SSHとHTTPSをInboundで許可するセキュリティグループを作成しておきます。

Inbound

タイプ プロトコル ポート ソース
HTTPS TCP 443 PaloAlto管理の際に利用するアクセス元IP
SSH TCP 22 PaloAlto管理の際に利用するアクセス元IP

Outbound

タイプ プロトコル ポート ソース
すべてのトラフィック すべて すべて 0.0.0.0/0

f:id:swx-kamata:20201002115255j:plain f:id:swx-kamata:20201002115258j:plain

PaloAltoのUntrust用

PaloAltoのPublic(Untrust)用となるセキュリティグループを作成しておきます。 InternetからPrivateのサブネットに流す設定はないので、ルールの設定は実施しません。

Inbound

ルール設定なし

Outbound

タイプ プロトコル ポート ソース
すべてのトラフィック すべて すべて 0.0.0.0/0

f:id:swx-kamata:20201002121216j:plain f:id:swx-kamata:20201002121219j:plain

PaloAltoのTrust用

PaloAltoのPrivate(Trust)用となるセキュリティグループを作成しておきます。 InboundではVPCのアドレスすべてを許可する設定にしておき、PaloAltoのポリシー設定に許可を寄せる設計としています。

Inbound

タイプ プロトコル ポート ソース
すべてのトラフィック すべて すべて 192.168.0.0/16

Outbound

タイプ プロトコル ポート ソース
すべてのトラフィック すべて すべて 0.0.0.0/0

f:id:swx-kamata:20201002121238j:plain f:id:swx-kamata:20201002121241j:plain

まとめ

ここまでで、AWSの必要なリソース作成が完了しました。 この次の手順では、PaloAltoのインスタンスのローンチと、ローンチのタイミングで実施するAWSの設定変更などをまとめています。

通称、認証認可おじさん・Windowsおじさん。PowerShellと認証技術が好物ですが、OSはLinuxが好きです。 AWSドキュメントでは言及されていないようなことや、理解を補助するような内容の執筆を心掛けています。