승인 정책 개요

애플리케이션 부하 분산기의 전달 규칙에 적용되는 승인 정책(AuthzPolicy)은 들어오는 트래픽의 소스와 이러한 소스에 허용 또는 제한되는 작업을 정의합니다. 또한 승인 정책은 규칙이 적용되는 조건을 기술하고 트래픽을 허용, 거부, 평가하기 위한 작업을 지정합니다.

승인 정책을 사용하면 애플리케이션 부하 분산기에 들어오는 트래픽에 대해 액세스 제어 검사를 설정할 수 있습니다. 이러한 검사를 통과하는 요청은 백엔드 서비스로 라우팅됩니다. 이러한 검사를 통과하지 못하는 요청은 미승인 응답과 함께 종료됩니다.

승인 정책은 부하 분산 스키마가 EXTERNAL_MANAGED 또는 INTERNAL_MANAGED인 모든 애플리케이션 부하 분산기의 전달 규칙에 구성할 수 있습니다. 승인 정책을 지원하는 애플리케이션 부하 분산기는 다음과 같습니다.

  • 전역 외부 애플리케이션 부하 분산기
  • 리전 외부 애플리케이션 부하 분산기

  • 리전 내부 애플리케이션 부하 분산기

  • 교차 리전 내부 애플리케이션 부하 분산기

애플리케이션 부하 분산기에서 승인 정책은 경로 확장 프로그램, 네트워크 보안 정책(Google Cloud Armor에서 평가), 교차 출처 리소스 공유(CORS) 정책 및 IAP(Identity-Aware Proxy) 정책을 평가한 후에, 하지만 트래픽 관리 작업은 수행하기 전에 호출됩니다.

요청 처리 경로에서 승인 정책이 호출되는 경우를 자세히 알아보려면 부하 분산 데이터 경로의 확장성 포인트를 참조하세요.

Cloud Service Mesh로 배포된 서비스에 승인 정책을 사용하려면 Envoy를 사용한 서비스 보안 설정을 참조하세요.

승인 정책 규칙

승인 정책은 들어오는 요청이 충족해야 할 HTTP 규칙 목록으로 구성됩니다.

ALLOW 또는 DENY 작업이 포함된 승인 정책의 경우에는 HTTP 규칙(AuthzRule)으로 트래픽의 부하 분산기 통과 허용 여부를 결정하는 조건이 정의됩니다. HTTP 규칙은 최소한 하나 이상 필요합니다.

CUSTOM 작업이 포함된 승인 정책의 경우에는 HTTP 규칙(AuthzRule)으로 트래픽을 커스텀 승인 제공자에게 위임할지 여부를 결정하는 조건이 정의됩니다. 커스텀 제공자는 필수 항목이고 HTTP 규칙은 선택 사항입니다.

정책 일치는 하나 이상의 HTTP 규칙이 요청과 일치하거나 정책에 HTTP 규칙이 정의되지 않은 경우에 발생합니다.

승인 정책 HTTP 규칙은 다음 필드로 구성됩니다.

  • from: 규칙에서 허용하는 클라이언트의 ID를 지정합니다. ID는 상호 TLS 연결의 클라이언트 인증서에서 파생될 수도 있고, 서비스 계정이나 보안 태그와 같이 클라이언트 가상 머신(VM) 인스턴스와 연결된 주변 ID일 수도 있습니다.
  • to: 액세스할 수 있는 URL 또는 허용되는 HTTP 메서드와 같이 규칙에서 허용하는 작업을 지정합니다.
  • when: 충족해야 하는 추가 제약조건을 지정합니다. Common Expression Language(CEL) 표현식을 사용하여 제약조건을 정의할 수 있습니다.

승인 정책 작업

요청을 평가할 때 승인 정책은 요청에 적용할 작업(AuthzAction)을 지정합니다. 승인 정책에는 다음 중 하나일 수 있는 작업이 최소한 하나 이상 있어야 합니다.

  • ALLOW: 요청이 ALLOW 정책에 지정된 규칙과 일치할 경우 요청이 백엔드로 전달되도록 허용합니다. ALLOW 정책이 있지만 일치하는 항목이 없으면 요청이 거부됩니다. 즉, ALLOW 작업이 있는 구성된 승인 정책 중 요청과 일치하는 정책이 없으면 요청이 거부됩니다. Cloud Logging에서 이 작업은 denied_as_no_allow_policies_matched_request로 로깅됩니다.

    ALLOW 작업을 적용하려면 HTTP 규칙이 최소한 하나 이상 필요합니다.

  • DENY: 요청이 DENY 정책에 지정된 규칙과 일치하면 요청을 거부합니다. DENY 정책이 있지만 일치하는 항목이 없으면 요청이 허용됩니다. 즉, DENY 작업이 있는 구성된 승인 정책 중 요청과 일치하는 정책이 없으면 요청이 허용됩니다. Cloud Logging에서 이 작업은 allowed_as_no_deny_policies_matched_request로 로깅됩니다.

    DENY 작업을 적용하려면 HTTP 규칙이 최소한 하나 이상 필요합니다.

  • CUSTOM: 승인 결정을 IAP 또는 서비스 확장 프로그램과 같은 커스텀 승인 제공자에게 위임합니다. 자세한 내용은 승인 정책을 사용하여 승인 결정 위임을 참조하세요.

    CUSTOM 정책에 대해 구성된 HTTP 규칙이 있는 경우 커스텀 제공자를 호출하려면 요청이 HTTP 규칙과 일치해야 합니다. 하지만 정의된 HTTP 규칙이 없으면 승인 정책이 항상 승인 결정을 커스텀 승인 제공자에게 위임합니다. 자세한 내용은 정의된 HTTP 규칙이 없고 승인 정책이 승인 결정을 IAP에 위임하는 다음 예시를 참조하세요.

    승인 정책 만들기 및 IAP 사용 설정

승인 정책 평가 순서

승인 정책은 액세스 제어를 위해 CUSTOM, DENY, ALLOW 정책을 지원합니다. 여러 승인 정책이 단일 리소스와 연결된 경우에는 CUSTOM 정책이 먼저 평가되고, 그다음으로 DENY 정책, 마지막으로 ALLOW 정책이 평가됩니다. 평가는 다음 규칙에 따라 결정됩니다.

  1. 요청과 일치하는 CUSTOM 정책이 있는 경우 커스텀 승인 제공업체를 사용하여 CUSTOM 정책이 평가되며 제공업체에서 요청을 거부하면 요청이 거부됩니다. DENY 또는 ALLOW 정책이 구성되어 있더라도 평가되지 않습니다.

  2. 요청과 일치하는 DENY 정책이 있으면 요청이 거부됩니다. 구성된 ALLOW 정책이 있더라도 평가되지 않습니다.

  3. ALLOW 정책이 없으면 요청이 허용됩니다.

  4. ALLOW 정책 중 하나라도 요청과 일치하면 요청이 허용됩니다.

  5. ALLOW 정책이 있지만 일치하는 항목이 없으면 요청이 거부됩니다. 즉, ALLOW 작업이 있는 구성된 AuthzPolicies 중 요청과 일치하는 항목이 없으면 기본적으로 요청이 거부됩니다.

승인 정책을 사용하여 승인 결정 위임

승인 정책을 사용하여 표현할 수 없는 복잡한 승인 결정의 경우 승인 결정을 IAP(Identity-Aware Proxy)와 같은 커스텀 승인 제공업체에 위임하거나 서비스 확장 프로그램을 사용하여 빌드된 자체 승인 확장 프로그램을 만듭니다. 온프레미스 승인 엔진을 사용하거나 IAP를 통해 서드 파티 ID 공급업체를 사용하려는 경우에 유용합니다.

  • IAP: 애플리케이션 부하 분산기 전달 규칙을 통해 접근하는 애플리케이션에 대한 액세스를 제어하도록 IAP를 구성합니다. IAP는 사용자 ID와 컨텍스트를 확인하여 액세스 권한을 결정합니다. 또한 Identity and Access Management(IAM) 서비스 계정 토큰을 인증하고 IAM 정책을 평가하여 애플리케이션 부하 분산기에서 노출된 백엔드 버킷에 대한 액세스를 보호할 수 있습니다. 자세한 내용은 IAP 및 IAM에 승인 위임을 참조하세요.

    다음 시나리오에서는 IAP 및 IAM에 승인을 위임하도록 선택할 수 있습니다.

    • 권한 관리에 IAM 사용
    • 컨텍스트 인식 액세스 구현
    • 대화형 인증이 필요한 웹 애플리케이션에는 브라우저 기반 인증 사용
  • 서비스 확장 프로그램: Google Cloud VM 인스턴스 또는 온프레미스에서 실행되는 커스텀 승인 엔진에 승인 결정을 위임합니다. 이는 기본 제공 정책으로 지원되지 않는 복잡한 승인 정책에 유연성을 제공합니다. 자세한 내용은 승인 확장 프로그램 구성을 참조하세요.

서비스 계정 또는 태그 기반의 승인 정책

서비스 계정 또는 태그와 같은 속성을 사용하여 내부 애플리케이션 부하 분산기의 트래픽 소스를 식별할 수 있습니다.

내부 애플리케이션 부하 분산기의 경우 Google Cloud 리소스에 연결된 서비스 계정 또는 태그를 기반으로 승인 정책을 적용할 수 있습니다. 특정 서비스 계정 또는 태그에 연결된 Google Cloud 리소스에서 시작되는 트래픽은 허용되거나 거부되거나 외부 서비스에 위임될 수 있습니다.

다음 표에서는 이러한 서비스 계정 및 태그 사용을 지원하는 소스 리소스와 여러 다른 가상 프라이빗 클라우드(VPC) 아키텍처를 보여줍니다.

소스 서비스 계정 지원 태그 지원
VM
GKE 노드
GKE 컨테이너 * *
Cloud Run용 직접 VPC *
서버리스 VPC 액세스 커넥터
Cloud VPN * *
온프레미스 Cloud Interconnect * *
애플리케이션 부하 분산기
네트워크 부하 분산기

* Google Cloud에서는 지원되지 않습니다.

소스 IP 주소는 고유하며 대신 사용할 수 있습니다.

VPC VPC 아키텍처 지원
VPC 내 프로젝트 간(공유 VPC)
VPC 내 리전 간
VPC 간 피어링 링크 간(피어 VPC)
VPC 간 Private Service Connect 간
VPC 간 Network Connectivity Center 스포크 간

Google Cloud VM 리소스에 연결된 서비스 계정 및 태그를 기반으로 승인 정책을 설정하는 방법은 서비스 계정 또는 태그 기반의 승인 정책을 참조하세요.

할당량

승인 정책의 할당량 관련 정보는 승인 정책의 할당량 및 제한을 참조하세요.

가격 책정

승인 정책은 미리보기 기간 동안 요금이 청구되지 않습니다. 하지만 Google Cloud 부하 분산기를 사용하면 네트워킹 요금이 발생합니다. 가격 정보는 가격 책정을 참조하세요.

다음 단계