배경 :
On-Premise에서는 외부, 내부 경계가 명확합니다. Cloud는 VPC로 구획을 나누기는 하지만, iaas, PaaS, SaaS는 자체 제공하는 서비스이기 때문에, Public망으로 서비스를 제공받게 됩니다.
물론 CSP에서는 안전하다고는 하나, Public 구간에서의 문제는 사용자의 책임입니다.
목적 :
GCP의 Managed Service (PaaS)를 Public 망으로 접속하여 사용하는 것이 아니라 VPN, Cloud Interconnect로 연결 후 Private망으로 GCP로 접속 후 Private Service Connect를 통해 보안성을 향상하여 접속하는 방안으로 보안성을 향상하는 방안을 작성합니다.
내용 :
이번 문서 작성시에는 On-Premise와 GCP를 연결 하여 테스트 하였지만, AWS to GCP, Azure to GCP도 가능합니다.
반대인 GCP to AWS는 아래의 문서를 참고해주세요.
https://seonggi.kr/214
[AWS] S3 (SaaS 서비스)를 DX, VPN (private)망으로 사용
개요 사무실, IDC에서 public망이 아닌 DX, VPN망을 이용하여 S3를 사용하기 위한 방안작성 입니다. S3외에도 DynamoDB 같은 SaaS형 서비스에는 적용됩니다. 일반적으로 iaas 서비스는 VPN을 구성하면 그것
seonggi.kr
Private Service Connect서비스는 사용자가 VPC내부에서 비공개로 GCP의 관리형 서비스로 액세스할 수 있도록 해주는 제품이며, Google Cloud Networking 기능입니다.
이하 문서에서는 약자인 PSC로 표기하겠습니다.
상세설명은 아래 링크를 참고해주세요.
https://cloud.google.com/vpc/docs/private-service-connect?hl=ko
Private Service Connect | VPC | Google Cloud
Private Service Connect를 사용하여 내부 IP 주소로 VM에서 Google API 및 서비스에 액세스합니다.
cloud.google.com
- Server에서 Google Cloud Storage 서비스를 사용하기 위해 해당 storage주소를 내부 DNS에 질의합니다.
- 내부 DNS에서는 googleapis.com으로 질의가 왔으므로, GCP DNS에 가서 해당 주소를 질의합니다.
- GCP Cloud DNS에서는 googleapis.com으로 질의가 왔을 때 PSC로 안내되도록 되어있습니다.
Server는 최종적으로 PSC의 주소를 회신 받습니다. - Server가 PSC로 storage 호출을 하게되고, PSC는 해당되는 Cloud Storage로 연결합니다.
- 이 모든 과정은 Public망이 아닌 Cloud VPN or Cloud Interconnect로 연결되어, Private망으로 데이터를 주고 받습니다.
해당 오픈소스로는 설정할 것이 꽤 많기 때문에 다른 GCP 프로젝트나 AWS, Azure를 사용하는 방안도 있습니다.
- 실습 구성사항
On-Premise Network : 192.168.1.0/24
GCP VPC Network : 10.10.10.0/24
GCP PSC Network : 10.10.100.0/24
GCP PSC IP : 10.10.100.100/32
- 참고
strongSwan 설정파일 (/etc/ipsec.conf)
seonggi@seonggi-ThinkCentre-M72e:~$ sudo cat /etc/ipsec.conf
conn gcp_to_onpremise
keyexchange=ikev2
authby=secret
type=tunnel
left=%defaultroute
leftid=192.168.1.190 // On-premise VPN IP
leftsubnet=192.168.1.0/24 // On-premise 영역
right=34.22.89.130 // GCP VPN Public IP
rightsubnet=10.10.10.0/24, 10.10.100.0/24 // GCP영역
auto=start
dpdaction=hold
dpddelay=20s
dpdtimeout=300s
- 사전준비
GCP와 Site To Site VPN이 가능하도록 설치, 설정
DNS 설정 : googleapis.com 을 GCP DNS에 질의할 수 있도록 내부 DNS 설치, 설정 필요
- On-Premise
bind9만 설치해도 사용에는 문제 없습니다.
- bind9 - BIND 9 DNS 소프트웨어.
- bind9utils - BIND 9 작업을 편리하게 도와주는 유틸리티
apt install bind9 bind9utils
- DNS (Bind 설정)
sudo vi /etc/bind/named.conf.default-zones
zone "googleapis.com" {
type forward;
forward only;
forwarders {
10.10.10.2; // GCP DNS IP
};
};
sudo service bind9 restart
sudo service bind9 status
이외 도메인은 기본 설정된 대로 자기자신의 정보나 외부의 DNS서버로 질의 후 리턴하게 됩니다.
- GCP 설정
- PSC설정
![](https://blog.kakaocdn.net/dn/dgtKKi/btsDkNhgCxk/DzpTbjNBqlNvRuG64dqDgK/img.png)
서비스를 연결할 부분을 정의합니다.
모든 Google API : RDS, Bigquery, Storage GCP의 모든 관리형 서비스를 제한 없이 연결합니다.
VPC-SC : VPC 서비스 제어로 서비스의 경계를 나누고, 권한을 준 상태로 연결합니다.
- Cloud DNS
메뉴 : 네트워크 서비스 > Cloud DNS 선택
![](https://blog.kakaocdn.net/dn/XSV83/btsDkT2J7Kt/FKrPqU2OlKkPMEqxkKG8sk/img.png)
![](https://blog.kakaocdn.net/dn/CyN0z/btsDkMbBwlR/QzlmbrU3K0Jmrkh29aCoc1/img.png)
세부정보로 들어가서 “CNAME”, “A”레코드를 각각 추가합니다.
A 레코드 : PSC IP
CNAME : *.googleapis.com → googleapis.com 레코드
![](https://blog.kakaocdn.net/dn/cJ6tw2/btsDnwstQJK/gRPDtQWavSUPxqEY8ULQG0/img.png)
“다음에서 사용 중" 탭을 선택하고 네트워크 추가를 선택합니다.
VPN으로 연결된 VPC를 선택하고 추가하게 되면 위 화면과 같이 수신 쿼리 전달 IP라는 GCP Cloud DNS의 IP가 생성 됩니다.
On-Premise ↔ VPN 서로 양단의 네트워크 대역대는 알고 있어서 통신이 되지만, PSC는 전혀 다른 대역이기 때문입니다.
VPN을 생성할 때 필수로 생성되어야 하며, 먼저 만들던가 VPN생성 이후 설정을 변경해도 전혀 상관없습니다.
![](https://blog.kakaocdn.net/dn/t5E7x/btsDiadrxrP/hhTMGlwR7rrur9C4kN7YIK/img.png)
(이렇게 설정해야 Router에 적용된 모든 서브넷이 광고됩니다.)
커스텀경로를 생성 > PSC대역을 추가합니다.
문서에서는 PSC 대역이 "10.10.100.0/24" 이므로 그렇게 추가하였습니다.
- 테스트
![](https://blog.kakaocdn.net/dn/buC67Y/btsDhL53tQS/C3oRY3dMYk9OI6iUcK2xS0/img.png)
![](https://blog.kakaocdn.net/dn/cElzb3/btsDhVmZjYe/k2zcoYx0FcQilVNKtCet5k/img.png)
![](https://blog.kakaocdn.net/dn/651Ov/btsDhLSw1L7/pBR4erkXXytKcOhyeku1Wk/img.png)
이제 public망이 아닌 VPN, Cloud Interconnect를 통해 Storage로 접속하였습니다.
AWS — GCP간 VPN 연결을 통해 보안을 강화하고 비용을 절감하는 방법 — (2) GCP Private Service Con
이전 블로그에서 AWS — GCP간 VPN 연결 방법에 대해서 소개했습니다. 하지만 VPN 연동만 했다고 바로 NAT Gateway를 타고 나가던 트래픽이 VPN 구간으로 이동하는 것이 아닙니다. IP기반으로 네트워
medium.com
'Cloud > GCP' 카테고리의 다른 글
Google Cloud Next ’24 Security 참석 (0) | 2024.08.19 |
---|---|
[GCP] WebConsole 접근 방안 (0) | 2024.08.05 |
Squid Proxy를 통한 GCP Web Console 접속 (0) | 2024.07.30 |
[GCP / Monitoring] GCP ops Agent 설치시 에러 메시지가 발생될때 (0) | 2024.05.27 |
[GCP / Security] - VPC 서비스 제어 (2) | 2024.05.26 |
[GCP / Security] Web Console 접근제어 (0) | 2024.05.23 |
Front Proxy (Squid)를 사용하여, 내부보안 향상하기 (0) | 2024.03.25 |