Cloud Tasks HTTP リクエストを使用して、Cloud IAP で保護された HTTPS ロード バランサーの背後にある Kubernetes エンドポイントに到達しようとしています。
エンドポイントは Gsuite の企業アカウントを使用して正常に動作しますが、クラウド タスクが実行されると、これはクラウド監査 - データ アクセス ログになります (重要な部分のみが表示されます)。
authenticationInfo: {
}
authorizationInfo: [
0: {
permission: "iap.webServiceVersions.accessViaIAP"
resource: "projects/<PROJECT_NUMBER>/iap_web/compute/services/<SERVICE_NUMBER>/versions/bs_0"
resourceAttributes: {
service: "iap.googleapis.com"
type: "iap.googleapis.com/WebServiceVersion"
}
}
]
status: {
code: 7
message: "PERMISSION_DENIED"
}
コンピューティング エンジン サービス アカウントを使用してタスクを作成しているため、このアカウントに適切なアクセス許可を付与しました。
タスクを作成するときに、適切な OIDC サービス アカウントの電子メールを http 要求に追加します。
'oidc_token': {'service_account_email': <PROJECT_NUMBER>-compute@developer.gserviceaccount.com}}
また、別のエンドポイントで Cloud Tasks HTTP リクエストを確認したところ、認証ベアラー トークンが存在していました。
現時点では、それを機能させる方法についてはまったくわかりません。助けてくれてありがとう