0

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

コンピューティング エンジン サービス アカウントを使用してタスクを作成しているため、このアカウントに適切なアクセス許可を付与しました。

計算エンジン サービス アカウント iam

タスクを作成するときに、適切な OIDC サービス アカウントの電子メールを http 要求に追加します。

'oidc_token': {'service_account_email': <PROJECT_NUMBER>-compute@developer.gserviceaccount.com}}

また、別のエンドポイントで Cloud Tasks HTTP リクエストを確認したところ、認証ベアラー トークンが存在していました。

現時点では、それを機能させる方法についてはまったくわかりません。助けてくれてありがとう

4

1 に答える 1