2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google CloudFunctionsとServerless VPCによるIPの固定

Last updated at Posted at 2020-06-27

GoogleのCloudFunctionsは、完全サーバレスにて関数を作成することができます。
しかし、CloudFunctionsからの通信元IPアドレスは動的であり、セキュリティを担保できませんでした。元々、VPCという機能はありましたが、新たにServerlessVPCの機能が追加されました。そのため、CloudFunctionsからの通信を同一リージョンのゲートウェイを介して通信が可能となり、CloudNATを組み合わせることによりIPを固定化することができます。これで、FW等でのアクセス制限が可能です。
##構築手順
※Googleアカウントを所持しており、GCPの操作ができることを前提としています※

  1. ServerlessVPCアクセスにてコネクタを作成する。
  2. CloudNATにてゲートウェイを作成する。
     ※同時にクラウドルータを作成
  3. CloudFunctionsを編集し、コネクタを割り当てる.

###1. ServerlessVPCアクセスにてコネクタを作成
#####1-1. GCPの管理コンソールから、"サーバレスVPCアクセス"を開く.
スクリーンショット 2020-06-27 21.26.39.png

#####1-2.コネクタを作成する.

  • 名前( 適当に決める )
  • リージョン( 関数を作成するリージョン )
  • ネットワーク( defeult )
  • IP範囲( 他と被らないセグメント )
スクリーンショット 2020-06-27 21.32.13.png

###2. CloudNATにてゲートウェイを作成する
#####2-1. GCPの管理コンソールから、"CloudNAT"を開く.
スクリーンショット 2020-06-27 21.47.06.png

#####2-2.NATゲートウェイを作成する

  • 名前( 適当に決める )
  • リージョン( コネクタと同一の場所 )
  • ネットワーク( defeult )
  • クラウドルータ( ※ここで新規作成して名前だけ決める※ )
  • NATIPアドレス( 手動に変更し、IPアドレスを取得する )
スクリーンショット 2020-06-27 21.52.51.png

###3.CloudFunctionsにてコネクタを適用
#####3-1.CloudFunctionsを作成または編集し、コネクタを適用し、下りのルーティングを変更します。

  • 下り設定( 先ほど作成したコネクタを選択 )
  • 下り設定( 全てのトラフィックをVPCコネクタ経由でルーティングに変更 )
スクリーンショット 2020-06-27 22.05.28.png

#####■補足(固定IPアドレスの確認方法)

  • ①GCPコンソール上のshell( gcloud compute addresses list )
  • ②GCPコンソールの( 外部IPアドレス )
スクリーンショット 2020-06-28 9.52.08.png

また、DialogFlowからフルフィルメントをDEPLOYすると、CloudFunctionsに関数が追加されますが、リージョンが変更されるように試してみましたが"us-central1"にしかなりませんでした。そのため、DialogFlowからDEPLOYする際は注意が必要です。指定する方法があればコメントお待ちしております。

以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?