인증된 HTTP 요청을 수행하려면 적절한 사용자 인증 정보가 있는 서비스 계정(이메일 주소로 식별됨)에 워크플로를 연결해야 합니다. 워크플로에 Identity and Access Management(IAM) 서비스 계정을 연결하고 리소스에 액세스하는 데 필요한 권한을 부여하는 방법에 대한 자세한 내용은 워크플로에 Google Cloud 리소스에 대한 액세스 권한 부여를 참조하세요.
인증 토큰
기본적으로 HTTP 요청은 보안상의 이유로 ID 또는 액세스 토큰을 포함하지 않습니다. 워크플로 정의에 인증 정보를 명시적으로 추가해야 합니다.
Workflows와 이러한 인증이 필요한 HTTP 대상 간에 인증하기 위해 Workflows는 워크플로에 연결된 서비스 계정의 사용자 인증 정보를 기반으로 승인 헤더의 토큰을 사용하고 HTTPS를 사용하여 토큰을 대상 서비스에 전송합니다. Cloud Run 함수나 Cloud Run과 연결할 때 ID 토큰(OIDC)을 사용합니다. googleapis.com
에서 호스팅되는 API에는 액세스 토큰(OAuth 2.0)을 사용합니다.
워크플로 내에서 인증된 요청을 수행하려면 호출 중인 서비스에 따라 다음 중 하나를 수행하세요.
외부 API:
Authorization
요청 헤더를 사용하여 서드 파티 API로 인증합니다. 이 문서에서 외부 API에 인증된 요청 수행을 참조하세요.Google Cloud API — 가능한 경우 워크플로의 서비스 계정을 사용하여 필요한 인증을 자동으로 제공하는 Workflows 커넥터를 사용합니다. 커넥터를 사용할 수 없는 경우 OAuth 2.0과 함께 HTTP 요청을 사용하여 다른 Google Cloud API와 연결합니다. 호스트 이름이
.googleapis.com
으로 끝나는 API에는 이 인증 방법이 허용됩니다. 이 문서에서 Google Cloud API에 인증된 요청 수행을 참조하세요.Cloud Run 함수 또는 Cloud Run: OIDC를 사용하여 Cloud Run 또는 Cloud Run 함수와 연결합니다. 이 문서의 Cloud Run 또는 Cloud Run 함수에 요청 전송을 참조하세요.
비공개 온프레미스, Compute Engine, Google Kubernetes Engine(GKE) 또는 기타 Google Cloud Endpoints - OIDC와 함께 IAP(Identity-Aware Proxy)를 사용하여 엔드포인트에 액세스 제어 정책을 적용합니다. 자세한 내용은 비공개 온프렘, Compute Engine, GKE 또는 기타 엔드포인트 호출을 참조하고 사용자 또는 서비스 계정에서 IAP 보안 리소스에 인증하는 방법을 알아보세요.
외부 API에 인증된 요청 실행
타사 API를 통합하는 경우 인증을 수행하는 데 필요한 사용자 인증 정보가 있는 Authorization
요청 헤더를 포함합니다. 예를 들어 서비스에 대한 요청의 Authorization: Bearer ID_TOKEN
헤더에 ID 토큰을 포함합니다. 자세한 내용은 API 제공업체의 문서를 참조하세요.
Google Cloud API에 인증된 요청 수행
워크플로의 서비스 계정은 워크플로가 Google Cloud API 인증에 사용할 수 있는 OAuth 2.0 토큰을 생성할 수 있습니다. 이 인증 방법을 사용할 때 워크플로는 연결된 서비스 계정으로 인증됩니다. OAuth 2.0 프로토콜을 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후, 워크플로 정의의 args
섹션에 auth
섹션을 추가합니다. 이 예시에서는 VM을 중지하기 위해 Compute Engine API에 요청이 전송됩니다.
YAML
- step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE
JSON
[ { "step_A": { "call": "http.post", "args": { "url": "https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop", "auth": { "type": "OAuth2", "scopes": "OAUTH_SCOPE" } } } } ]
scopes
키는 선택사항이지만 토큰의 OAuth 2.0 범위를 지정하는 데 사용될 수 있습니다. OAUTH_SCOPE
를 문자열 또는 문자열 목록으로 바꿉니다. 공백 및 쉼표로 구분된 문자열도 지원됩니다. 기본적으로 값은 https://www.googleapis.com/auth/cloud-platform
으로 설정되어 있습니다.
Cloud Run 함수나 Cloud Run에 요청 전송
요청을 Cloud Run 함수나 Cloud Run에 보낼 때 OIDC를 사용하여 인증합니다.
OIDC를 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후 워크플로 정의의 args
섹션에 auth
섹션을 추가합니다. 이 예시에서는 Cloud Run 함수가 호출되도록 요청이 전송됩니다.
YAML
- step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://us-central1-project.cloudfunctions.net/functionA", "query": { "firstNumber": 4, "secondNumber": 6, "operation": "sum" }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
audience
키는 선택사항이지만 토큰의 OIDC 대상을 지정하는 데 사용할 수 있습니다. 기본적으로 OIDC_AUDIENCE
는 url
과 동일한 값으로 설정됩니다.
Workflows에서 내부 트래픽으로 제한된 인그레스가 있는 Cloud Run 함수나 Cloud Run 서비스를 호출할 수 있습니다. 이 구성을 사용하면 인터넷에서 서비스에 연결할 수 없지만 Workflows에서 연결할 수 있습니다.
자세한 내용은 Cloud Run 함수 또는 Cloud Run 호출을 참조하세요.