ワークフローからの認証済みリクエスト

Google Cloud サービスに対して認証されたリクエストを行うには、リクエストされたリソースにアクセスするために必要な権限を含む Identity and Access Management(IAM)ロールが付与されているサービス アカウントにワークフローを関連付ける必要があります。詳細については、Google Cloud リソースにアクセスする権限をワークフローに付与するをご覧ください。

デフォルトでは、セキュリティ上の理由から、HTTP リクエストには ID やアクセス トークンが含まれていません。Workflows コネクタは、ワークフローのサービス アカウントを使用して必要な認証を自動的に行います。

ワークフロー内から認証済みリクエストを行うには、呼び出すサービスに応じて、次のいずれかを行います。

外部 API に認証済みリクエストを行う

サードパーティの API を統合する場合は、Authorization リクエスト ヘッダーを含め、そこに認証の実施に必要な認証情報を加えます。たとえば、サービスに対するリクエストで、ID トークンを Authorization: Bearer ID_TOKEN ヘッダーに含めます。詳細については、API プロバイダのドキュメントをご覧ください。

Google Cloud APIs に認証済みリクエストを行う

ワークフローのサービス アカウントでは、そのワークフローで任意の 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 と同じ値に設定されています。

詳細については、Cloud Functions または Cloud Run を呼び出すをご覧ください。

次のステップ