외부 IP 주소를 사용하여 VM에서 API에 액세스
네트워크 인터페이스에 할당된 외부 IP 주소가 있는 가상 머신(VM) 인스턴스는 이 페이지에 설명된 네트워크 요구사항이 충족되면 Google API 및 서비스에 연결할 수 있습니다. VM의 외부 IP 주소에서 연결이 생성되더라도 트래픽은 Google Cloud 내에 유지되며 공개 인터넷을 통해 전송되지 않습니다.
네트워크 요구사항
외부 IP 주소를 사용하여 VM에서 Google API 및 서비스에 액세스하려면 다음 요구사항을 충족해야 합니다.
- Google Cloud 콘솔의 API 및 서비스 페이지에서 사용해야 하는 Google API를 사용 설정해야 합니다.
IPv6를 사용하여 Google API 및 서비스에 연결하려면 다음 요구사항을 모두 충족해야 합니다.
VM은 외부
/96
IPv6 주소 범위로 구성해야 합니다.VM에서 실행되는 소프트웨어가 전송하는 패킷의 소스가 해당 범위의 IPv6 주소 중 하나와 일치해야 합니다.
- 선택한 구성에 따라 DNS 항목, 경로, 방화벽 규칙을 업데이트해야 할 수 있습니다. 자세한 내용은 구성 옵션 요약을 참조하세요.
구성 옵션 요약
다음 표에서는 비공개 Google 액세스를 구성할 수 있는 여러 방법을 요약해서 보여줍니다. 자세한 구성 정보는 네트워크 구성을 참조하세요.
도메인 옵션 | DNS 구성 | 라우팅 구성 | 방화벽 구성 |
---|---|---|---|
기본 도메인 | 특별한 DNS 구성은 필요하지 않습니다. | VPC 네트워크가 Google API 및 서비스에 사용되는 IP 주소 범위로 트래픽을 라우팅할 수 있는지 확인합니다. |
방화벽 규칙에 따라 Google API 및 서비스에 사용되는 IP 주소 범위에 대한 이그레스가 허용되는지 확인합니다. 기본값을 선택하면 트래픽을 차단하는 상위 우선순위 규칙이 없는 경우 이그레스 방화벽 규칙이 이 트래픽을 허용합니다. |
private.googleapis.com
|
비공개 DNS 영역에서 다음 IP 주소로 요청을 전송하도록 DNS 레코드를 구성합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
VPC 네트워크에 다음 IP 범위에 대한 경로가 있는지 확인합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
방화벽 규칙에 따라 다음 IP 범위에 대해 이그레스가 허용되는지 확인합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
restricted.googleapis.com
|
다음 IP 주소로 요청을 전송하도록 DNS 레코드를 구성합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
VPC 네트워크에 다음 IP 범위에 대한 경로가 있는지 확인합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
방화벽 규칙에 따라 다음 IP 범위에 대해 이그레스가 허용되는지 확인합니다. IPv4 트래픽의 경우:
IPv6 트래픽의 경우:
|
네트워크 구성
이 섹션에서는 VPC 네트워크의 VM이 Google API 및 서비스에 액세스하기 위해 충족해야 하는 기본 네트워크 요구사항을 설명합니다.
도메인 옵션
Google API 및 서비스에 액세스하는 데 사용할 도메인을 선택합니다.
private.googleapis.com
및 restricted.googleapis.com
가상 IP 주소(VIP)는 TCP를 통한 HTTP 기반 프로토콜(HTTP, HTTPS, HTTP/2)만 지원합니다. MQTT, ICMP를 비롯한 다른 모든 프로토콜은 지원되지 않습니다.
도메인 및 IP 주소 범위 | 지원되는 서비스 | 사용 예시 |
---|---|---|
기본 도메인
다양한 IP 주소 범위—기본 도메인의 IP 주소를 참조하여 기본 도메인에서 사용 가능한 주소가 포함된 IP 범위 집합을 확인할 수 있습니다. |
VPC 서비스 제어에서 지원하는지 여부에 관계없이 대부분의 Google API 및 서비스에 대한 API 액세스를 사용 설정합니다. Google 지도, Google Ads, Google Cloud에 대한 API 액세스 권한이 포함됩니다. Gmail 및 Google Docs와 같은 Google Workspace 웹 애플리케이션과 기타 웹 애플리케이션이 포함됩니다. |
|
|
VPC 서비스 제어에서 지원하는지 여부에 관계없이 대부분의 Google API 및 서비스에 대한 API 액세스를 사용 설정합니다. 다음 목록을 포함하여 Google 지도, Google Ads, Google Cloud 및 다른 대부분의 Google API에 대한 API 액세스가 포함됩니다. Gmail 및 Google Docs와 같은 Google Workspace 웹 애플리케이션을 지원하지 않습니다. 대화형 웹사이트를 지원하지 않습니다. 일치하는 도메인 이름:
|
다음과 같은 상황에서
|
|
VPC 서비스 제어가 지원하는 Google API 및 서비스에 대한 API 액세스를 사용 설정합니다. VPC 서비스 제어를 지원하지 않는 Google API 및 서비스에 대한 액세스를 차단합니다. Google Workspace API 또는 Google Workspace 웹 애플리케이션(예: Gmail 및 Google Docs)을 지원하지 않습니다. |
VPC 서비스 제어에서 지원하는 Google API 및 서비스에 액세스해야 하는 경우에만
|
restricted.googleapis.com
을 사용합니다. restricted.googleapis.com
을 사용하면 VPC 서비스 제어에서 지원하지 않는 Google API 및 서비스에 대한 액세스가 거부됩니다. 자세한 내용은 VPC 서비스 제어 문서의 비공개 연결 설정을 참조하세요.
private.googleapis.com
및 restricted.googleapis.com
에 대한 IPv6 지원
다음 IPv6 주소 범위를 사용하여 IPv6 클라이언트에서 Google API 및 서비스로 트래픽을 전달할 수 있습니다.
private.googleapis.com
:2600:2d00:0002:2000::/64
restricted.googleapis.com
:2600:2d00:0002:1000::/64
private.googleapis.com
또는 restricted.googleapis.com
도메인을 사용하고 IPv6 주소를 사용하는 클라이언트가 있는 경우 IPv6 주소를 구성하는 것이 좋습니다. IPv4 주소도 구성된 IPv6 클라이언트는 IPv4 주소를 사용하여 Google API 및 서비스에 연결할 수 있습니다. 일부 서비스는 IPv6 클라이언트의 트래픽을 허용하지 않습니다.
DNS 구성
Google API 및 서비스에 대한 연결의 경우 private.googleapis.com
또는 restricted.googleapis.com
VIP와 연결된 IP 주소로 패킷을 전송하도록 선택할 수 있습니다. VIP를 사용하려면 공개 IP 주소 대신 VIP 주소를 사용하여 VPC 네트워크의 VM이 서비스에 도달하도록 DNS를 구성해야 합니다.
다음 섹션에서는 DNS 영역을 사용하여 선택한 VIP와 연관된 IP 주소로 패킷을 전송하는 방법을 설명합니다. 자신에게 적용되는 모든 시나리오에 대해 해당 안내를 따르세요.
*.googleapis.com
도메인 이름을 갖는 서비스를 사용하는 경우 자세한 내용은googleapis.com
의 DNS 구성을 참고하세요.다른 도메인 이름이 포함된 서비스를 사용하는 경우 다른 도메인의 DNS 구성을 참조하세요.
예를 들어 Google Kubernetes Engine(GKE)을 사용할 경우
*.gcr.io
및*.pkg.dev
도 구성해야 하고 Cloud Run을 사용하는 경우*.run.app
을 구성해야 합니다.Cloud Storage 버킷을 사용 중이고 Cloud Storage 커스텀 도메인 이름에 요청을 전송하는 경우 Cloud Storage 커스텀 도메인 이름의 DNS 구성을 참조하세요.
VIP에 대해 DNS 레코드를 구성할 때는 다음 단계에 설명된 IP 주소만 사용합니다. private.googleapis.com
및 restricted.googleapis.com
VIP의 주소를 혼합하지 마세요. 이로 인해 제공되는 서비스가 패킷의 대상에 따라 달라지므로 간헐적인 장애가 발생할 수 있습니다.
googleapis.com
의 DNS 구성
googleapis.com
의 DNS 영역 및 레코드를 만드세요.
googleapis.com
의 비공개 DNS 영역을 만듭니다. 이 경우에는 Cloud DNS 비공개 영역 만들기를 참조하세요.googleapis.com
영역에서 선택한 도메인에 따라private.googleapis.com
또는restricted.googleapis.com
의 다음 비공개 DNS 레코드를 만듭니다.private.googleapis.com
의 경우:199.36.153.8
,199.36.153.9
,199.36.153.10
,199.36.153.11
IP 주소를 가리키는private.googleapis.com
의A
레코드를 만듭니다.IPv6 주소를 사용하여 API에 연결하려면
2600:2d00:0002:2000::
을 가리키는private.googleapis.com
의AAAA
레코드도 구성합니다.
restricted.googleapis.com
의 경우:199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
IP 주소를 가리키는restricted.googleapis.com
의A
레코드를 만듭니다.IPv6 주소를 사용하여 API에 연결하려면
2600:2d00:0002:1000::
을 가리키는restricted.googleapis.com
의AAAA
레코드도 만듭니다.
Cloud DNS에서 비공개 DNS 레코드를 만들려면 레코드 추가를 참조하세요.
googleapis.com
영역에서 구성한 도메인(private.googleapis.com
또는restricted.googleapis.com
)을 가리키는*.googleapis.com
의CNAME
레코드를 만듭니다.
다른 도메인의 DNS 구성
일부 Google API 및 서비스는 *.gcr.io
, *.gstatic.com
, *.pkg.dev
, pki.goog
, *.run.app
등의 추가 도메인 이름을 사용하여 제공됩니다.
private.googleapis.com
또는 restricted.googleapis.com
을 사용하여 추가 도메인의 서비스에 액세스할 수 있는지 확인하려면 도메인 옵션의 도메인 및 IP 주소 범위 표를 참조하세요. 그런 다음 각 추가 도메인에 대해 다음을 수행하세요.
DOMAIN
의 DNS 영역(예:gcr.io
)을 만듭니다. Cloud DNS를 사용하는 경우 이 영역이googleapis.com
비공개 영역과 동일한 프로젝트에 있는지 확인합니다.이 DNS 영역에서 선택한 도메인에 따라
private.googleapis.com
또는restricted.googleapis.com
에 대한 다음 DNS 레코드를 만듭니다.private.googleapis.com
의 경우:199.36.153.8
,199.36.153.9
,199.36.153.10
,199.36.153.11
IP 주소를 가리키는DOMAIN
의A
레코드를 만듭니다.IPv6 주소를 사용하여 API에 연결하려면
2600:2d00:0002:2000::
을 가리키는DOMAIN
의AAAA
레코드도 만듭니다.
restricted.googleapis.com
의 경우:199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
IP 주소를 가리키는DOMAIN
의A
레코드를 만듭니다.IPv6 주소를 사용하여 API에 연결하려면
2600:2d00:0002:1000::
을 가리키는restricted.googleapis.com
의AAAA
레코드도 만듭니다.
DOMAIN
영역에서DOMAIN
을 가리키는*.DOMAIN
의CNAME
레코드를 만듭니다. 예를 들어gcr.io
를 가리키는*.gcr.io
의CNAME
레코드를 만듭니다.
Cloud Storage 커스텀 도메인 이름의 DNS 구성
Cloud Storage 버킷을 사용 중이고 Cloud Storage 커스텀 도메인 이름에 요청을 보내는 경우 커스텀 Cloud Storage 도메인 이름의 DNS 레코드가 private.googleapis.com
또는 restricted.googleapis.com
의 IP 주소를 가리키도록 구성하면 Cloud Storage 버킷에 액세스할 수 없습니다.
Cloud Storage 커스텀 도메인 이름으로 요청을 보내려면 HTTP 요청의 호스트 헤더와 TLS SNI도 명시적으로 storage.googleapis.com
으로 설정해야 합니다. private.googleapis.com
및 restricted.googleapis.com
의 IP 주소는 HTTP 요청 호스트 헤더 및 TLS SNI에서 커스텀 Cloud Storage 호스트 이름을 지원하지 않습니다.
라우팅 옵션
VPC 네트워크에는 다음 홉이 기본 인터넷 게이트웨이인 적절한 경로가 있어야 합니다. Google Cloud는 다른 VM 인스턴스 또는 커스텀 다음 홉을 통해 Google API 및 서비스로 트래픽을 라우팅하지 않습니다. 기본 인터넷 게이트웨이로 불리지만 VPC 네트워크의 VM에서 Google API 및 서비스로 전송된 패킷은 Google 네트워크에 그대로 머무릅니다.
기본 도메인을 선택하면 VM 인스턴스가 Google 외부 IP 주소의 하위 집합을 사용하여 Google API 및 서비스에 연결됩니다. 이러한 IP 주소는 공개적으로 라우팅할 수 있지만 VPC 네트워크의 VM에서 해당 주소로 이동하는 경로는 Google의 네트워크 내에 그대로 남게 됩니다.
Google은
private.googleapis.com
또는restricted.googleapis.com
도메인에서 사용하는 IP 주소에 대한 경로를 인터넷에 게시하지 않습니다. 따라서 이러한 도메인은 VPC 네트워크 또는 VPC 네트워크에 연결된 온프레미스 시스템의 VM에서만 액세스할 수 있습니다.
VPC 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 기본 경로가 있으면 커스텀 경로를 만들지 않고도 해당 경로를 사용하여 Google API 및 서비스에 액세스할 수 있습니다. 자세한 내용은 기본 경로를 사용한 라우팅을 참조하세요.
기본 경로(대상 0.0.0.0/0
또는 ::0/0
)를 다음 홉이 기본 인터넷 게이트웨이가 아닌 커스텀 경로로 바꿨으면 대신 커스텀 라우팅을 사용하여 Google API 및 서비스에 대한 라우팅 요구사항을 충족할 수 있습니다.
VPC 네트워크에 IPv6 기본 경로가 없으면 Google API 및 서비스에 대해 IPv6로 연결할 수 없습니다. IPv6 연결을 허용하도록 IPv6 기본 경로를 추가합니다.
기본 경로를 사용한 라우팅
각 VPC 네트워크에는 생성 시 IPv4 기본 경로(0.0.0.0/0
)가 포함됩니다. 서브넷에 외부 IPv6 주소를 사용 설정하면 시스템 생성 IPv6 기본 경로(::/0
)가 해당 VPC 네트워크에 추가됩니다.
기본 경로는 다음 대상의 IP 주소 경로를 제공합니다.
기본 도메인
private.googleapis.com
:199.36.153.8/30
및2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
및2600:2d00:0002:1000::/64
특정 네트워크에서 기본 경로의 구성을 확인하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 경로 페이지로 이동합니다.
경로 목록을 필터링하여 확인해야 하는 네트워크의 경로만 표시합니다.
대상이 IPv4 트래픽의 경우
0.0.0.0/0
또는 IPv6 트래픽의 경우::/0
이고 다음 홉이 기본 인터넷 게이트웨이인 경로를 찾습니다.
gcloud
다음 gcloud
명령어를 사용하되, NETWORK_NAME
을 검사할 네트워크의 이름으로 바꾸고
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
다른 기본 IPv4 경로를 만들어야 하는 경우 정적 경로 추가를 참조하세요.
다른 기본 IPv6 경로를 만들어야 하는 경우 IPv6 기본 경로 추가를 참조하세요.
커스텀 라우팅
기본 경로 대신 커스텀 정적 경로를 사용할 수 있습니다. 이때 각 경로에는 보다 구체적인 대상이 있으며 각각 기본 인터넷 게이트웨이 다음 홉을 사용합니다. 필요한 경로 수와 대상 IP 주소는 선택한 도메인에 따라 다릅니다.
- 기본 도메인: Google API 및 서비스의 IP 주소 범위에 대한 경로가 있어야 합니다.
private.googleapis.com
:199.36.153.8/30
및2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
및2600:2d00:0002:1000::/64
또한 34.126.0.0/18
및 2001:4860:8040::/42
에 대해 경로를 추가하는 것이 좋습니다. 자세한 내용은 구성 옵션 요약을 참조하세요.
특정 네트워크의 Google API 및 서비스에 대한 커스텀 경로 구성을 확인하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 경로 페이지로 이동합니다.
필터 테이블 텍스트 필드를 사용하여 다음 기준을 사용하는 경로 목록을 필터링합니다. 여기서
NETWORK_NAME
을 VPC 네트워크의 이름으로 바꿉니다.- 네트워크:
NETWORK_NAME
- 다음 홉 유형:
default internet gateway
- 네트워크:
각 경로의 대상 IP 범위 열을 확인합니다. 기본 도메인을 선택한 경우 기본 도메인에서 사용하는 각 IP 주소 범위별로 하나씩, 여러 개의 커스텀 정적 경로를 확인합니다.
private.googleapis.com
또는restricted.googleapis.com
을 선택한 경우에는 해당 도메인의 IP 범위를 찾습니다.
gcloud
다음 gcloud
명령어를 사용하되, NETWORK_NAME
을 검사할 네트워크의 이름으로 바꾸고
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
--format
플래그로 명령어를 맞춤설정하지 않는 한 표 형식으로 경로가 나열됩니다. DEST_RANGE
열에서 각 경로의 대상을 찾습니다. 기본 도메인을 선택한 경우 기본 도메인에서 사용하는 각 IP 주소 범위별로 하나씩, 여러 개의 커스텀 정적 경로를 확인합니다. private.googleapis.com
또는 restricted.googleapis.com
을 선택한 경우에는 해당 도메인의 IP 범위를 찾습니다.
경로를 만들어야 하는 경우 정적 경로 추가를 참조하세요.
방화벽 구성
VPC 네트워크 방화벽은 VM에서 Google API 및 서비스에서 사용되는 IP 주소로의 액세스를 허용하도록 구성해야 합니다. 묵시적인 allow egress
규칙은 이러한 요구사항을 충족합니다.
일부 방화벽 구성에서는 특정 이그레스 허용 규칙을 만들어야 합니다.
예를 들어 모든 대상(IPv4의 경우 0.0.0.0
, IPv6의 경우 ::/0
)에 대한 트래픽을 차단하는 이그레스 거부 규칙을 만들었다고 가정해 보겠습니다. 이 경우 Google API 및 서비스에 선택한 도메인에서 사용되는 각 IP 주소 범위에 대해서 이그레스 거부 규칙보다 우선순위가 높은 이그레스 허용 방화벽 규칙을 하나씩 만들어야 합니다.
- 기본 도메인: Google API 및 서비스의 모든 IP 주소 범위
private.googleapis.com
:199.36.153.8/30
및2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
및2600:2d00:0002:1000::/64
또한 이그레스 허용 방화벽 규칙에 34.126.0.0/18
및 2001:4860:8040::/42
를 포함하는 것이 좋습니다. 자세한 내용은 구성 옵션 요약을 참조하세요.
방화벽 규칙을 만들려면 방화벽 규칙 만들기를 참조하세요. 각 이그레스 허용 규칙의 대상을 정의할 때 방화벽 규칙이 적용되는 VM을 제한할 수 있습니다.
기본 도메인의 IP 주소
이 섹션에서는 *.googleapis.com
및 *.gcr.io
와 같은 Google API 및 서비스에서 사용되는 기본 도메인 IP 범위 목록을 만드는 방법을 설명합니다. 이러한 범위는 동적으로 할당되고 자주 변경되므로 개별 서비스 또는 API에 특정 IP 범위를 정의할 수 없습니다. 정확한 목록을 유지하려면 매일 스크립트를 실행하도록 자동화를 설정하세요. IP 주소 범위 목록을 유지하는 대신 private.googleapis.com VIP 또는 Private Service Connect를 사용하는 것이 좋습니다.
Google은 인터넷 사용자에게 제공되는 IP 범위의 전체 목록을 goog.json에 게시합니다.
또한 Google은 고객이 Google Cloud 리소스에 사용할 수 있는 전역 및 리전별 외부 IP 주소 범위 목록을 cloud.json에 게시합니다.
Google API 및 서비스의 기본 도메인에서 사용되는 IP 주소는 goog.json
의 범위에서 cloud.json
의 모든 범위를 삭제하여 계산한 범위 목록에 포함됩니다. 이 목록은 자주 업데이트됩니다.
다음 Python 스크립트를 사용하여 Google API 및 서비스의 기본 도메인에서 사용되는 IP 주소 범위의 목록을 만들 수 있습니다.
이 스크립트 실행에 대한 자세한 내용은 실행 방법을 참조하세요.