IAP를 사용 설정하여 비공개 온프렘, Compute Engine, GKE 또는 기타 엔드포인트 호출

엔드포인트에 대해 IAP(Identity-Aware Proxy)를 사용 설정하여 Workflows에서 비공개 온프레미스, Compute Engine, Google Kubernetes Engine(GKE), 기타 Google Cloud 엔드포인트를 호출할 수 있습니다. IAP는 액세스 제어 정책을 적용하는 데 사용되며 HTTPS로 액세스되는 애플리케이션의 중앙 승인 레이어를 설정하여 네트워크 수준 방화벽에 의존하지 않고 애플리케이션 수준 액세스 제어 모델을 사용할 수 있도록 합니다. 자세한 내용은 IAP 개요 및 다음 내용을 참조하세요.

또는 Workflows와 서비스 디렉터리의 서비스 레지스트리를 함께 사용하면 워크플로 실행에서 HTTP 호출의 비공개 엔드포인트를 타겟팅할 수 있습니다. 가상 프라이빗 클라우드(VPC) 네트워크 내에서 비공개 엔드포인트를 만들면 엔드포인트가 VPC 서비스 제어 규정을 준수할 수 있습니다. 자세한 내용은 VPC 서비스 제어 규정을 준수하는 비공개 엔드포인트 호출을 참조하세요.

HTTP 요청 수행

Workflows에서 비공개 엔드포인트를 호출할 때 HTTP 요청이 수행됩니다. 가장 일반적인 HTTP 요청 메서드에는 호출 단축키(예: http.gethttp.post)가 있지만, call 필드를 http.request로 설정하고 method 필드를 사용해 요청 유형을 지정하여 모든 유형의 HTTP 요청을 수행할 수 있습니다. 자세한 내용은 HTTP 요청 수행을 참조하세요.

필요한 권한이 있는 서비스 계정 사용

다른 Google Cloud 서비스에 요청을 수행할 때는 요청된 리소스에 액세스하는 데 필요한 권한이 포함된 Identity and Access Management(IAM) 역할이 하나 이상 부여된 서비스 계정에 워크플로를 연결해야 합니다. 기존 워크플로와 연결된 서비스 계정에 대해 알아보려면 워크플로의 연결된 서비스 계정 확인을 참조하세요.

서비스 계정을 설정할 때 액세스 권한을 부여할 리소스와 요청 ID를 연결하고 요청 ID를 리소스의 주 구성원 또는 사용자로 만든 후 적절한 역할을 할당합니다. 역할은 리소스 컨텍스트에서 ID의 권한을 정의합니다. 애플리케이션 또는 리소스가 IAP에 의해 보호되는 경우 올바른 역할을 가진 주 구성원만 프록시를 통해 액세스할 수 있습니다.

예를 들어 인증 후 IAP는 관련 허용 정책을 적용하여 주 구성원이 요청된 리소스에 액세스하도록 허용되었는지 확인합니다. 주 구성원에게 리소스가 있는 Google Cloud 콘솔 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할(roles/iap.httpsResourceAccessor)이 있으면 애플리케이션에 액세스하는 권한을 가집니다.

Workflows 서비스 계정을 주 구성원으로 추가하여 IAP 페이지를 통해 IAP 보호 리소스에 대해 액세스를 구성할 수 있습니다. 자세한 내용은 IAP 보호 리소스에 대한 액세스 관리를 참조하세요.

워크플로에 인증 정보 추가

기본적으로 HTTP 요청은 보안상의 이유로 ID 또는 액세스 토큰을 포함하지 않습니다. 워크플로 정의에 인증 정보를 명시적으로 추가해야 합니다. 비공개 엔드포인트를 요청하려면 OIDC를 사용해서 IAP를 통해 인증합니다.

OIDC를 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후 워크플로 정의의 args 섹션에 auth 섹션을 추가합니다.

YAML

  - step_A:
      call: http.get
      args:
          url: https://www.example.com/endpoint
          body:
              someValue: "Hello World"
              anotherValue: 123
          auth:
              type: OIDC
              audience: OIDC_AUDIENCE
    

JSON

    [
      {
        "step_A": {
          "call": "http.get",
          "args": {
            "url": "https://www.example.com/endpoint",
            "body": {
              "someValue": "Hello World",
              "anotherValue": 123
            },
            "auth": {
              "type": "OIDC",
              "audience": "OIDC_AUDIENCE"
            }
          }
        }
      }
    ]
      

audience 매개변수를 사용하여 토큰의 OIDC 대상을 지정할 수 있습니다. IAP가 사용 설정된 엔드포인트를 호출할 때 애플리케이션에 구성한 OAuth 2.0 클라이언트 ID를 지정해야 합니다. 사용자 인증 정보 페이지에서 얻을 수 있습니다.

다음 단계