개별적으로 승인된 API로 액세스를 제한하는 제어

Last reviewed 2024-02-06 UTC

많은 조직에는 내부 요구사항을 기준으로 또는 Assured Workloads 채택의 일환으로 명시적으로 승인된 API 목록으로 네트워크 액세스를 제한해야 하는 규정 준수 요구사항이 있습니다. 온프레미스에서는 이 요구사항이 프록시 제어로 해결되는 경우가 많지만 Google Virtual Private Cloud(VPC)에서는 대신 리소스 서비스 사용량 제한 조직 정책을 사용하여 이 요구사항을 해결할 수 있습니다. 관리자는 이 정책을 통해 리소스 계층 구조 내에서 만들 수 있는 Google Cloud 리소스를 정의할 수 있지만 이 조직 정책을 효과적으로 사용하려면 환경의 다양한 네트워킹 제어를 정렬해야 합니다.

이 문서에서는 조직 정책 서비스 및 기타 네트워크 제어를 사용하여 개별적으로 승인된 Google API로 액세스를 제한하는 방법과 Google Cloud 서비스에 온프레미스 프록시 기반 방식을 적용할 때의 문제에 대해 설명합니다. 이 문서는 VPC 네트워크 엔드포인트에서 연결할 수 있는 Google Cloud API를 제한하려는 네트워크 관리자 또는 보안팀을 대상으로 작성되었습니다.

Google API 액세스 제어를 위한 프록시 문제

온프레미스 네트워크에서 기업은 승인된 서비스 및 도메인으로만 이그레스 트래픽을 허용할 수 있는 규정 준수 요구사항을 가질 수 있습니다. 이 요구사항은 웹 프록시 또는 보안 액세스 게이트웨이를 통해 이그레스 트래픽을 필터링하여 적용할 수 있습니다. 이 프록시는 모든 발신 트래픽을 가로채서 명시적으로 승인된 API에만 이그레스를 허용합니다.

일부 기업에서는 VPC 네트워크로부터 승인된 Google Cloud API로의 액세스를 제한하는 유사한 규정 준수 요구사항을 가질 수 있습니다. 이러한 규정 준수 제어는 종종 다음과 같은 시나리오에서 나타납니다.

  • 기업에서 민감한 워크로드 및 규정 준수 제어를 위해 Assured Workloads를 채택하는 경우
  • 기업에 Google Cloud의 네트워크 엔드포인트가 내부 프로세스를 통해 승인된 Google Cloud APIs에만 액세스할 수 있도록 허용하는 내부 규정 준수 요구사항이 있는 경우
  • 기업이 리팩터링을 최소화하면서 Infrastructure as a Service(IaaS) 워크로드를 Google Cloud로 마이그레이션하려고 하는 경우
  • 기업이 아직 클라우드용 제어를 개발하지 않았으며 온프레미스 환경에서 기존 제어 기능을 확장하여 사용하려고 하는 경우

기업에서는 웹 프록시를 사용하여 온프레미스 네트워크에서 웹 서비스로의 이그레스를 제어할 수 있지만 VPC 네트워크에서 Google Cloud API로의 액세스를 제어하는 데는 이 접근 방법을 사용하지 않는 것이 좋습니다. 이 프록시 방식을 사용하면 확장성 문제가 발생하고, 단일 장애점이 발생하며, Google Cloud API를 이용한 데이터 무단 반출 위험을 처리하지 못합니다.

개별 Google Cloud API에 대한 액세스를 선택적으로 허용하려면 프록시 대신 리소스 서비스 사용량 제한 조직 정책을 사용하는 것이 좋습니다. 개별 Google API에 대한 액세스 제어를 위한 웹 프록시 빌드 및 유지관리와 관련된 문제는 다음 섹션에서 설명합니다.

여러 Google API에서 사용되는 공유 IP 주소 범위

단일 IP 주소로 필터링하는 프록시 또는 방화벽 규칙으로 개별 Google API에 대한 액세스를 제어할 수 없습니다. Google에서는 기본 도메인에 동적 IP 주소 범위를 사용합니다. 이러한 IP 주소 내에서는 전용 IP 주소와 특정 API 간에 일대일 관계가 없습니다.

Google API에서 사용되는 공유 도메인

일부 Google API의 경우 도메인의 트래픽을 필터링하여 네트워크 액세스를 제어할 수 없습니다. 대부분의 Google API는 경로를 기준으로 특정 API를 구분하고 www.googleapis.com으로 시작하는 URI로 시작되는 엔드포인트에 도달할 수 있습니다. 특정 Google API는 전용 하위 도메인이 있는 엔드포인트를 사용합니다. 예를 들어 Cloud Storage API 참조storage.googleapis.com/storage/v1 엔드포인트와 관련된 URI를 문서화하지만, www.googleapis.com/storage/v1으로 시작하는 URI를 사용하여 동일한 API 메서드를 호출할 수도 있습니다.

www.googleapis.com 도메인에 엔드포인트만 있는 여러 API를 사용하는 경우 이그레스 프록시는 도메인만 기반으로 하는 API를 구분할 수 없습니다. 예를 들어 Deployment Manager와 같은 일부 Google Cloud API, 태그 관리자 또는 Google Play 게임즈와 같은 다른 Google API는 www.googleapis.com 도메인에서만 액세스할 수 있습니다. 또한 모든 Google Cloud API는 기본적으로 TLS 암호화를 사용합니다. 이러한 API 중 하나만 허용하고 나머지는 차단하려면 프록시가 요청을 복호화하여 URI 경로를 필터링해야 하므로 복잡성이 증가합니다.

프록시로 인한 병목 현상

VPC 네트워크에서 Google API로 전달되는 모든 트래픽이 이그레스 프록시를 통과해야 하는 경우 프록시에서 병목 현상이 발생할 수 있습니다. VPC 네트워크에서 Google API로 가는 트래픽에 이그레스 프록시를 사용하는 경우 서비스 중단을 방지하기 위해 고가용성 프록시를 빌드하는 것이 좋습니다. 조직이 성장함에 따라 프록시가 단일 장애점과 지연 시간을 유발하고 처리량을 줄일 수 있으므로 프록시 유지보수 및 확장이 복잡해질 수 있습니다. 대량의 데이터를 전송하는 작업에는 특정 영향이 있을 수 있습니다.

서비스 간 유출 위험

웹 프록시는 VPC 네트워크에서 Google API에 연결할 수 있는지 여부를 제한할 수 있지만 Google API를 사용하는 다른 유출 경로는 해결하지 않습니다. 예를 들어 기업 내부의 직원에게는 내부 Cloud Storage 버킷을 읽을 수 있는 적절한 IAM 권한이 있을 수 있습니다. 이러한 권한을 통해 내부 데이터를 읽은 다음 데이터를 공개 버킷에 복사할 수 있습니다. 이그레스 프록시는 VPC에서 발생하지 않는 API 간 트래픽을 제한하거나 인터넷 트래픽이 Google Cloud API의 공개 엔드포인트에 도달하는 방법을 제한할 수 없습니다.

민감한 정보의 경우 VPC 서비스 제어 경계를 사용하면 이러한 유형의 유출을 완화하는 데 도움이 됩니다. VPC 서비스 제어 경계를 적용하면 경계 내의 리소스를 잘못 구성된 IAM 정책, 유출, 손상된 사용자 인증 정보로부터 보호할 수 있습니다.

승인되지 않은 서비스를 제한하도록 네트워크 제어 구성

리소스 서비스 사용 제한 조직 정책을 사용하여 서비스에 대한 액세스를 효과적으로 제한하려면 VPC 네트워크가 이그레스 트래픽과 유출 경로를 제한하는 방법을 고려해야 합니다. 다음 섹션에서는 리소스 서비스 사용량 제한 조직 정책을 효과적으로 사용하기 위한 네트워크 설계 권장사항을 설명합니다.

VPC 서비스 제어 구성

리소스 서비스 사용량 제한 조직 정책을 사용하는 경우 VPC 서비스 제어도 구성하는 것이 좋습니다. 프로젝트에 조직 정책을 적용하면 해당 프로젝트에서 사용할 수 있는 서비스를 제한할 수 있지만 조직 정책은 이 프로젝트의 서비스가 다른 프로젝트의 서비스와 통신하는 것을 차단하지 않습니다. 반면에 VPC 서비스 제어를 사용하면 경계 외부 서비스와 통신을 방지하도록 경계를 정의할 수 있습니다.

예를 들어 프로젝트에서 Compute Engine을 허용하고 Cloud Storage를 거부하도록 조직 정책을 정의하는 경우 이 프로젝트의 VM은 프로젝트의 Cloud Storage 버킷을 만들거나 통신할 수 없습니다. 하지만 VM은 다른 프로젝트의 Cloud Storage 버킷에 요청할 수 있으므로 Cloud Storage 서비스를 통한 유출이 여전히 가능합니다. Cloud Storage 또는 다른 Google 서비스와의 통신을 차단하려면 VPC 서비스 제어 경계를 구성해야 합니다.

이러한 제어를 함께 사용하여 환경에서 승인된 서비스를 선택적으로 허용하고 승인되지 않은 서비스에 대한 다양한 유출 경로를 차단하세요.

인터넷 경로 삭제

VPC 네트워크의 리소스가 인터넷에 직접 통신할 수 있으면 승인되지 않은 Google API 및 차단하려는 다른 서비스에 대한 대체 경로가 있을 수 있습니다. 따라서 VM에서 내부 IP 주소만 사용하고 NAT 또는 프록시 솔루션을 통한 이그레스 경로를 허용하지 않는 것이 좋습니다. 리소스 서비스 사용량 제한 조직 정책은 공개 인터넷으로의 유출 경로를 완화하지 않으므로 승인되지 않은 서비스가 여전히 환경 외부의 서버에서 간접적으로 액세스할 수 있습니다.

API 액세스를 위한 비공개 엔드포인트 구성

네트워크에서 API 엔드포인트를 제어하려면 Private Service Connect를 사용하여 Google API에 액세스하는 것이 좋습니다. 내부 IP만 있는 VM이 Google API에 액세스하도록 비공개 Google 액세스를 구성하면 VPC 서비스 제어 또는 리소스 서비스 사용량 제한 조직 정책에서 지원하지 않는 항목을 비롯해 모든 Google API에 대한 액세스가 포함됩니다. vpc-sc 번들로 Private Service Connect를 추가로 구성하여 비공개 Google 액세스를 지원되는 API로만 제한할 수 있습니다.

예를 들어 비공개 Google 액세스를 사용 설정하면 Google Drive 또는 Google Maps Platform과 같은 모든 Google API에 비공개 네트워크 경로가 허용됩니다. 직원은 Google Drive API를 사용하여 Compute Engine 인스턴스에서 개인 Google 드라이브로 데이터를 복사할 수 있습니다. vpc-sc 번들로 Private Service Connect를 구성하여 이 유출 경로를 방지함으로써 제한된 .googleapis.com 엔드포인트의 제한된 VIP(가상 IP)가 지원하는 동일한 서비스 집합에 대한 액세스를 제공할 수 있습니다. 반면에 Google 기본 도메인, all-apis 번들로 구성된 Private Service Connect 엔드포인트 또는 Private VIP(private.googleapis.com)를 사용할 때 Private Google Access를 사용하여 보다 광범위한 Google API 집합에 연결할 수 있습니다.

또는 restricted.googleapis.com으로의 경로를 구성할 수 있습니다. 환경에서 각 리전과 각 VPC 네트워크마다 Private Service Connect 엔드포인트를 만들고 싶지 않으면 제한된 VIP를 사용하는 것이 좋습니다. 하지만 Private Service Connect 접근 방식을 사용하면 공개적으로 발표된 엔드포인트의 경로를 필요로 하는 제한된 VIP 접근 방식과 다르게 VPC 네트워크 내부에 엔드포인트를 만들 수 있으므로 이 방법을 사용하는 것이 좋습니다.

다음 단계