こんにちは、CI部の鎌田です。
AWSでのネットワークのアクセス制御を考えられる際、基本はセキュリティグループを使った方法を考えられるかと思いますが、URLによってのアクセス制御となると、どうでしょうか。 2020年10月現在ではAWSだけの機能では実現できないため、何らかのアプライアンスを導入することになります。 この記事ではPaloAltoを導入し、URLフィルタリングを設定するまでの手順についてまとめています。 全部で3回に分けて執筆していますので、最後の記事まで目を通していただければと思います。 この記事では、事前準備としてAWSのリソースを作る部分をまとめています。AWSリソースの作り方が分かる方は、構成図を確認の上、次の記事からお読みください。
構築する構成
下記の構成を作ります。 ※手順では具体的なIPアドレスは書かず、各インターフェイス名などで記載しているため、各自の構成に沿って読み替えてください。 必要になるリソースは、この後の手順で作成します。
手順では言及していないが構成次第で考慮が必要な事項
手順などにはしていませんが、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 |
サブネット
全部で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 |
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 |
セキュリティグループ
3つ作成します。
PaloAltoの管理用
SSHとHTTPSをInboundで許可するセキュリティグループを作成しておきます。
Inbound
タイプ | プロトコル | ポート | ソース |
---|---|---|---|
HTTPS | TCP | 443 | PaloAlto管理の際に利用するアクセス元IP |
SSH | TCP | 22 | PaloAlto管理の際に利用するアクセス元IP |
Outbound
タイプ | プロトコル | ポート | ソース |
---|---|---|---|
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
PaloAltoのUntrust用
PaloAltoのPublic(Untrust)用となるセキュリティグループを作成しておきます。 InternetからPrivateのサブネットに流す設定はないので、ルールの設定は実施しません。
Inbound
ルール設定なし
Outbound
タイプ | プロトコル | ポート | ソース |
---|---|---|---|
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
PaloAltoのTrust用
PaloAltoのPrivate(Trust)用となるセキュリティグループを作成しておきます。 InboundではVPCのアドレスすべてを許可する設定にしておき、PaloAltoのポリシー設定に許可を寄せる設計としています。
Inbound
タイプ | プロトコル | ポート | ソース |
---|---|---|---|
すべてのトラフィック | すべて | すべて | 192.168.0.0/16 |
Outbound
タイプ | プロトコル | ポート | ソース |
---|---|---|---|
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
まとめ
ここまでで、AWSの必要なリソース作成が完了しました。 この次の手順では、PaloAltoのインスタンスのローンチと、ローンチのタイミングで実施するAWSの設定変更などをまとめています。