VPC 서비스 제어는 Vertex AI에서 데이터 무단 반출 위험을 완화하는 데 도움을 줍니다. VPC 서비스 제어를 사용하여 지정한 리소스 및 데이터를 보호하는 서비스 경계를 만듭니다. 예를 들어 VPC 서비스 제어를 사용하여 Vertex AI를 보호하면 다음 아티팩트는 서비스 경계를 벗어날 수 없습니다.
- AutoML 모델 또는 커스텀 모델의 학습 데이터
- 사용자가 만든 모델
- 신경망 아키텍처 검색을 사용하여 검색한 모델
- 온라인 추론 요청
- 일괄 추론 요청의 결과
- Gemini 모델
Google API에 대한 액세스 제어
온프레미스 및 멀티 클라우드에서 Vertex AI 액세스에 설명된 대로 Vertex AI API는 공개 인터넷, Google API용 Private Service Connect, 비공개 Google 액세스를 비롯한 다양한 액세스 옵션을 포함합니다.
공개 액세스
기본적으로 이러한 공개 API는 인터넷에서 연결할 수 있지만 사용하려면 IAM 권한이 필요합니다. Google API용 Private Service Connect 및 비공개 Google 액세스와 같은 기능은 하이브리드 네트워크 아키텍처를 통한 비공개 통신을 지원하지만 Vertex AI API의 공개 인터넷 액세스 가능성을 없애지는 않습니다.
API 액세스를 세부적으로 제어하고 공개 인터넷 노출을 명시적으로 제한하려면 VPC 서비스 제어를 구현해야 합니다. VPC 서비스 제어 (VPC-SC) 경계를 설정하고 보호 서비스에 Vertex AI API를 포함하면 Vertex AI 인스턴스에 대한 모든 공개 인터넷 액세스가 자동으로 차단됩니다. 따라서 프로그래매틱 방식으로 또는 Google Google Cloud 콘솔을 사용하여 Vertex AI 서비스에 액세스하려는 사용자는 허용 목록에 포함되지 않는 한 액세스가 거부됩니다.
경계 외부의 승인된 소스(예: 회사 사무실의 사용자)에 대한 액세스를 복원하려면 VPC 서비스 제어 경계 외부에서 보호된 리소스에 대한 공개 엔드포인트 액세스 허용에서 배포 안내를 참고하세요.
비공개 액세스
공개 Google API를 비공개 액세스로 제한해야 하는 조직은 Google API용 Private Service Connect (VPC 서비스 제어 번들) 또는 비공개 Google 액세스와 함께 VPC 서비스 제어를 사용할 수 있습니다. 하이브리드 네트워킹을 통해 Google Cloud내에 배포된 경우 두 옵션 모두 온프레미스에서 Google API에 비공개로 액세스할 수 있습니다. 하지만 Google API용 Private Service Connect는 맞춤 IP 주소와 DNS 엔드포인트 이름을 정의하는 유연성도 제공합니다.
인터넷에 요청을 노출하지 않고도 Google Cloud 서비스를 요청하기 위한 비공개 네트워크 경로를 제공하려면 Google API용 Private Service Connect 또는 비공개 Google 액세스와 함께 제한된 가상 IP (VIP)를 사용하는 것이 좋습니다. 제한된 VIP는 온프레미스 및 VPC 네트워크를 고려해야 하는 VPC 서비스 제어가 보호할 수 있는 모든 API를 지원합니다. 예를 들면 다음과 같습니다.
- VPC 서비스 제어 경계 외부의 비공개 엔드포인트에서 보호된 리소스에 대한 멀티클라우드 액세스 허용
- 고객 PSC Google API 엔드포인트 사용 방법 알아보기 (VPC 네트워크 예시)
- 온프레미스 네트워크 예시
비공개 서비스 액세스를 통한 API 액세스 제어
비공개 서비스 액세스로 배포된 다음 Vertex AI API는 VPC 서비스 제어로 보호되는 환경에서 구현할 때 추가 네트워킹 구성이 필요합니다.
- 벡터 검색(색인 쿼리)
- 커스텀 학습(데이터 영역)
- Vertex AI Pipelines
- 비공개 온라인 예측 엔드포인트
예를 들어 Vertex AI Pipelines는 단일 테넌트 프로젝트 및 VPC 네트워크에 배포되고 소비자 요구사항에 따라 지원되는 서비스를 확장할 수 있는 Google 관리 (프로듀서) 서비스입니다. 프로듀서 네트워크와 소비자 네트워크 간의 통신은 VPC 네트워크 피어링을 통해 설정됩니다. 단, 프로듀서 네트워크를 통해 라우팅되는 인터넷 이그레스는 예외입니다.
생산자 네트워크에는 Google API에 대한 무제한 액세스 외에도 인터넷 이그레스를 허용하는 기본 경로가 있습니다. 제한된 VIP를 지원하도록 프로듀서 네트워크를 업데이트하려면 피어링용 VPC 서비스 제어를 사용 설정해야 하며, 이 경우 서비스 네트워킹 프로듀서 네트워크에 배포된 모든 지원되는 서비스에서 다음 작업이 실행됩니다.
- IPv4 기본 경로 (대상
0.0.0.0/0
, 다음 홉 기본 인터넷 게이트웨이)를 삭제합니다. - Cloud DNS 관리형 비공개 영역을 만들고 서비스 프로듀서 VPC 네트워크에 대해 해당 영역을 승인합니다. 이 영역에는 VPC 서비스 제어와 호환되는 Google API 및 서비스에 필요한
googleapis.com
,pkg.dev
,gcr.io
및 기타 도메인 또는 호스트 이름이 포함됩니다. - 영역에 데이터를 기록하면 모든 호스트 이름이
199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
로 확인됩니다.
기존 Google 관리 서비스에 영향을 주지 않고 프로듀서 네트워크에서 기본 경로를 삭제하는 다른 방법은 다음 단계로 구성된 Cloud Interconnect를 통한 HA VPN을 사용하는 것입니다.
- HA VPN을 사용하여 소비자 VPC 네트워크에 서비스 VPC 네트워크를 배포합니다.
- 서비스 VPC 네트워크에 Google 관리형 서비스를 배포합니다.
- 피어링용 VPC 서비스 제어를 사용 설정합니다.
- 관리형 서비스에 온프레미스 도달 가능성이 필요한 경우 Cloud Router에서 비공개 서비스 액세스 서브넷을 커스텀 경로 공지로 공지합니다.
- 커스텀 경로 내보내기 옵션을 사용하여 서비스 네트워킹 VPC 네트워크 피어링을 업데이트합니다.
생성형 AI 조정 파이프라인을 위한 VPC 서비스 제어 지원
VPC 서비스 제어 지원은 다음 모델의 조정 파이프라인에서 제공됩니다.
text-bison for PaLM 2
BERT
T5
- 모델의
textembedding-gecko
계열
Vertex AI Pipelines에 VPC 서비스 제어 사용
서비스 경계는 Vertex AI에서 인터넷의 서드 파티 API 및 서비스로의 액세스를 차단합니다. Vertex AI Pipelines에서 사용할 Google Cloud 파이프라인 구성요소를 사용하거나 자체 커스텀 파이프라인 구성요소를 만드는 경우 공개 Python 패키지 색인 (PyPI) 레지스트리에서 PyPI 종속 항목을 설치할 수 없습니다. 대신 다음 중 하나를 수행해야 합니다.
커스텀 컨테이너 사용
프로덕션 소프트웨어 권장사항으로 구성요소 작성자는 컨테이너화된 Python 구성요소를 사용하고 종속 항목을 컨테이너 이미지에 빌드하여 파이프라인 실행 중에 라이브 설치가 필요하지 않도록 해야 합니다. 이 작업을 실행하는 한 가지 방법은 다음과 같습니다.
- Kubeflow Pipelines SDK 및 기타 패키지가 사전 설치된 자체 컨테이너 이미지를 빌드합니다. 예를 들어
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest
을 이미지의 기본 레이어로 사용하고 컨테이너 빌드 시간에 패키지를 설치하는 추가 레이어를 추가할 수 있습니다. base_image
경로와install_kfp_package
플래그를False
로 설정하도록 구성요소 정의 코드를 업데이트합니다. 이 플래그는 Kubeflow Pipelines SDK 패키지가 이미지에 이미 설치되어 있으므로 KFP 컴파일러가 컨테이너 명령줄에 pip install kfp 명령어를 삽입하지 않도록 지시합니다. 예를 들면 다음과 같습니다.@component( base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17', install_kfp_package=False, ) def my_component(...): ...
Artifact Registry 저장소에서 패키지 설치
또는 프로젝트에 Artifact Registry 저장소를 만들고, 여기에 Python 패키지를 저장하고, 이 섹션에 설명된 대로 이 저장소에서 설치하도록 Vertex AI 환경을 구성할 수 있습니다. 자세한 내용은 Python 패키지 관리를 참고하세요.
역할 및 권한 구성
- Vertex AI 환경의 서비스 계정에는
iam.serviceAccountUser
역할이 있어야 합니다. - 프로젝트 네트워크의 저장소에서 커스텀 PyPI 패키지를 설치하며 이 저장소에 공개 IP 주소가 없는 경우:
- 환경의 서비스 계정에 이 저장소에 대한 액세스 권한을 할당합니다.
- 이 저장소에 대한 연결이 프로젝트에 구성되어 있는지 확인합니다.
저장소 만들기
- 프로젝트에서 VPC 모드로 Artifact Registry 저장소를 만듭니다.
- 필요한 Python 패키지를 저장소에 저장합니다.
저장소에서 설치하도록 Vertex AI 환경 구성
하나 이상의 Artifact Registry 저장소에서 맞춤 PyPI 패키지를 설치하려면 다음과 유사한 호출을 @dsl.component
에 실행하세요.
@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['http://myprivaterepo.com/simple', 'http://pypi.org/simple'],)
def hello_world(text: str) -> str:
import my_package
import tensorflow
return my_package.hello_world(text)
PSC 인터페이스와 함께 VPC 서비스 제어 사용
비공개 서비스 연결 인터페이스로 배포된 다음 Vertex AI API는 VPC 서비스 제어로 보호되는 환경에서 구현할 때 추가 네트워킹 구성이 필요합니다.
- 커스텀 학습(데이터 영역)
- Vertex AI Pipelines
- 비공개 온라인 추론 엔드포인트
- Vertex AI Agent Engine
공개 인터넷에 액세스하는 Vertex AI 프로듀서의 서비스 기능은 프로젝트의 보안 구성, 특히 VPC 서비스 제어 사용 여부에 따라 달라집니다.
VPC 서비스 제어 미사용: Vertex AI를 호스팅하는 Google 관리 테넌트가 기본 인터넷 액세스를 유지합니다. 이 아웃바운드 트래픽은 프로듀서 서비스가 실행되는 안전한 Google 관리 환경에서 직접 나갑니다. 이 동작의 예외는 인터넷 이그레스를 제공하지 않는 Vertex AI Agent Engine입니다. 대신 인터넷 이그레스를 위해 RFC 1918 주소가 있는 프록시 VM을 배포해야 합니다.
VPC 서비스 제어 사용: 프로젝트가 VPC 서비스 제어(VPC-SC) 경계에 포함된 경우 Vertex AI를 호스팅하는 Google 관리 환경의 기본 인터넷 액세스가 차단됩니다. 이 제한은 데이터 무단 반출을 방지하기 위해 설계된 보안 조치입니다. 이 시나리오에서 Vertex AI가 공용 인터넷에 액세스하도록 허용하려면 VPC 네트워크를 통해 트래픽을 라우팅하는 보안 이그레스 경로를 명시적으로 구성해야 합니다.
권장되는 방법은 다음과 같습니다.
- RFC 1918 서브넷 내 VPC 경계 내에 프록시 서버를 배포합니다.
- 프록시 VM이 인터넷에 연결할 수 있도록 Cloud NAT 게이트웨이를 만듭니다.
- 런타임 환경에서 프록시 서버 (IP 주소 또는 FQDN)를 정의합니다.
이 작업에 지정되거나 선호되는 네트워크 프록시가 없습니다. 적절한 솔루션을 사용하면 됩니다. 예를 들면 Squid 프록시, HAProxy, Envoy, TinyProxy가 있습니다.
서비스 경계 만들기
서비스 경계 만들기에 대한 개요는 VPC 서비스 제어 문서의 서비스 경계 만들기를 참고하세요.
경계에 제한된 서비스 추가
서비스 경계를 설정할 때는 모든 제한된 서비스를 보안 권장사항으로 포함하는 것이 좋습니다. 이 포괄적인 접근 방식을 사용하면 잠재적인 취약점과 무단 액세스를 최소화할 수 있습니다. 하지만 조직에 Vertex AI 및 상호 연결된 API를 보호하는 데 중점을 둔 특정 요구사항이 있는 시나리오가 있을 수 있습니다. 이러한 경우 작업에 필수적인 특정 Vertex AI API만 선택하여 포함할 수 있습니다.
서비스 경계에 통합할 수 있는 Vertex AI API에는 다음이 포함됩니다.
- Vertex AI API는 다음 서비스와 기능을 지원합니다.
- 일괄 추론
- 데이터 세트
- Vertex AI Feature Store(Bigtable 온라인 서빙)
- Vertex AI Feature Store(최적화된 온라인 서빙)
- Vertex AI의 생성형 AI(Gemini)
- Vertex AI Model Registry
- 온라인 추론
- 벡터 검색(색인 생성)
- 벡터 검색(색인 쿼리)
- 커스텀 학습(컨트롤 플레인)
- 커스텀 학습(데이터 영역)
- Vertex AI Pipelines
- 비공개 온라인 추론 엔드포인트
- Colab Enterprise
- Vertex AI Agent Engine
- Notebooks API는 다음 서비스를 지원합니다.
- Vertex AI Workbench
제한사항
VPC 서비스 제어를 사용할 때는 다음과 같은 제한사항이 적용됩니다.
- 데이터 라벨 지정의 경우 레이블러의 IP 주소를 액세스 수준에 추가해야 합니다.
- Google Cloud 파이프라인 구성요소의 경우 구성요소는 기본 이미지에서 모든 요구사항을 확인하는 컨테이너를 실행합니다.
KFP 패키지와
packages_to_install
인수에 나열된 모든 패키지는 컨테이너의 요구사항입니다. 지정된 요구사항이 기본 이미지 (제공된 또는 맞춤)에 아직 없는 경우 구성요소는 Python 패키지 색인 (PyPI)에서 다운로드하려고 시도합니다. 서비스 경계는 Vertex AI에서 인터넷의 서드 파티 API 및 서비스로의 액세스를 차단하므로Connection to pypi.org timed out
를 사용한 다운로드가 실패합니다. 이 오류를 방지하는 방법은 Vertex AI 파이프라인에서 VPC 서비스 제어 사용을 참고하세요. - Vertex AI Workbench에서 커스텀 커널과 함께 VPC 서비스 제어를 사용하는 경우 대신
*.notebooks.googleusercontent.com
에 대한 요청을 서브넷 199.36.153.4/30(restricted.googleapis.com
) 대신 199.36.153.8/30(private.googleapis.com
)으로 전송하도록 DNS 피어링을 구성해야 합니다. - Vertex AI 추론과 함께 VPC 서비스 제어를 사용하는 경우 프로젝트가 서비스 경계에 추가된 후에 엔드포인트를 만들어야 합니다. 서비스 경계에 속하지 않는 프로젝트에서 엔드포인트를 만든 후 해당 프로젝트를 서비스 경계에 추가하면 해당 엔드포인트에 모델을 배포하려고 할 때 실패합니다. 엔드포인트가 공유 공개 엔드포인트인 경우 엔드포인트에 요청을 전송하는 것도 실패합니다. 마찬가지로 서비스 경계에 속한 프로젝트에서 엔드포인트를 생성한 후 프로젝트를 삭제하면 엔드포인트에 모델을 배포하려고 할 때 실패합니다.
- Vertex AI Agent Engine과 함께 VPC 서비스 제어를 사용하는 경우 에이전트를 배포하기 전에 프로젝트가 서비스 경계에 속해야 합니다. 프로젝트가 경계에 추가되기 전에 에이전트가 배포되면 에이전트는 VPC 서비스 제어로 보호되지 않으며 공개 인터넷에 계속 액세스할 수 있습니다.
다음 단계
- VPC 서비스 제어: 공유 VPC에서 클라우드 프로젝트를 분할하는 방법 동영상을 시청하세요.
- VPC 서비스 제어에서 테스트 실행 모드를 사용하는 방법 동영상을 시청하세요.
- VPC 서비스 제어: 세부적인 액세스 제어를 위한 비공개 IP 지원 동영상을 시청하세요.
- VPC 서비스 제어 자세히 알아보기
- VPC 서비스 제어에 필요한 역할에 대해 자세히 알아보세요.
- VPC 서비스 제어 문제 해결 알아보기
- 고객의 VPC에서 인터넷에 액세스하기 위해 프록시 VM을 배포하는 방법을 알아보세요.