このチュートリアルでは、カスタム VPC ネットワーク内の VM サブネット間の内部トラフィックを許可するようにグローバル ネットワーク ファイアウォール ポリシーを構成する方法について説明します。
サブネットを持つカスタム VPC ネットワークを作成する
このセクションでは、2 つの IPv4 サブネットを持つカスタムモードの VPC ネットワークを作成します。
コンソール
Cloud de Confiance コンソールで、[VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
vpc-fw-rules」と入力します。[説明] に「
VPC network for the firewall rules tutorial」と入力します。[サブネット作成モード] で [カスタム] を選択します。
[新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。
- 名前:
subnet-fw-rules-server - リージョン:
us-central1 (Iowa) - IPv4 範囲:
10.0.0.0/24 - 限定公開の Google アクセス: オン
- 名前:
[完了] をクリックします。
[サブネットを追加] をクリックし、次の構成パラメータを指定します。
- 名前:
subnet-fw-rules-client - リージョン:
us-central1 (Iowa) - IPv4 範囲:
192.168.10.0/24 - 限定公開の Google アクセス: オン
- 名前:
[完了] をクリックします。
[作成] をクリックします。
gcloud
VPC ネットワークを作成するには、次のコマンドを実行します。
gcloud compute networks create vpc-fw-rules \ --subnet-mode=custom \ --description="VPC network for the firewall rules tutorial"
[Cloud Shell の承認] ダイアログで、[承認] をクリックします。
サブネットを作成するには、次のコマンドを実行します。
gcloud compute networks subnets create subnet-fw-rules-server \ --network=vpc-fw-rules \ --region=us-central1 \ --range=10.0.0.0/24 \ --enable-private-ip-google-access
別のサブネットを作成するには、次のコマンドを実行します。
gcloud compute networks subnets create subnet-fw-rules-client \ --network=vpc-fw-rules \ --region=us-central1 \ --range=192.168.10.0/24 \ --enable-private-ip-google-access
デフォルトでは、VPC ネットワークには 2 つの暗黙の IPv4 ルールがあります。
- 宛先が
0.0.0.0/0で、最も低い優先度(65535)のallow下り(外向き)ルール。 Cloud de Confiance by S3NSによってブロックされたトラフィックを除き、すべてのインスタンスが任意の宛先にトラフィックを送信できるようにします。 - 送信元が
0.0.0.0/0で、最も低い優先度(65535)のdeny上り(内向き)ルール。受信接続をブロックすることですべてのインスタンスを保護します。
詳細については、暗黙のルールをご覧ください。
クライアント VM とサーバー VM を作成する
このセクションでは、前のセクションで作成した VPC ネットワークのサブネットに、外部 IP アドレスを持たない 2 つの Linux VM を作成します。
サーバー VM を作成する
コンソール
サーバー VM を作成する手順は次のとおりです。
Cloud de Confiance コンソールで [インスタンスの作成] ページに移動します。
[マシンの構成] ペインで、次の操作を行います。
- [名前] に「
vm-fw-rules-server」と入力します。 - [リージョン] で
us-central1 (Iowa)を選択します。
- [名前] に「
ナビゲーション メニューで、[ネットワーキング] をクリックします。
- [ネットワーク インターフェース] セクションで、
defaultをクリックし、次の構成パラメータを指定します。- ネットワーク:
vpc-fw-rules - サブネットワーク:
subnet-fw-rules-server IPv4 (10.0.0.0/24) - 外部 IPv4 アドレス: なし
- ネットワーク:
- [完了] をクリックします。
- [ネットワーク インターフェース] セクションで、
[作成] をクリックします。
gcloud
サーバー VM を作成するには、次のコマンドを実行します。
gcloud compute instances create vm-fw-rules-server \
--network=vpc-fw-rules \
--zone=us-central1-a \
--subnet=subnet-fw-rules-server \
--stack-type=IPV4_ONLY \
--no-address
クライアント VM を作成する
コンソール
クライアント VM を作成する手順は次のとおりです。
Cloud de Confiance コンソールで [インスタンスの作成] ページに移動します。
[マシンの構成] ペインで、次の操作を行います。
- [名前] に「
vm-fw-rules-client」と入力します。 - [リージョン] で
us-central1 (Iowa)を選択します。
- [名前] に「
ナビゲーション メニューで、[ネットワーキング] をクリックします。
- [ネットワーク インターフェース] セクションで、
defaultをクリックし、次の構成パラメータを指定します。- ネットワーク:
vpc-fw-rules - サブネットワーク:
subnet-fw-rules-client IPv4 (192.168.10.0/24) - 外部 IPv4 アドレス: なし
- ネットワーク:
- [完了] をクリックします。
- [ネットワーク インターフェース] セクションで、
[作成] をクリックします。
gcloud
次のコマンドを実行してクライアント VM を作成します。
gcloud compute instances create vm-fw-rules-client \
--network=vpc-fw-rules \
--zone=us-central1-a \
--subnet=subnet-fw-rules-client \
--stack-type=IPV4_ONLY \
--no-address
Cloud Router と Cloud NAT ゲートウェイを作成する
前のセクションでは、パブリック IPv4 アドレスのない 2 つの Linux VM を作成しました。これらの VM が公共のインターネットにアクセスできるようにするため、Cloud Router と Cloud NAT ゲートウェイを作成します。
コンソール
Cloud de Confiance コンソールで、[Cloud NAT] ページに移動します。
[開始] または [Cloud NAT ゲートウェイを作成] をクリックします。
[ゲートウェイ名] に「
gateway-fw-rules」と入力します。[NAT タイプ] で、[パブリック] を選択します。
[Cloud Router の選択] セクションで、次の構成パラメータを指定します。
- ネットワーク:
vpc-fw-rules - リージョン:
us-central1 - Cloud Router: [新しいルーターを作成] を選択します。
- [名前] に「
router-fw-rules」と入力します。 - [作成] をクリックします。
- [名前] に「
- ネットワーク:
[作成] をクリックします。
gcloud
Cloud Router を作成するには、次のコマンドを実行します。
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
Cloud NAT ゲートウェイを作成するには、次のコマンドを実行します。
gcloud compute routers nats create gateway-fw-rules \ --router=router-fw-rules \ --region=us-central1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
グローバル ネットワーク ファイアウォール ポリシーを作成する
このセクションでは、次のものを使用してグローバル ネットワーク ファイアウォール ポリシーを作成します。
0.0.0.0./0を宛先とする下り(外向き)ルール。ロギングを有効にします。ファイアウォール ルール ロギングを使用すると、ファイアウォール ルールの効果を監査、検証、分析できます。
コンソール
Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。
[ファイアウォール ポリシーを作成] をクリックします。
[ポリシーの構成] セクションの [ポリシー名] に「
fw-policy」と入力します。[デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。
ポリシーのルールを作成するには、[ルールを追加] セクションで [ルールを追加] をクリックします。
- [優先度] に「
65534」と入力します。 - [トラフィックの方向] に [下り(外向き)] を選択します。
- [ログ] で [オン] を選択します。
- [ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。
- [送信先] セクションの [IP 範囲] に「
0.0.0.0/0」と入力します。 - [プロトコルとポート] セクションで、[すべて許可] を選択します。
- [作成] をクリックします。
- [優先度] に「
[続行] をクリックします。
VPC ネットワークをポリシーに関連付けるには、[ポリシーと VPC ネットワークの関連付け] セクションで [関連付け] をクリックします。
[
vpc-fw-rules] のチェックボックスをオンにして、[関連付け] をクリックします。[続行] をクリックします。
[作成] をクリックします。
gcloud
ファイアウォール ポリシーを作成するには、次のコマンドを実行します。
gcloud compute network-firewall-policies create fw-policy \ --globalすべての宛先へのトラフィックを許可し、ログを有効にするファイアウォール ルールを作成するには、次のコマンドを実行します。
gcloud compute network-firewall-policies rules create 65534 \ --firewall-policy=fw-policy \ --direction=EGRESS \ --action=ALLOW \ --dest-ip-ranges=0.0.0.0/0 \ --layer4-configs=all \ --global-firewall-policy \ --enable-loggingファイアウォール ポリシーを VPC ネットワークに関連付けるには、次のコマンドを実行します。
gcloud compute network-firewall-policies associations create \ --firewall-policy=fw-policy \ --network=vpc-fw-rules \ --name=pol-association-fw-rules \ --global-firewall-policy
IAP のファイアウォール ルールを追加する
前のセクションでは、外部 IP アドレスを持たない Linux VM を作成しました。このセクションでは、Identity-Aware Proxy(IAP)を有効にして、外部 IP アドレスを持たない VM インスタンスへの管理アクセスを許可します。
IAP に VM インスタンスへの接続を許可するには、次のファイアウォール ルールを作成します。
- IAP を使用してアクセス可能にするすべての VM インスタンスに対して適用します。
- IP 範囲
35.235.240.0/20からの上り(内向き)トラフィックを許可します。この範囲には、IAP が TCP 転送に使用するすべての IP アドレスが含まれています。IPv6 VM の場合は、IP 範囲
2600:2d00:1:7::/64を使用します。 - IAP TCP 転送を使用してアクセス可能にするすべてのポートへの接続を許可します。たとえば、SSH のポート
22と RDP のポート3389です。
コンソール
vpc-fw-rules ネットワーク内のすべての VM インスタンスへの RDP と SSH のアクセスを許可するには、次の操作を行います。
Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。
[ネットワーク ファイアウォール ポリシー] セクションで、[
fw-policy] をクリックします。[ルールを作成] をクリックします。
[優先度] に「
500」と入力します。[トラフィックの方向] で [上り(内向き)] をオンにします。
[ログ] で [オン] を選択します。
[ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。
[送信元] セクションの [IP 範囲] に「
35.235.240.0/20」と入力します。[プロトコルとポート] セクションで、[指定したプロトコルとポート] を選択します。
[TCP] チェックボックスをオンにし、[ポート] に「
22」と「3389」をカンマで区切って入力します。[作成] をクリックします。
gcloud
vpc-fw-rules ネットワーク内のすべての VM インスタンスへの RDP および SSH アクセスを許可するには、次のコマンドを実行します。
gcloud compute network-firewall-policies rules create 500 \
--firewall-policy=fw-policy \
--direction=INGRESS \
--action=ALLOW \
--src-ip-ranges=35.235.240.0/20 \
--global-firewall-policy \
--layer4-configs tcp:22,tcp:3389 \
--enable-logging
Apache サーバーをインストールする
このセクションでは、Apache サーバーをサーバー VM にインストールします。
Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。
vm-fw-rules-serverVM の [接続] 列で [SSH] をクリックします。ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。
apache2パッケージをインストールするには、コマンド プロンプトで次のコマンドを実行します。sudo apt update && sudo apt -y install apache2
Apache をインストールすると、オペレーティング システムにより Apache サーバーが自動的に起動します。
Apache が実行されていることを確認するには、次のコマンドを実行します。
sudo systemctl status apache2 --no-pager
Apache ウェブサーバーのデフォルトのウェブページを上書きするには、次のコマンドを実行します。
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.htmlブラウザでの SSH ダイアログを閉じます。
接続をテストする
Apache サーバーをサーバー VM にインストールしたら、サーバー VM の内部 IP アドレスを使用してクライアント VM からサーバー VM に接続します。
Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。
vm-fw-rules-serverVM の [内部 IP] 列から、VM の内部 IP アドレスをコピーします。vm-fw-rules-clientVM の [接続] 列で [SSH] をクリックします。ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。
接続を確認するには、次のコマンドを実行します。
curl INTERNAL_IP -m 2
INTERNAL_IPは、vm-fw-rules-serverVM の IP アドレスに置き換えます。どの VM にも、すべてのトラフィックを拒否する暗黙的な上り(内向き)ファイアウォール ルールが作成されるため、「
Connection timed out」というメッセージが返されるのは想定の動作です。トラフィックを許可するには、ファイアウォール ポリシーに上り(内向き)ルールを追加します。ブラウザでの SSH ダイアログを閉じます。
グローバル ネットワーク ファイアウォール ポリシーを更新して内部トラフィックを許可する
このセクションでは、クライアント VM のサブネットからの内部トラフィックを許可するようにグローバル ネットワーク ファイアウォール ポリシーを更新します。
コンソール
Cloud de Confiance コンソールで、[ファイアウォール ポリシー] ページに移動します。
[ネットワーク ファイアウォール ポリシー] セクションで、[
fw-policy] をクリックします。[ルールを作成] をクリックします。
[優先度] に「
501」と入力します。[トラフィックの方向] で [上り(内向き)] をオンにします。
[ログ] で [オン] を選択します。
[ターゲット] セクションの [ターゲット タイプ] で、[ネットワーク上のすべてのインスタンス] を選択します。
[送信元] セクションの [IP 範囲] に「
192.168.10.0/24」と入力します。IP 範囲
192.168.10.0/24が subnet-fw-rules-client に割り当てられます。[送信先] セクションの [IP タイプ] で、[IPv4] を選択します。[IP 範囲] で、
10.0.0.0/24を指定します。IP 範囲
10.0.0.0/24は subnet-fw-rules-server に割り当てられます。[作成] をクリックします。
gcloud
ファイアウォール ポリシーを更新するには、次のコマンドを実行します。
gcloud compute network-firewall-policies rules create 501 \
--firewall-policy=fw-policy \
--direction=INGRESS \
--action=ALLOW \
--src-ip-ranges=192.168.10.0/24 \
--dest-ip-ranges=10.0.0.0/24 \
--layer4-configs=all \
--global-firewall-policy \
--enable-logging
接続をテストする
ファイアウォール ポリシーを作成したら、サーバー VM の内部 IP アドレスを使用して、クライアント VM からサーバー VM に接続します。
Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。
vm-fw-rules-serverVM の [内部 IP] 列から、VM の内部 IP アドレスをコピーします。vm-fw-rules-clientVM の [接続] 列で [SSH] をクリックします。ブラウザでの SSH ダイアログで [承認] をクリックし、接続が確立されるのを待ちます。
接続を確認するには、次のコマンドを実行します。
curl INTERNAL_IP -m 2
INTERNAL_IPは、vm-fw-rules-serverVM の IP アドレスに置き換えます。想定されるメッセージは
<!doctype html><html><body><h1>Hello World!</h1></body></html>です。ブラウザでの SSH ダイアログを閉じます。
ファイアウォール ログを表示するには、ログを表示するをご覧ください。