ワークフローからプライベート オンプレミス、Compute Engine、Google Kubernetes Engine(GKE)、その他の Google Cloud エンドポイントの呼び出しまたは起動は、HTTP リクエストを介して行われます。最も一般的な HTTP リクエスト メソッドには、呼び出しショートカット(http.get、http.post など)がありますが、call
フィールドを http.request
に設定し、method
フィールドでリクエストのタイプを指定することであらゆるタイプの HTTP リクエストを作成できます。詳細については、HTTP リクエストを行うをご覧ください。
IAP を有効にする
ワークフローがエンドポイントを呼び出せるように、プライベート エンドポイントの Identity-Aware Proxy(IAP)を有効にする必要があります。IAP を使用してアクセス制御ポリシーを適用すると、HTTPS によってアクセスされるアプリケーションの一元的な承認レイヤを確立できるため、ネットワーク レベルのファイアウォールに依存することなく、アプリケーション レベルのアクセス制御モデルを使用できます。詳細については、IAP の概要と次をご覧ください。
- App Engine の IAP の有効化
- Cloud Run の IAP の有効化
- Compute Engine の IAP の有効化
- GKE の IAP を有効にする
- オンプレミス アプリの 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 を指定する必要があります。これは [認証情報] ページで取得できます。