Identity-Aware Proxy (IAP)를 사용하면 중앙 집중식 ID 확인을 통해 Cloud Run에 배포된 모델 컨텍스트 프로토콜 (MCP) 서버를 보호할 수 있습니다. 그런 다음 Gemini CLI 또는 AI 에이전트와 같은 클라이언트가 IAP를 통해 인증하고 원격 서버에서 도구를 안전하게 실행하도록 구성할 수 있습니다.
시작하기 전에
프로젝트에서 Cloud Run을 사용 설정합니다.
프로젝트에서 IAP를 사용 설정합니다.
필요한 역할
Cloud Run MCP 서버의 IAP 인증을 구성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Run 관리자 (
roles/run.admin) 프로젝트에 대한 - IAP 관리자 (
roles/iap.admin) 프로젝트에 대한 -
새 서비스 배포 또는 기존 서비스의 새 버전 배포:
- 런타임 서비스 계정에 대한 서비스 계정 사용자 (
roles/iam.serviceAccountUser) 역할 - 컨테이너 이미지 저장소에 대한 Artifact Registry 리더 (
roles/artifactregistry.reader)
- 런타임 서비스 계정에 대한 서비스 계정 사용자 (
-
OAuth 클라이언트 만들기 및 구성:
OAuth 구성 편집기 (
roles/oauthconfig.editor) 프로젝트에 대한 -
IAP로 보호되는 MCP 서버에 연결 또는 호출:
IAP로 보호되는 웹 앱 사용자 (
roles/iap.httpsResourceAccessor) 프로젝트 또는 Cloud Run 서비스에 대한
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Cloud Run 서비스에서 IAP 구성
Cloud Run MCP 서버에서 IAP를 구성하려면 다음 단계를 따르세요.
IAP 서비스 에이전트에 Cloud Run 호출자 역할 (
roles/run.invoker)을 부여합니다.gcloud beta run services add-iam-policy-binding SERVICE_NAME \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.s3ns-system.iam.gserviceaccount.com' \ --role='roles/run.invoker'다음을 바꿉니다.
SERVICE_NAME: 서비스 이름PROJECT_NUMBER: 프로젝트 번호 Cloud de Confiance by S3NS
새 서비스를 배포하거나 기존 서비스의 새 버전을 배포할 때 IAP를 사용 설정합니다.
새 서비스
IAP가 사용 설정된 새 서비스를 배포하려면
gcloud beta run deploy명령어를 실행합니다.gcloud beta run deploy SERVICE_NAME \ --image=CONTAINER_IMAGE \ --region=REGION \ --project=PROJECT_ID \ --allow-unauthenticated \ --iap \ --functional-type=mcp-server
다음을 바꿉니다.
SERVICE_NAME: 서비스 이름CONTAINER_IMAGE: 컨테이너 이미지REGION: 서비스를 배포하는 리전PROJECT_ID: Cloud Run이 사용 설정된 프로젝트의 ID
기존 서비스
IAP 가 사용 설정된 기존 서비스의 새 버전을 배포하려면
gcloud beta run services update명령어를 실행합니다.gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap \ --functional-type=mcp-server
다음을 바꿉니다.
SERVICE_NAME: 서비스 이름REGION: 서비스를 배포하는 리전
OAuth 클라이언트를 만들고 구성합니다.
IAP에서 사용할 OAuth 클라이언트의 범용 클라이언트 ID를 등록하려면 프로그래매틱 액세스를 위한 OAuth 클라이언트 공유를 참고하세요.
다음 값을 기록해 둡니다.
- OAuth 클라이언트 ID
- OAuth 클라이언트 보안 비밀번호
- 리디렉션 URI
Gemini CLI 또는 에이전트와 같은 클라이언트를 배포된 MCP 서버에 연결하려면
~/.gemini/settings.json파일을 수정합니다.settings.json파일에 다음 구성을 추가합니다.{ "mcpServers": { "my_mcp_server": { "httpUrl": "https://SERVICE_URL", "oauth": { "enabled": "true", "clientId": "OAUTH_CLIENT_ID", "clientSecret": "OAUTH_CLIENT_SECRET", "scopes": [ "email", "openid" ], "redirectUri": "REDIRECT_URI" } } } }다음을 바꿉니다.
SERVICE_URL: Cloud Run 서비스 URLOAUTH_CLIENT_ID: OAuth 클라이언트 구성의 클라이언트 IDOAUTH_CLIENT_SECRET: OAuth 클라이언트 구성의 클라이언트 보안 비밀번호REDIRECT_URI: OAuth 클라이언트 구성의 리디렉션 URI
연결 확인하기
클라이언트가 IAP를 통해 인증하고 MCP 서버에 연결할 수 있는지 확인하려면 다음 단계를 따르세요.
터미널에서 Gemini CLI를 시작합니다.
gemini
브라우저에 메시지가 표시되면 IAP 인증 흐름을 완료합니다.
Gemini CLI가 MCP 서버에서 제공하는 도구를 성공적으로 검색하고 나열하는지 확인합니다.