GCP CloudFunctions의 실행 IP 주소를 고정하는 방법
2020/02/03 추가
CloudFunctions의 IP 고정입니다만, proxy 서버 세우지 않고 매니지드에서도 할 수 있게 되었습니다!
htps : // c ぉ d. 오, ぇ. 코 m / 훙 c 치온 s / 드 cs / 네토 ぉ r g g hl = 그럼 # 어소시 어 - s들 c-i p
아래에 작성된 구성에서 프록시 서버를 제거하십시오.
CloudFunctions 설정에서
すべてのトラフィックをVPCコネクタ経由でルーティングする
로 변경하면 proxy 서버 없어도 IP 고정을 할 수 있습니다!
소개
gcp 의 CloudFunctions 은 편리합니다만, IP가 고정되어 있지 않고, VPC내에서의 기동도 할 수 없기 때문에 NAT를 통하는 일도 할 수 없습니다.
IP 제한이 있는 서비스에 대해 CloudFunctions에서 액세스하고 싶은 경우가 있습니까?
나는 있었다! !
단순히 proxy 통하면 할 수 있습니다만, 그 경우 proxy 서버에 대한 액세스의 IP를 고정할 수 없고, ServerlessVPCAccess 를 사용해 할 수 없을까? 라고 생각해, 시큐어에 IP 고정화할 수 있었습니다! ! !
이제 더 이상 IP 제한은 무섭지 않습니다! ! ! !
구성
CloudFunctions에서 ServerlessVPCAccess를 사용하여 내부 IP에서 VPC의 프록시에 액세스합니다.
proxy를 통해 밖으로 나오면 CloudFunctions의 실행 IP는 NAT의 IP가 됩니다.
각 설정 방법 등을 살펴 보겠습니다.
ServerlessVPCAcess
ServerlessVPCAccess 이 문서를 참조해 프록시가 서 있는 subnet에 액세스 할 수 있는 커넥터를 작성합시다
설정하는 IP는 연결된 VPC의 IP와 겹치지 않아야 합니다.
여기에서 설정한 IP로 VPC 내의 리소스에 액세스하게 됩니다.
프록시 서버
GCE를 두고 거기에 squid를 사용하여 프록시 서버를 세웠습니다.
squid의 접는 방법은 다음과 같습니다.
# squidのインストール
sudo apt install squid
# 設定ファイルの修正
sudo vi /etc/squid/squid.conf
# 1194行目あたりにある以下をコメントアウト
# http_access deny all
# 1612行目あたりにあるportを任意の番号に変更(3128はsquidデフォルトなので使わない)
http_port 33228
# ファイルの末尾に以下を追加
# ServerlessVPCAccessのIPを追加
acl myacl src X.X.X.X/28
http_access allow myacl
http_access deny all
# プロキシサーバ接続端末のIP隠蔽
forwarded_for off
# プロキシ経由のアクセスをアクセス先に隠蔽
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
# squidの再起動
sudo service squid restart
# proxyのログ確認する場合は以下のファイルを確認
/var/log/squid/access.log
squid 서버가 완성되면 다음 통신을 허용하는 방화벽을 만들어 GCE에 연결합시다.
tcp [ServeressVPCAccess IP]:[squid port]
CloudFunctions
CloudFunctions에서 ServerlessVPCAccess를 사용하려면 권한 설정을 해야 합니다.
여기 페이지를 참조하여 권한 설정을 수행하고 ServerlessVPCAccess 커넥터를 사용하는 CloudFunctions를 만듭니다.
IP를 확인하고 싶다면 다음 소스에서 확인할 수 있습니다.
def hello_world(request):
import urllib.request
# グローバルIPアドレスを取得
ip = urllib.request.urlopen('http://checkip.dyndns.com/').read().decode('utf-8')
return ip
CloudFunctions에서 액세스를 프록시 서버에 전달하려면 환경 변수 설정이 필요합니다.
다음 환경 변수를 설정합니다.
http_proxy http://[proxy 서버의 내부 IP]:[proxy 서버의 포트]
CloudNat
여기 문서를 참조하여 프록시 서버가있는 VPC에 CloudNat을 설정합시다.
결론
이것으로 설정이 완료됩니다.
CloudFunctions 테스트를 실행하고 출력에 CloudNat IP가 나오면 성공입니다! !
이번에는 프록시 서버를 1대만 세우고, 프록시 서버의 내부 IP를 사용했는데, 이를 인스턴스 그룹으로 하여 로드 밸런서를 세우면 엔드포인트도 변하지 않고 중복성을 갖고 있는 구성으로 하는 것 수 있습니다.
Reference
이 문제에 관하여(GCP CloudFunctions의 실행 IP 주소를 고정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nii_yan/items/6b383a90cd7d06817f37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gcp 의 CloudFunctions 은 편리합니다만, IP가 고정되어 있지 않고, VPC내에서의 기동도 할 수 없기 때문에 NAT를 통하는 일도 할 수 없습니다.
IP 제한이 있는 서비스에 대해 CloudFunctions에서 액세스하고 싶은 경우가 있습니까?
나는 있었다! !
단순히 proxy 통하면 할 수 있습니다만, 그 경우 proxy 서버에 대한 액세스의 IP를 고정할 수 없고, ServerlessVPCAccess 를 사용해 할 수 없을까? 라고 생각해, 시큐어에 IP 고정화할 수 있었습니다! ! !
이제 더 이상 IP 제한은 무섭지 않습니다! ! ! !
구성
CloudFunctions에서 ServerlessVPCAccess를 사용하여 내부 IP에서 VPC의 프록시에 액세스합니다.
proxy를 통해 밖으로 나오면 CloudFunctions의 실행 IP는 NAT의 IP가 됩니다.
각 설정 방법 등을 살펴 보겠습니다.
ServerlessVPCAcess
ServerlessVPCAccess 이 문서를 참조해 프록시가 서 있는 subnet에 액세스 할 수 있는 커넥터를 작성합시다
설정하는 IP는 연결된 VPC의 IP와 겹치지 않아야 합니다.
여기에서 설정한 IP로 VPC 내의 리소스에 액세스하게 됩니다.
프록시 서버
GCE를 두고 거기에 squid를 사용하여 프록시 서버를 세웠습니다.
squid의 접는 방법은 다음과 같습니다.
# squidのインストール
sudo apt install squid
# 設定ファイルの修正
sudo vi /etc/squid/squid.conf
# 1194行目あたりにある以下をコメントアウト
# http_access deny all
# 1612行目あたりにあるportを任意の番号に変更(3128はsquidデフォルトなので使わない)
http_port 33228
# ファイルの末尾に以下を追加
# ServerlessVPCAccessのIPを追加
acl myacl src X.X.X.X/28
http_access allow myacl
http_access deny all
# プロキシサーバ接続端末のIP隠蔽
forwarded_for off
# プロキシ経由のアクセスをアクセス先に隠蔽
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
# squidの再起動
sudo service squid restart
# proxyのログ確認する場合は以下のファイルを確認
/var/log/squid/access.log
squid 서버가 완성되면 다음 통신을 허용하는 방화벽을 만들어 GCE에 연결합시다.
tcp [ServeressVPCAccess IP]:[squid port]
CloudFunctions
CloudFunctions에서 ServerlessVPCAccess를 사용하려면 권한 설정을 해야 합니다.
여기 페이지를 참조하여 권한 설정을 수행하고 ServerlessVPCAccess 커넥터를 사용하는 CloudFunctions를 만듭니다.
IP를 확인하고 싶다면 다음 소스에서 확인할 수 있습니다.
def hello_world(request):
import urllib.request
# グローバルIPアドレスを取得
ip = urllib.request.urlopen('http://checkip.dyndns.com/').read().decode('utf-8')
return ip
CloudFunctions에서 액세스를 프록시 서버에 전달하려면 환경 변수 설정이 필요합니다.
다음 환경 변수를 설정합니다.
http_proxy http://[proxy 서버의 내부 IP]:[proxy 서버의 포트]
CloudNat
여기 문서를 참조하여 프록시 서버가있는 VPC에 CloudNat을 설정합시다.
결론
이것으로 설정이 완료됩니다.
CloudFunctions 테스트를 실행하고 출력에 CloudNat IP가 나오면 성공입니다! !
이번에는 프록시 서버를 1대만 세우고, 프록시 서버의 내부 IP를 사용했는데, 이를 인스턴스 그룹으로 하여 로드 밸런서를 세우면 엔드포인트도 변하지 않고 중복성을 갖고 있는 구성으로 하는 것 수 있습니다.
Reference
이 문제에 관하여(GCP CloudFunctions의 실행 IP 주소를 고정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nii_yan/items/6b383a90cd7d06817f37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# squidのインストール
sudo apt install squid
# 設定ファイルの修正
sudo vi /etc/squid/squid.conf
# 1194行目あたりにある以下をコメントアウト
# http_access deny all
# 1612行目あたりにあるportを任意の番号に変更(3128はsquidデフォルトなので使わない)
http_port 33228
# ファイルの末尾に以下を追加
# ServerlessVPCAccessのIPを追加
acl myacl src X.X.X.X/28
http_access allow myacl
http_access deny all
# プロキシサーバ接続端末のIP隠蔽
forwarded_for off
# プロキシ経由のアクセスをアクセス先に隠蔽
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
# squidの再起動
sudo service squid restart
# proxyのログ確認する場合は以下のファイルを確認
/var/log/squid/access.log
def hello_world(request):
import urllib.request
# グローバルIPアドレスを取得
ip = urllib.request.urlopen('http://checkip.dyndns.com/').read().decode('utf-8')
return ip
이것으로 설정이 완료됩니다.
CloudFunctions 테스트를 실행하고 출력에 CloudNat IP가 나오면 성공입니다! !
이번에는 프록시 서버를 1대만 세우고, 프록시 서버의 내부 IP를 사용했는데, 이를 인스턴스 그룹으로 하여 로드 밸런서를 세우면 엔드포인트도 변하지 않고 중복성을 갖고 있는 구성으로 하는 것 수 있습니다.
Reference
이 문제에 관하여(GCP CloudFunctions의 실행 IP 주소를 고정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nii_yan/items/6b383a90cd7d06817f37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)