문서의 목적
Public Cloud 인 Google Cloud Platform은 리소스 생성, 삭제, 확인 여러가지 업무를 Web Console에서 지원하고 있습니다.
VPN을 통해 GCP의 리소스를 Public망이 아닌 VPN으로 접근은 가능하지만, Web Console의 경우에는 별도의 Web Proxy를 사용하는 방안이 있습니다.
본 문서에서는 오픈소스인 Squid Proxy를 사용하여 사용자가 VPN을 통해 WebConsole로 접근하는 방안에 대해 작성합니다.
유의사항
GCP에서는 별도의 secure web proxy라는 PaaS서비스를 제공하고 있습니다.
위의 Squid proxy는 사용자가 설치, 구축, 유지보수를 다 하여야 하나 GCP의 SWP를 사용한다면 간단한 설정으로도 사용이 가능합니다.
별도의 요금이 책정되므로, 상황에 맞추어 사용을 하면 됩니다.
https://cloud.google.com/secure-web-proxy/docs/overview?hl=ko
- 구성도
본 문서에서 목표로 하는 구성도 입니다.
- VM기본설정
기본 VM 설정
WebConsole 접속만을 위한 VM으로 자원은 크게 필요가 없습니다.
접속자 수가 늘어난다면, Memory를 증설하여 사용하면 됩니다.
본 문서에서는 Ubuntu 22.04 LTS 버전을 사용하나, 기타 다른 linux OS에서도 사용이 가능합니다.
구분 | 값 |
머신 | E2-micro |
Core | 1Core |
Memory | 1GB |
Disk | 10GB |
OS | Ubuntu 22.04 LTS |
특이사항 | 접속자 수 증가시 Memory 증설 |
- Squid Proxy 설치
명령어 | 비고 |
sudo apt update | 설치 가능한 패키지 리스트를 최신화 |
sudo apt install squid | Squid 설치 |
sudo systemctl status squid | Squid 프로그램 상태 확인 Active (running)면 동작임을 확인할 수 있음 |
sudo systemctl start squid | Squid 프로그램 동작 |
sudo systemctl restart squid | Squid 프로그램 재시동 |
sudo squid -k parse | /etc/squid/squid.conf 이 올바른지 분석, 점검 툴 |
sudo cp /etc/squid/squid.conf squid.conf_backup 기존 설정파일을 복사 합니다. |
sudo squid -k parse
해당 명령어는 /etc/squid/squid.conf 파일을 분석, 검토하는 것으로 실행 하면 문제여부를 검토합니다.
문제 발생시에는 squid가 기동 되지 않으므로, 해당 분석에서 경고가 발생한다면 config 파일을 수정 후 다시 재적용 합니다.
- Squid Proxy 설정
Squid 는 Config파일이 9000여줄 되는 오픈소스 프로그램입니다.
본 문서에서는 출발지(온프레미스) 설정과 사용할 Port, 마지막으로 허용할 GCP console 도메인 리스트 설정을 작성하도록 하겠습니다.
중점으로 설정이 필요한 부분은 아래 설정 파일을 참고부탁드립니다.
"/etc/squid/allowlist.txt" 는 .google.com을 입력합니다.
https://console.cloud.google.com 만 접속하길 원한다면 mail부탁드립니다. (별도 리스트 존재)
기본 config 기준으로 Line : 1333 번째부터 수정합니다.
acl localnet src 192.168.1.0/24 #접속을 허용하는 On-premise의 내부네트워크 주소
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
# 접속을 허용하는 Port들
acl allowlist dstdomain parameters "/etc/squid/allowlist.txt" #허용할 도메인리스트 파일경로
http_access allow allowlist #위 상단의 허용도메인 리스트에 있는 것만 허용처리
http_access deny All #모든요청차단 (위 리스트만 허용 후 차단됨)
Line 2121 : # Squid normally listens to port 3128
http_port 3128
알려진 Port보단 다른 포트로 변경합니다.
기본으로 사용시에는 3128번을 사용합니다.
- Local Test
1. Proxy자체에서 curl을 통해 테스트를 진행합니다.
curl -x localhost:9090 http://www.naver.com
curl -x localhost:9090 console.cloud.google.com
아래와 같이 허용하지 않은 www.naver.com 이라면 거부 페이지가 발생됩니다.
허용된 URL이라면 해당 페이지가 문제 없이 표시됩니다.
2. Test할 PC에서 프록시를 설정합니다.
WebBrower -> 설정 -> 프록시 -> 프록시 설정 열기
웹프록시 항목에 서버IP, 포트 입력
WebBrower에서 https://console.cloud.google.com 접속 테스트
'Cloud > GCP' 카테고리의 다른 글
[GCP/OS] GCP compute engine SSH key 발급 및 접속 (0) | 2024.08.21 |
---|---|
Google Cloud Next ’24 Security 참석 (0) | 2024.08.19 |
[GCP] WebConsole 접근 방안 (0) | 2024.08.05 |
[GCP] On-Premise to GCP Serverless 서비스를 VPN(Private망)으로 연결하여 사용 (2) | 2024.07.28 |
[GCP / Monitoring] GCP ops Agent 설치시 에러 메시지가 발생될때 (0) | 2024.05.27 |
[GCP / Security] - VPC 서비스 제어 (2) | 2024.05.26 |
[GCP / Security] Web Console 접근제어 (0) | 2024.05.23 |