IAM 통합 액세스 정책 개요

Identity and Access Management(IAM) 통합 액세스 정책(UAP)을 만들어 에이전트 보안 주체와 대상 리소스(예: 대상 에이전트, MCP 서버, 엔드포인트) 간의 통신을 안전하게 관리할 수 있습니다. 이러한 정책은 Agent Gateway 인스턴스가 포함된 프로젝트에 바인딩됩니다.

Agent Gateway는 IAP (Identity-Aware Proxy)를 사용하여 UAP를 평가하고 시행합니다.

또한 IAP는 컨텍스트 인식 액세스와 통합되어 엔드 투 엔드 상담사 ID 인증 및 승인을 제공합니다.

에이전트 게이트웨이의 UAP를 설정하려면 IAM UAP 구성을 참고하세요.

상담사 ID에 보안 주체 액세스 경계 (PAB)를 만들 수도 있습니다. Agent Gateway는 IAP를 사용하여 보안 주체 액세스 경계 정책을 시행할 수 있습니다.

Agent Gateway 사용 설정

에이전트형 커뮤니케이션 정책을 사용하려면 Agent Gateway를 설정해야 합니다.

스테이징 환경에서 테스트 실행 모드(DRY_RUN)로 Agent Gateway를 구성하여 정책이 예상대로 작동하는지 확인하는 것이 좋습니다.

정책이 올바르게 작동하는지 확인한 후 Agent Gateway 구성을 업데이트하여 시행 모드를 ENFORCE로 설정할 수 있습니다. 이 모드에서는 정책을 위반하는 에이전트 통신이 허용되지 않으며 리소스와의 통신이 차단됩니다.

UAP 개요

UAP는 하나 이상의 에이전트 주 구성원이 하나 이상의 대상 리소스에 액세스할 수 있는지 여부를 제어합니다. UAP는 단일 정책에서 여러 규칙을 지원하여 IAM 정책 모델을 확장합니다. IAM 허용 정책 및 거부 정책과 달리 UAP의 각 규칙에는 허용 효과와 거부 효과가 모두 있을 수 있습니다. IAM 정책 유형에 대해 자세히 알아보세요.

규칙에는 Common Expression Language(CEL)로 표현된 조건도 포함됩니다. 조건은 게이트웨이 후 리소스에 대한 액세스를 제어하는 기본 메커니즘으로 작동합니다. Agent Gateway 및 IAP로 UAP를 적용하면 엔터프라이즈 전반에 배포된 에이전트를 엄격하게 제어할 수 있습니다. 단일 정책에서 실제 세부 에이전트 거버넌스 사용 사례를 나타낼 수 있습니다.

일반적인 정책에는 다음과 같은 두 개 이상의 서로 다른 규칙이 포함됩니다.

  • 허용 규칙: 허용 규칙에는 에이전트 주 구성원이 추적 데이터를 가져오거나 레지스트리 항목을 보기 위해 도구에서 읽기 작업을 실행하는 등 안전한 특정 작업에 액세스할 수 있는 허용 효과가 있습니다.
  • 거부 규칙: 거부 규칙에는 에이전트가 원치 않는 작업을 실행하지 못하도록 하는 거부 효과가 있습니다. 예를 들어 중요한 리소스에 대해 명령되지 않은 삭제 또는 업데이트 작업을 실행하지 못하도록 합니다.

예를 들어 고객 데이터베이스에 대한 권한 있는 액세스 권한이 있는 내부 도구와 상호작용해야 하는 자동화된 고객 지원 에이전트를 생각해 보세요. 관리자는 IAM UAP를 적용하기 위해 IAP로 Agent Gateway를 구성합니다. 관리자는 에이전트 주 구성원이 지원 티켓을 읽을 수 있도록 승인하는 허용 규칙과 에이전트 주 구성원이 데이터베이스 레코드를 삭제하거나 업데이트할 수 없도록 하는 거부 규칙으로 UAP를 구성할 수 있습니다.

허용 및 거부 규칙이 모두 포함된 UAP를 사용하면 조직에서 기본 클라우드 인프라에 단일 기업 규정 준수 정책을 직접 배포하여 에이전트 동작을 제한할 수 있습니다.

권장사항

에이전트 이그레스 정책을 구성할 때는 다음 권장사항을 따르세요.

  • 테스트 실행 모드 사용: 활성 에이전트 트래픽을 차단하지 않고 정책이 예상대로 작동하는지 확인하려면 먼저 테스트 실행 모드에서 신규 또는 수정된 정책을 배포하세요.
  • 최소 권한의 원칙 적용: 필요한 권한만 부여합니다. 와일드카드 대신 CEL 조건에서 구체적인 도구 이름이나 경로를 사용하세요.
  • 가드레일에 거부 규칙 사용: 명시적 거부 규칙을 사용하여 프로덕션 엔드포인트에서 파괴적인 도구를 차단하는 등 중요한 가드레일을 구현합니다. 가드레일에 거부 규칙을 사용하면 거부 규칙이 허용 규칙을 재정의하므로 효과적입니다.
  • 정기적으로 감사 실행: Cloud 감사 로그 로그와 정책 구성을 주기적으로 검토하여 조직의 보안 정책을 준수하는지 확인합니다.

UAP 구성요소

UAP에는 하나 이상의 규칙이 포함됩니다. 규칙에는 다음 구성요소가 있습니다.

에이전트 보안 주체

IAM UAP에서 하나 이상의 에이전트 주 구성원을 정의합니다. 상담사 주 구성원은 액세스 권한을 부여하는 구성원입니다. 리소스와의 통신을 시작하는 에이전트의 ID인 에이전트 ID로 에이전트를 지정합니다. 다양한 유형의 에이전트가 ID를 수신하는 방법에 대한 자세한 내용은 에이전트 ID를 참고하세요. 에이전트 ID는 에이전트의 SPIFFE 형식 ID (예: principal://agents.global.org-...)가 포함된 보안 주체 식별자로 표시됩니다.

개별 에이전트 ID 배열 또는 주 구성원 집합 배열을 지정할 수 있습니다.

기본 제공 에이전트 ID는 에이전트 런타임(Reasoning Engine), Gemini Enterprise (Discovery Engine), 에이전트 ID로 구성된 Cloud Run 서비스와 같은 Cloud de Confiance 서비스 전반에서 프로비저닝됩니다. 이러한 에이전트 주체는 principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER 형식을 취합니다. 여기서 식별자는 호스팅 서비스의 에이전트 리소스 경로를 나타냅니다. 워크로드 아이덴티티 제휴 주 구성원 식별자를 사용하여 에이전트를 지정할 수도 있습니다.

규칙 영향

규칙 효과는 규칙에서 에이전트 주 구성원의 리소스 액세스를 허용하는지 또는 허용하지 않는지를 정의합니다.

대상 리소스

IAM UAP는 에이전트 주 구성원에서 대상 리소스로의 액세스를 관리합니다. 대상 리소스는 에이전트 주 구성원이 액세스하려고 하는 리소스입니다. 대상 리소스는 규칙 조건에 지정됩니다. 대상 리소스는 등록된 리소스 또는 등록되지 않은 리소스일 수 있습니다.

등록된 리소스

등록된 리소스는 에이전트 레지스트리 레지스트리에 등록된 리소스입니다.

등록된 리소스에는 다음이 포함됩니다.

  • 레지스트리: 프로젝트 내 전체 에이전트 레지스트리
  • MCP 서버: 에이전트 레지스트리에 등록된 MCP 서버입니다.
  • 에이전트: 에이전트 레지스트리에 등록된 에이전트입니다. 개별 에이전트는 에이전트 ID로 개별적으로 지정할 수 있습니다. 보안 주체 세트 식별자로 에이전트 그룹을 지정할 수 있습니다.
  • 엔드포인트: 에이전트 레지스트리에 등록된 엔드포인트입니다.

개별 서비스는 Agent Registry에 등록할 수 있습니다. 에이전트 등록을 지역화하고 규칙이 등록된 리소스에 대한 액세스를 관리하는 경우 UAP는 등록의 리전에 있는 리소스에만 적용됩니다.

등록되지 않은 리소스

등록되지 않은 리소스는 에이전트 레지스트리에 등록되지 않은 리소스입니다. UAP 규칙에서 등록되지 않은 리소스에 대한 액세스를 허용하거나 거부하려면 등록되지 않은 호스트 및 경로 속성이 포함된 Common Expression Language (CEL) 표현식을 사용하여 규칙 조건에 등록되지 않은 리소스를 지정해야 합니다.

조건

UAP 규칙에서는 conditions 블록에서 Common Expression Language (CEL) 표현식을 사용하여 타겟 리소스 범위와 세부 액세스 기준을 모두 정의합니다.

  • 타겟 리소스 범위: 규칙이 적용되는 대상 리소스를 식별합니다. JSON 형식의 정책 파일에서 destination.agent_registry.mcp_server.name 또는 destination.unregistered.host과 같은 대상 속성을 지정합니다. Cloud de Confiance 콘솔에서 타겟 리소스 아래의 대상을 선택하면 이러한 리소스 기준이 규칙의 조건 표현식에 자동으로 추가됩니다.

  • 액세스 기준: 불리언 표현식을 사용하여 규칙 효과가 적용되는 시기와 제약 조건을 결정합니다. 예를 들어 UAP CEL 속성을 사용하여 도구 이름, 읽기 전용 상태, HTTP 메서드 또는 경로 접두사를 기반으로 액세스를 제한할 수 있습니다. 규칙 효과 (허용 또는 거부)는 전체 CEL 표현식이 true로 평가되는 경우에만 적용됩니다.

gcloud CLI 및 REST API에서는 규칙 정의의 conditions 필드에 이러한 CEL 표현식을 지정합니다.

Cloud de Confiance 콘솔에서 조건 작성 도구를 사용하여 표준 규칙을 구성하거나 조건 편집기에서 직접 맞춤 CEL 표현식을 작성할 수 있습니다.

권한

IAM UAP가 있는 IAP V2에서는 항상 대상 리소스에 iap.googleapis.com/resources.egressViaIAP 권한이 부여됩니다. gcloud CLI 및 REST API에서는 정책 파일의 operation.permissions 필드에 권한을 지정합니다.

정책 생성 옵션

Cloud de Confiance 콘솔의 정책 페이지에서 IAM UAP를 만들 수 있습니다. UAP (IAM v3 정책)만 만드는 것이 좋습니다.

gcloud CLI와 REST API 모두에서 먼저 JSON 형식 파일을 만들어 IAM UAP를 구성할 수 있습니다. UAP만 만드는 것이 좋습니다.

엔드 투 엔드 인증 및 승인

IAP 및 컨텍스트 인식 액세스는 다음 프로토콜을 사용하여 기본 엔드 투 엔드 에이전트 ID 인증 및 승인을 제공합니다.

  • 상호 TLS(mTLS)
  • 소유 증명 (DPoP) 데모

에이전트 ID는 X.509 인증서와 인증서 바인딩 토큰으로 프로비저닝됩니다. IAP는 에이전트 아이덴티티가 상호 TLS (mTLS)를 사용하여 Agent Gateway에 인증하도록 강제합니다. 게이트웨이에서 에이전트가 이그레스하고 Cloud de Confiance API, MCP 서버, 기타 에이전트, 엔드포인트에 액세스하도록 허용하면 에이전트가 mTLS 경계 외부에서 액세스를 시도합니다. 컨텍스트 인식 액세스는 커뮤니케이션을 보호하기 위해 Google에서 관리하는 컨텍스트 인식 액세스 정책을 적용합니다. 이 정책에서는 DPoP가 에이전트 ID에 바인딩된 인증서 바인딩 토큰을 검증해야 합니다. 컨텍스트 인식 액세스에서 mTLS 및 DPoP를 사용하는 방법에 관한 자세한 내용은 컨텍스트 인식 액세스 에이전트 보안을 참고하세요.

UAP CEL 속성

UAP에서 조건부 표현식으로 조건을 정의할 수 있습니다. 표현식에는 여러 하위 표현식이 포함될 수 있습니다. 각 관계형 하위 조건에서 사용하는 대상 리소스 유형에 따라 사용할 수 있는 속성이 결정됩니다.

예를 들어 다음 조건에서 하위 표현식 destination.unregistered.path.startsWith('/v1/statements')의 리소스 유형은 등록되지 않은 대상이고, 속성은 destination.unregistered.path이며, startsWith()는 CEL 함수입니다.

destination.unregistered.host == 'finance.example.com' &&
destination.unregistered.path.startsWith('/v1/statements')

다음 표에 설명된 속성은 각 리소스 유형에 사용할 수 있습니다.

대상 리소스 유형 속성 세부정보

에이전트 레지스트리

destination.is_registered
값 유형 불리언
지원 값 true, false
지원되는 작업 ==, !=
destination.agent_registry.resource_type
값 유형 문자열
지원 값 'AGENT', 'ENDPOINT', 'MCP_SERVER', 'SKILL'
지원되는 작업 ==, !=, in
destination.agent_registry.location
값 유형 문자열
지원 값 Google Cloud 위치 ID (예: 'global', 'us-central1')
지원되는 작업 ==, !=, in
destination.agent_registry.project_id
값 유형 문자열
지원 값 Google Cloud 프로젝트 ID
지원되는 작업 ==, !=, in

에이전트

destination.agent_registry.agent.name
값 유형 문자열
지원 값 에이전트 리소스 이름(projects/PROJECT_ID/locations/LOCATION/agents/AGENT_NAME)
지원되는 작업 ==, !=, in

MCP 서버

destination.agent_registry.mcp_server.name
값 유형 문자열
지원 값 MCP 서버 리소스 이름(projects/PROJECT_ID/locations/LOCATION/mcpServers/MCP_SERVER_NAME)
지원되는 작업 ==, !=, in
destination.agent_registry.mcp_server.method
값 유형 문자열
지원 값 MCP 메서드 이름 (예: 'tools', 'prompts', 'resources')
지원되는 작업 ==, !=, in
destination.agent_registry.mcp_server.tool.name
값 유형 문자열
지원 값 도구 이름 (예: 'search_code', 'execute')
지원되는 작업 ==, !=, in
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
값 유형 불리언
지원 값 true, false
지원되는 작업 ==, !=
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
값 유형 불리언
지원 값 true, false
지원되는 작업 ==, !=
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
값 유형 불리언
지원 값 true, false
지원되는 작업 ==, !=
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
값 유형 불리언
지원 값 true, false
지원되는 작업 ==, !=
destination.agent_registry.mcp_server.prompt.name
값 유형 문자열
지원 값 프롬프트 이름
지원되는 작업 ==, !=, in
destination.agent_registry.mcp_server.resource.name
값 유형 문자열
지원 값 리소스 이름
지원되는 작업 ==, !=, in

엔드포인트

destination.agent_registry.endpoint.name
값 유형 문자열
지원 값 엔드포인트 리소스 이름 (projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_NAME)
지원되는 작업 ==, !=, in

등록되지 않은 대상

destination.unregistered.host
값 유형 문자열
지원 값 호스트 이름 (예: 'google.com', 'example.com')
지원되는 작업 ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.path
값 유형 문자열
지원 값 요청 경로 (예: '/admin', '/api/v1')
지원되는 작업 ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.method
값 유형 문자열
지원 값 HTTP 메서드 (예: 'get', 'post', 'put', 'delete')
지원되는 작업 ==, !=, in

다음 단계

Codelab

크로스 클라우드 에이전트 AI 애플리케이션 보호 Codelab에서 에이전트 애플리케이션을 보호하는 방법을 알아보세요.

개요

Agent Gateway 개요를 확인합니다.

가이드

Google Agent Platform의 보안 제어에 대해 알아봅니다.