Workflows에서 비공개 온프레미스, Compute Engine, Google Kubernetes Engine(GKE) 또는 기타 Google Cloud 엔드포인트를 호출하거나 호출하는 작업은 HTTP 요청을 통해 수행됩니다. 가장 일반적인 HTTP 요청 메서드에는 호출 단축키(예: http.get 및 http.post)가 있지만, call
필드를 http.request
로 설정하고 method
필드를 사용해 요청 유형을 지정하여 모든 유형의 HTTP 요청을 수행할 수 있습니다. 자세한 내용은 HTTP 요청 수행을 참조하세요.
IAP 사용 설정
Workflows가 엔드포인트를 호출할 수 있도록 비공개 엔드포인트에 IAP(Identity-Aware Proxy)를 사용 설정해야 합니다. IAP는 액세스 제어 정책을 적용하는 데 사용되며 HTTPS로 액세스되는 애플리케이션의 중앙 승인 레이어를 설정하여 네트워크 수준 방화벽에 의존하지 않고 애플리케이션 수준 액세스 제어 모델을 사용할 수 있도록 합니다. 자세한 내용은 IAP 개요 및 다음을 참조하세요.
- App Engine용 IAP 사용 설정
- Cloud Run용 IAP 사용 설정
- Compute Engine용 IAP 사용 설정
- GKE용 IAP 사용 설정
- 온프레미스 앱용 IAP 사용 설정
필요한 권한이 있는 서비스 계정 사용
다른 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를 지정해야 합니다. 사용자 인증 정보 페이지에서 확인할 수 있습니다.