はじめに
GoogleCloudPlatform(GCP)ではファイアウォールルールを使用して、仮想マシン(VM)インスタンスとの間のトラフィックを制御できます。
本記事ではGoogleCloudPlatformの特定VMインスタンスに対して任意のポートを許可(開放)し、sshコマンドを利用して疎通を確認する手順を解説します。
今回は外部IPアドレスが12.34.56.78のVMインスタンスのポート8888を開けるとして話を進めます。
手順
事前確認
「ssh -v -p」を利用して疎通確認を行います。
$ ssh -v -p 8888 12.34.56.78 ... ssh: connect to host 12.34.56.78 port 8888: Operation timed out
ポートを開ける前はOperation timed outとなるはずです。
ファイアウォール設定
以下で設定できます。
GCPホーム > ネットワーキング > VPCネットワーク > ファイアウォールルール
ファイアウォール ルールを作成 を押下します。
以下のように項目を埋め
項目 | 入力例 | |
---|---|---|
名前 | default-allow-8888 | |
説明 | Allow 8888 from anywhere | |
ログ | オフ | |
ネットワーク | default | |
優先度 | 1000 | |
送信 / 受信 | 上り | |
一致したときのアクション | 許可 | |
ターゲット タグ | use-8888 | |
IP 範囲 | 0.0.0.0/0 | |
プロトコルとポート | tcp:8888 |
作成ボタンを押下します。
なお、IP範囲は全て、通信方向はVMインスタンス側が受信側としています。
VMインスタンスへ設定
以下で設定できます。
GCPホーム > コンピューティング > Compute Engine > VMインスタンス
該当するInstanceを選択し、以下の編集を押下します。
ファイアウォール ネットワークタグ に先ほどのターゲットタグである「use-8888」を追記します。
設定を保存すれば完了です。
ちなみにこの画面にてVMインスタンスの外部IPを確認できます。
疎通確認
$ ssh -v -p 8888 12.34.56.78 ... debug1: Connection established. ... ssh_exchange_identification: Connection closed by remote host
Connection established.という文言が確認できれば成功です。
終わりに
GCPにてWebサービスを展開する際など通信を許可する必要があります。
ネットワークの設定とVMインスタンスへの反映が分離されていることにより、ネットワーク設定を一元管理できてありがたいです。
同様の作業を実施する方の参考になれば幸いです。