Google Pub / Sub推送消息不适用于启用IAP的应用程序引擎

时间:2019-09-06 07:15:14

标签: google-app-engine authorization google-cloud-pubsub google-cloud-iam google-iap

我正在测试一个非常基本的发布/订阅订阅。我已将推送端点设置为已通过App Engine中的Python Flex服务部署的应用程序。该服务位于启用了身份识别代理的项目中。 IAP配置为允许通过我们的域认证的用户。

我的应用程序未处理任何推送请求。

我关闭了IAP保护,然后看到请求已处理。我将其重新打开,便不再进行处理。

1 个答案:

答案 0 :(得分:2)

注意:此答案使用了BETA命令和功能。

要启用启用了IAP的App Engine访问发布/订阅推送通知,

  • 启用发布/订阅以创建身份令牌
  • 创建一个服务帐户,Pub / Sub将使用该服务帐户向IAP提供身份
  • 使用服务帐户创建推送发布/订阅订阅
  • 将发布/订阅服务帐户的电子邮件地址添加到IAP

允许发布/订阅服务(服务代理)代表服务帐户创建身份令牌:

gcloud projects add-iam-policy-binding PROJECT-ID \
     --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \
     --role=roles/iam.serviceAccountTokenCreator

创建一个服务帐户,Pub / Sub将使用该服务帐户向IAP标识:

gcloud iam service-accounts create pubsub-invoker \
     --display-name "Pub/Sub Invoker Service Account"

使用服务帐户创建推送发布/订阅订阅:

gcloud beta pubsub subscriptions create mySubscription --topic myTopic \
   --push-endpoint=SERVICE-URL/ \
   --push-auth-service-account=pubsub-invoker@PROJECT-ID.iam.gserviceaccount.com

将服务帐户电子邮件地址pubsub-invoker@PROJECT-ID.iam.gserviceaccount.com添加到App Engine的IAP。

我不知道此步骤的CLI命令。在Google Cloud Console中执行此步骤。