Cloud Load Balancing의 조직 정책 제약조건

이 페이지에서는 Cloud Load Balancing에 적용되는 조직 정책 제약조건을 보충 설명합니다. 조직 정책 제약조건을 사용하여 전체 프로젝트, 폴더 또는 조직에 부하 분산기 설정을 적용할 수 있습니다.

조직 정책을 사용하여 조직에서 만들 수 있는 Cloud Load Balancing 유형을 제한할 수 있습니다. 다음 조직 정책 제약조건을 설정합니다.

constraints/compute.restrictLoadBalancerCreationForTypes

compute.restrictLoadBalancerCreationForTypes 제약조건을 설정할 때 허용되지 않는 Cloud Load Balancing 유형을 지정합니다. 사용 가능한 유형 목록은 부하 분산기 만들기 제한을 참조하세요.

조직 정책 설정

Console

Console에서 Cloud Load Balancing 조직 정책을 설정하려면 다음 단계를 완료합니다.

  1. Google Cloud Console에서 조직 정책 페이지로 이동합니다.

    조직 정책 페이지로 이동

  2. 필터 필드에 load를 입력하고 constraints/compute.restrictLoadBalancerCreationForTypes를 선택합니다.
  3. 부하 분산기 유형에 따라 부하 분산기 만들기 제한을 클릭합니다.
  4. 수정을 클릭하여 기존 Cloud Load Balancing 정책 제약조건을 수정합니다.
  5. 커스텀 정책을 만들려면 맞춤설정을 선택합니다.
  6. 항목을 변경한 후 저장을 클릭하여 제약조건 설정을 적용합니다.

gcloud

OS 로그인 조직 정책을 설정하려면 gcloud resource-manager org-policies enable-enforce 명령어를 사용합니다.

  1. 조직 ID를 찾습니다.

    gcloud organizations list
  2. 다음 예시에 표시된 것처럼 정책 파일을 만듭니다.

    거부할 값 나열

    {
     "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
     "listPolicy": {
       "deniedValues": [
         "INTERNAL_TCP_UDP",
         "INTERNAL_HTTP_HTTPS",
         "EXTERNAL_NETWORK_TCP_UDP",
         "EXTERNAL_TCP_PROXY",
         "EXTERNAL_SSL_PROXY",
         "EXTERNAL_HTTP_HTTPS"
       ]
     }
    }
    

    모든 외부 부하 분산기 거부

    {
     "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
     "listPolicy": {
       "deniedValues": [
         "EXTERNAL"
       ]
     }
    }
    

    모든 부하 분산기 거부

    {
      "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
      "listPolicy": {
        "allValues": "DENY"
      }
    }
    
  3. 조직의 제약조건을 설정합니다. ORGANIZATION_ID조직 ID로 바꿉니다.

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    --folder 또는 --project 플래그와 폴더 ID, 프로젝트 ID를 각각 사용하여 OS 로그인 조직 정책을 폴더 또는 프로젝트에 적용할 수도 있습니다.

    폴더에 다음 명령어를 실행합니다.

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    프로젝트에 다음 명령어를 실행합니다.

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    다음을 바꿉니다.

정책을 설정한 후 해당 Google Cloud 전달 규칙을 추가할 때 정책이 적용됩니다.

기존 Cloud Load Balancing 구성에는 제약조건이 적용되지 않습니다.

제약조건을 위반하는 유형의 Cloud Load Balancing을 만들려고 시도하면 작업이 실패하고 오류 메시지가 생성됩니다. 오류 메시지의 형식은 다음과 같습니다.

Constraint constraints/compute.restrictLoadBalancerCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

서로 다른 리소스 수준에 설정된 여러 restrictLoadBalancerCreationForTypes 제약조건은 계층적으로 적용됩니다. 따라서 상위 계층의 정책도 고려할 수 있도록 inheritFromParent 필드를 true로 설정하는 것이 좋습니다.

사용 가능한 옵션 설명을 포함하여 조직 정책 설정에 대해 자세히 알아보려면 조직 정책 만들기 및 관리제약조건 사용을 참조하세요.

GKE 오류 메시지

Google Kubernetes Engine(GKE) 서비스인그레스 객체를 사용할 경우 이 조직 정책을 사용하여 부하 분산기 생성 결과를 제한하면 다음과 유사한 오류 메시지가 표시됩니다.

Warning  Sync    28s   loadbalancer-controller  Error during sync: error running
load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME
does not exist: googleapi: Error 412:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for
projects/PROJECT_ID. Forwarding Rule
projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME
of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet

다음 명령어를 실행하여 GKE 오류 메시지를 볼 수 있습니다.

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

다음을 바꿉니다.

  • RESOURCE_KIND: 부하 분산기의 유형(ingress 또는 service)
  • NAME: 부하 분산기의 이름

다음 단계