승인 정책 개요

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

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

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

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

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

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

승인 정책 규칙

승인 정책은 들어오는 요청이 충족해야 할 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 중 요청과 일치하는 항목이 없으면 기본적으로 요청이 거부됩니다.

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

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

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

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

소스 서비스 계정 지원 태그 지원
VM
GKE 노드
GKE 컨테이너 * *
Cloud VPN * *
온프레미스 Cloud Interconnect * *
애플리케이션 부하 분산기
네트워크 부하 분산기

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

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

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

할당량

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

다음 단계