워크플로에서 인증된 요청 수행

인증된 HTTP 요청을 수행하려면 적절한 사용자 인증 정보가 있는 서비스 계정(이메일 주소로 식별됨)에 워크플로를 연결해야 합니다. 워크플로에 Identity and Access Management(IAM) 서비스 계정을 연결하고 리소스에 액세스하는 데 필요한 권한을 부여하는 방법에 대한 자세한 내용은 워크플로에 Google Cloud 리소스에 대한 액세스 권한 부여를 참조하세요.

인증 토큰

기본적으로 HTTP 요청은 보안상의 이유로 ID 또는 액세스 토큰을 포함하지 않습니다. 워크플로 정의에 인증 정보를 명시적으로 추가해야 합니다.

Workflows와 이러한 인증이 필요한 HTTP 대상 간에 인증하기 위해 Workflows는 워크플로에 연결된 서비스 계정의 사용자 인증 정보를 기반으로 승인 헤더의 토큰을 사용하고 HTTPS를 사용하여 토큰을 대상 서비스에 전송합니다. Cloud Functions 또는 Cloud Run에 연결할 때 ID 토큰(OIDC)을 사용합니다. googleapis.com에서 호스팅되는 API에는 액세스 토큰(OAuth 2.0)을 사용합니다.

워크플로 내에서 인증된 요청을 수행하려면 호출 중인 서비스에 따라 다음 중 하나를 수행하세요.

외부 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 Functions 또는 Cloud Run에 요청 수행

Cloud Functions 또는 Cloud Run에 요청을 수행할 때 OIDC를 사용하여 인증합니다.

OIDC를 사용하여 HTTP 요청을 수행하려면 URL을 지정한 후 워크플로 정의의 args 섹션에 auth 섹션을 추가합니다. 이 예시에서는 Cloud Functions 호출을 위해 요청이 전송됩니다.

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_AUDIENCEurl과 동일한 값으로 설정됩니다.

Workflows가 내부 트래픽으로 제한된 인그레스가 있는 Cloud Functions 또는 Cloud Run 서비스를 호출할 수 있습니다. 이 구성을 사용하면 인터넷에서 서비스에 연결할 수 없지만 Workflows에서 연결할 수 있습니다.

자세한 내용은 Cloud Functions 또는 Cloud Run 호출을 참조하세요.

다음 단계