승인 정책 개요

애플리케이션 부하 분산기의 전달 규칙에 적용되는 승인 정책 (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 중 요청과 일치하는 항목이 없으면 기본적으로 요청이 거부됩니다.

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

승인 정책을 사용하여 표현할 수 없는 복잡한 승인 결정의 경우 승인 결정을 Identity-Aware Proxy(IAP)와 같은 맞춤 승인 제공업체에 위임하거나 서비스 확장 프로그램을 사용하여 빌드된 자체 승인 확장 프로그램을 만듭니다. 이는 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 가격 정보는 가격 책정을 참고하세요.

다음 단계