APIMExtensionPolicy 만들기

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

이 페이지에서는 클러스터에서 실행되는 Google Kubernetes Engine (GKE) 게이트웨이에서 필요한 트래픽 확장 프로그램을 만들기 위해 APIMExtensionPolicy를 만드는 방법을 설명합니다.

시작하기 전에

이 작업을 시작하기 전에 다음 단계를 완료하세요.

  • GKE 클러스터에 워크로드 아이덴티티가 구성되어 있는지 확인합니다. 필요한 단계는 워크로드 ID 만들기를 참조하세요.
  • 클러스터에 GKE 게이트웨이가 구성되어 작동하는지 확인합니다. 자세한 내용은 게이트웨이 배포를 참조하세요.
  • Kubernetes용 Apigee Operator를 설치합니다. 설치 안내는 Kubernetes용 Apigee Operator 설치를 참고하세요.

필요한 역할

Kubernetes용 Apigee Operator 설치의 설명대로 서비스 계정에 필요한 역할을 할당한 경우 이러한 작업을 완료하는 데 필요한 추가 IAM 역할이나 권한은 없습니다.

Kubernetes에서 기본 제공되는 역할 기반 액세스 제어(RBAC) 메커니즘을 사용하여 Google Kubernetes Engine 클러스터의 리소스에 대한 작업을 승인할 수 있습니다. 자세한 내용은 역할 기반 액세스 제어를 사용하여 클러스터의 작업 승인을 참조하세요.

APIMExtensionPolicy 만들기

이 단계에서는 APIMExtensionPolicy를 만들고 클러스터에서 실행되는 GKE 게이트웨이에 적용합니다. 이 정책은 게이트웨이와 연결된 HTTPRoutes를 통과하는 모든 트래픽을 제어하며 현재 Apigee의 환경 수준에서 flowhook과 유사하게 작동합니다.

APIM 확장 프로그램 정책을 만듭니다.

  1. apim 네임스페이스에 global-ext-lb1-apim-policy.yaml이라는 새 파일을 만듭니다.
  2. 다음 콘텐츠를 새 파일에 복사합니다.
    # global-ext-lb1-apim-policy.yaml
    apiVersion: apim.googleapis.com/v1
    kind: APIMExtensionPolicy
    metadata:
      name: global-ext-lb1-apim-policy
      namespace: apim
    spec:
      apigeeEnv: ENV_NAME # optional
      location: global
      failOpen: false
      timeout: 1000ms
      defaultSecurityEnabled: true
      targetRef: # identifies the Gateway where the extension should be applied
        name: global-ext-lb1
        kind: Gateway
        namespace: default

    여기서 ENV_NAME은 설치 단계 Apigee 환경 만들기에서 만든 Apigee 환경의 이름입니다.

    Google Cloud 콘솔의 Apigee 환경 페이지에서 사용 가능한 모든 환경을 확인할 수 있습니다.

    환경으로 이동

  3. 정책을 적용합니다.
    kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml

    정책이 적용되면 Kubernetes용 Apigee Operator가 백그라운드에서 네트워킹 리소스를 만듭니다.

  4. 다음 명령어를 사용하여 APIM 확장 프로그램 정책의 상태를 확인합니다.
    kubectl -n apim get APIMExtensionPolicy

    출력은 다음과 비슷하게 표시되며 StateRUNNING입니다.

    NAME                         STATE      ERRORMESSAGE
    global-ext-lb1-apim-policy   RUNNING  
  5. 다음 명령어를 사용하여 게이트웨이에 요청을 전송합니다.
    curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"

    각 항목의 의미는 다음과 같습니다.

    • GATEWAY_IP_ADDRESS는 게이트웨이의 IP 주소입니다. 다음 명령어를 사용하여 게이트웨이 IP 주소를 검색할 수 있습니다. 여기서 GATEWAY_NAME은 게이트웨이 이름입니다.
      kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
    • HOST_NAME은 게이트웨이의 HTTPRoute에 정의된 호스트 이름입니다.
  6. API 확장 프로그램 정책 리소스에서 defaultSecurityEnabled: true를 설정하여 기본 보안이 사용 설정되어 있으므로 요청이 실패해야 합니다. 다음과 비슷한 응답이 표시됩니다.
    {"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}

    이는 Apigee 확장 프로그램 정책이 활성 상태이고 API 키 적용 및 액세스 토큰 확인이 활성 상태임을 나타냅니다.

다음 단계