Cloud/GCP

[GCP / Security] - VPC 서비스 제어

달빛궁전- 2024. 5. 26. 22:45
목적 :
온프레미스는 물리적으로 분리된 환경에 있다보니 허가된 사용자와 장소에서만 접근이 가능하지만, Public Cloud GCP는 공개된 특성상 기본적으로 Console에는 모두 다 접근이 가능합니다.

개인이 아닌 기업의 경우에는 AWS는 Organization, SCP등을 이용하여 허가된 사용자와 장소에서만 접근이 가능하게 할 수 있고, GCP역시 VPC서비스 제어와 Access Context Manager를 이용하여 보안을 향상할 수 있습니다.

본 문서에서는 예제 시나리오를 가지고 허가된 장소와 사용자만 GCP서비스를 사용하는 방안을 기술하겠습니다.

 

유의사항 :
VPC 서비스 제어는 서비스의 제한을 발생시키기에 테스트 실행모드 (DryRun)가 있습니다.
본 문서에서는 실행여부를 확인하기 위해 바로 시행 모드로 하였지만
실 서비스 적용시에는 테스트 실행모드 → 로그 확인 → 시행의 순서로 진행되어야 합니다.
테스트 모드
 
 
시나리오 및 구성도
사무실에서는 모든 사용자들이 접속하여 모든 서비스를 사용 가능
허가받은 외부장소에서는 특정ID + IP를 통해서 Cloud Storage만 사용 가능하며 그이외는 사용불가
그외 장소에서와 ID로는 WebConsole은 접근가능하나 모든 GCP 리소스 사용불가

  

구성도
 

테스트 ID-1(허용ID)      : gcp@seonggi.kr 
테스트 ID-2(허가되지 않은 ID)  : hun815@seonggi.kr

 

 

 

1. Access Context Manager 설정

프로젝트가 아닌 조직으로 먼저 변경합니다.


사무실에서의 모든 사용자는 사용이 가능하도록 “Access Context Manager”를 설정
Console : 보안 → 제로 트러스트 → Access Context Manager

 


액세스 수준 만들기 선택 후 다른 누구도 잘 알아볼 수 있도록 규칙이름을 설정 합니다.
이번 문서에서는 IP 기반으로 진행하기에 기본 모드와 공개IP를 선택 하였습니다.

 

 


이제 허가된 외부장소의 IP 값이 있는 “Access Context”가 생성이 되었습니다.

 



동일하게 사무실의 IP를 추가하여 “Access Context”를 하나 더 생성합니다.

 

2. VPC서비스 제어 설정

 


Console : 보안 → 제로 트러스트 → VPC 서비스 제어
새 경계를 선택합니다.
알기 쉽도록 룰 명을 설정 합니다.

 



보호할 리소스 

해당 설정은 프로젝트와 VPC NETWORK별로 지정을 할 수 있습니다.
본 문서는 테스트 프로젝트에 대해 진행했습니다.

 


제한된 서비스
제한할 서비스들을 선택합니다.
여기서 선택되지 않은 서비스들은 제한되지 않으므로, 고객, 운영과 협의하여 환경에 맞도록 설정합니다.
본 문서에서는 모든 서비스를 제한하였습니다.



이제 Ingress Rules (인그레스 정책) 설정입니다.
2개의 규칙을 설정합니다.
- 규칙1 : 허가된 장소와 ID로 특정서비스만 사용가능한 규칙
From 에는 ID와 기존에 설정한 외부 장소의 “Access Context”
To 에는 All Projects, 특정 서비스인 Cloud Storage API를 선택합니다.

 

 

- 규칙2 : 사무실에서는 모든 GCP 리소스 사용가능
From 에는 모든 ID와 사무실의 “Access Context”
To 에는 All Projects, All Services를 선택합니다.

 


이제 생성을 눌러 VPC 서비스 경계를 생성합니다.

 

 

3. 테스트

이제 해당 내용이 적용되었는지 테스트를 진행해보겠습니다.
규칙 1에 적용된 대로 허가된 장소와 테스트 ID-1로 접속 후 “Compute Engine”을 접속 시도시 아래와 같이 에러메시지가 발생됩니다.

 


허가된 서비스인 “Cloud Storage”를 선택하면 정상적으로 버킷이 보입니다.

 



이제 아예 허가되지 않는 테스트 ID-2로 접속해 보겠습니다.
Web Console은 접속되지만, 아래와 같이 오류메시지가 발생됩니다.

 

 

참고 Docs : 

https://cloud.google.com/vpc-service-controls/docs/ingress-egress-rules?hl=ko&_gl=1*i8jdqz*_ga*MTI0NDQxNTgxOS4xNzE2MzUyNDcy*_ga_WH2QY8WWF5*MTcxNjM1NjAzNS4yLjEuMTcxNjM1OTE2OC4wLjAuMA..

 

인그레스 및 이그레스 규칙  |  VPC 서비스 제어  |  Google Cloud

의견 보내기 인그레스 및 이그레스 규칙 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 VPC 서비스 제어의 인그레스 규칙과 이그레스 규칙

cloud.google.com

 

https://cloud.google.com/vpc-service-controls/docs/supported-products?hl=ko

 

지원되는 제품 및 제한사항  |  VPC 서비스 제어  |  Google Cloud

의견 보내기 지원되는 제품 및 제한사항 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에는 VPC 서비스 제어에서 지원하는 제품 및 서비스의 표와

cloud.google.com

 

https://medium.com/google-cloud-apac/gcp-gcp-%EC%97%90%EC%84%9C-%EC%A1%B0%EC%A7%81-organization-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0-6%EB%B6%80-vpc-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A0%9C%EC%96%B4-bc470e73ff8b

 

[GCP]GCP 에서 조직(Organization) 활용하기 6부 — VPC 서비스 제어

안녕하세요 이정운 입니다.

medium.com

 

https://cloud.google.com/vpc-service-controls/docs/context-aware-access?hl=ko#allow_human_users_to_access_bigquery_from_the_internet_and_only_specific_service_accounts_access_from_a_specified_ip_range

 

인그레스 규칙을 사용한 컨텍스트 인식 액세스  |  VPC 서비스 제어  |  Google Cloud

의견 보내기 인그레스 규칙을 사용한 컨텍스트 인식 액세스 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 컨텍스트 인식 액세스 인그레스 규칙을 설정하

cloud.google.com

 

 

마무리하며..
VPC서비스 제어는 GCP서비스 리소스에 대해 상세하게 제한하는 설정이 가능합니다.
Public에 존재하는 Cloud지만, 상황에 맞도록 설정한다면 보안성 향상에 도움이 될 것입니다.

 

GCP 보안 관련되어 작성한 글들 입니다. 

 

https://seonggi.kr/230

 

[GCP / Security] Web Console 접근제어

문서의 목적GCP의 장점이자 단점은 언제 어디에서나 Web Console로 접근하여 업무를 수행할 수 있습니다.고객사 내부에서 특정 IP, 사용자만 GCP에 접속할 수 있도록 방화벽등을 통해 가능하나, 외부

seonggi.kr

https://seonggi.kr/218

 

Front Proxy (Squid)를 사용하여, 내부보안 향상하기

배경 : 보통은 Front Proxy라고 하면 지역제한으로 접근 못하는 웹이나 여러 서비스를 우회하기 위해 일반 사용자들이 많이 사용합니다. (예를 들면 한국에서는 유튜브 구독료가 비싸서, 아르헨티

seonggi.kr

https://seonggi.kr/226

 

[Security] 서비스 경계 브리지를 사용한 GCP 리소스간 연결방법

목적 : GCP에서는 VPC서비스 제어라는 보안이 있습니다. 그 중 서비스 경계를 통해 Google Cloud 리소스와 VPC네트워크 격리가 가능합니다. 이를 통해 네트워크 통신을 차단, 허용하는 것 외에 GCP 리소

seonggi.kr

https://seonggi.kr/201

 

[GCP] 2단계(MFA) 인증을 조직 단위로 설정하기

목적 : 도메인을 사용하여, 조직에 속하게 되면 사용자들에게 로그인시 2단계 인증을 강제할 수 있습니다. 단순히 ID/Password 보다 2차인증(문자, 앱, 통화등)을 받을 수 있으므로, 보안성 향상에 도

seonggi.kr

https://seonggi.kr/215

 

[GCP] On-Premise to GCP SaaS서비스를 VPN(Privat망)으로 연결하여 사용

배경 : On-Premise에서는 외부, 내부 경계가 명확합니다. Cloud는 VPC로 구획을 나누기는 하지만, iaas외 SaaS는 자체 제공하는 서비스이기 때문에, Public망으로 서비스를 제공받게 됩니다. 물론 CSP에서는

seonggi.kr

https://seonggi.kr/214

 

[AWS] S3 (SaaS 서비스)를 DX, VPN (private)망으로 사용하기

개요 사무실, IDC에서 public망이 아닌 DX, VPN망을 이용하여 S3를 사용하기 위한 방안작성 입니다. S3외에도 DynamoDB 같은 SaaS형 서비스에는 적용됩니다. 일반적으로 iaas 서비스는 VPN을 구성하면 그것

seonggi.kr

https://seonggi.kr/203

 

GCP에서 Windows RDP Port 변경

목적 : Windows Server 계열은 RDP를 사용하여 원격접속을 합니다. 해당 서비스는 기본으로 3389를 사용하며, 잘 알려진 well-known port이기 때문에 포트 변경을 통해 무작위 대입 공격을 방지할 수 있습니

seonggi.kr

https://seonggi.kr/223

 

[GCP/OS] GCP compute engine SSH key 발급 및 접속

회사에서 간단하게 작성했던 기술 토막글 이었는데, 생각보다 처음에 VM 접속시 Web Console에서 SSH가 아닌 Local -> VM 접속하는데 있어 방안을 모르는 분들도 있어, 정리하는 차원에서 업로드 목적 :

seonggi.kr