Workflows を使用して、Identity-Aware Proxy(IAP)が有効になっているエンドポイントを呼び出すことができます。エンドポイントは、オンプレミス、Compute Engine、Google Kubernetes Engine(GKE)、その他のGoogle Cloud エンドポイントにすることができます。
IAP は、アプリケーション レベルで ID を検証し、認可を適用するため、ネットワーク レベルのファイアウォールに依存することなく、アプリケーション レベルのアクセス制御モデルを使用できます。IAP によって保護されているアプリケーションまたはリソースには、適切な Identity Access Management(IAM)ロールを持つプリンシパルのみがプロキシ経由でアクセスできます。
詳細については、IAP の概要と次のガイドをご覧ください。
- App Engine の IAP の有効化
- Cloud Run の IAP の有効化
- Compute Engine の IAP の有効化
- GKE の IAP を有効にする
- オンプレミス アプリの IAP を有効にする
HTTP リクエストを行う
Workflows からのエンドポイントの呼び出しは、HTTP リクエストを介して行われます。最も一般的な HTTP リクエスト メソッドには、呼び出しショートカット(http.get、http.post など)がありますが、call フィールドを http.request に設定し、method フィールドでリクエストのタイプを指定することであらゆるタイプの HTTP リクエストを作成できます。詳細については、HTTP リクエストを行うをご覧ください。
必要な権限を持つサービス アカウントを使用する
他の Google Cloud サービスに対してリクエストを行う場合は、ワークフローに、リクエストされたリソースへのアクセスに必要な権限を持つ 1 つ以上の Identity and Access Management(IAM)ロールが付与されているサービス アカウントに関連付けられている必要があります。既存のワークフローに関連付けられているサービス アカウントについては、ワークフローに関連付けられたサービス アカウントの確認をご覧ください。
サービス アカウントを設定するときに、リクエスト対象の ID とアクセス権を付与するリソースを関連付けます。リクエスト元 ID は、そのリソースのプリンシパルとし、適切なロールを指定します。このロールでは、リソースのコンテキストで ID が持つ権限を定義します。IAP により保護されているアプリケーションまたはリソースには、適正なロールを持つプリンシパルのみがプロキシを介してアクセスできます。
たとえば、認証後、IAP は関連する許可ポリシーを適用して、プリンシパルがリクエストされたリソースにアクセスする権限を持っているかどうかをチェックします。プリンシパルは、リソースが存在する Google Cloud コンソール プロジェクトの IAP で保護されたウェブアプリ ユーザーのロール(roles/iap.httpsResourceAccessor)がある場合、アプリケーションにアクセスする権限があります。
Workflows サービス アカウントをプリンシパルとして追加することで、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" } } } } ]
audience パラメータを使用して、トークンの OIDC オーディエンスを指定できます。
IAP 対応のエンドポイントを呼び出すときは、アプリケーション用に構成した OAuth 2.0 クライアント ID を指定する必要があります。これは、[認証情報] ページで取得できます。
次のステップ
- Google Cloud リソースにアクセスするためのワークフロー権限を付与する
- 変数に保存された HTTP レスポンス データにアクセスする
- Service Directory のサービス レジストリを使用してプライベート エンドポイントを呼び出す