プライベート オンプレミス、Compute Engine、GKE、その他のエンドポイントを呼び出す

ワークフローからプライベート オンプレミス、Compute Engine、Google Kubernetes Engine(GKE)、その他の Google Cloud エンドポイントの呼び出しまたは起動は、HTTP リクエストを介して行われます。最も一般的な HTTP リクエスト メソッドには、呼び出しショートカット(http.gethttp.post など)がありますが、call フィールドを http.request に設定し、method フィールドでリクエストのタイプを指定することであらゆるタイプの HTTP リクエストを作成できます。詳細については、HTTP リクエストを行うをご覧ください。

IAP を有効にする

ワークフローがエンドポイントを呼び出せるように、プライベート エンドポイントの Identity-Aware Proxy(IAP)を有効にする必要があります。IAP を使用してアクセス制御ポリシーを適用すると、HTTPS によってアクセスされるアプリケーションの一元的な承認レイヤを確立できるため、ネットワーク レベルのファイアウォールに依存することなく、アプリケーション レベルのアクセス制御モデルを使用できます。詳細については、IAP の概要と次をご覧ください。

必要な権限を持つサービス アカウントを使用する

他の Google Cloud サービス対してリクエストを行う場合は、ワークフローに、リクエストされたリソースへのアクセスに必要な権限を持つ 1 つ以上の Identity and Access Management(IAM)ロールが付与されているサービス アカウントに関連付けられている必要があります。既存のワークフローに関連付けられているサービス アカウントについては、ワークフローに関連付けられたサービス アカウントの確認をご覧ください。

サービス アカウントを設定するときに、リクエスト対象の ID をアクセス権を付与するリソースと関連付けます。リクエスト元 ID は、そのリソースのプリンシパルとし、適切なロールを指定します。このロールでは、リソースのコンテキストで ID が持つ権限を定義します。IAP により保護されているアプリケーションまたはリソースには、適正なロールを持つプリンシパルのみがプロキシを介してアクセスできます。

たとえば、認証後、IAP は関連する許可ポリシーを適用して、プリンシパルが要求されたリソースにアクセスする権限を持っているかどうかをチェックします。プリンシパルは、リソースが存在する Google Cloud コンソールプロジェクトの IAP で保護されたウェブアプリ ユーザーの役割(roles/iap.httpsResourceAccessor)がある場合、アプリケーションにアクセスする権限があります。

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"
            }
          }
        }
      }
    ]
      

トークンの OIDC オーディエンスを指定するには、audience パラメータを使用します。IAP 対応のエンドポイントを呼び出すときは、アプリケーションに構成した OAuth 2.0 クライアント ID を指定する必要があります。これは [認証情報] ページで取得できます。

次のステップ