我们正在使用服务帐户使用 Travis 将我们的应用程序部署到 App Engine。
在每个合并的 PR 上,Travis 从我们的 GitHub 存储库中提取代码,并提取包含 Google Cloud SDK的Docker 映像并执行gcloud app deploy命令。我们使用服务帐户以“项目所有者”角色执行部署。
在我向项目添加了一个自动生成和更新 SSL 证书的新服务以及一个dispatch.yaml文件来路由从 Let's Encrypt 传入的流量以进行域验证之前,一切都正常工作。我需要添加更多权限以允许更新我们用于自定义域的 SSL 证书。我删除了当前的服务帐户,并使用新的私钥创建了一个新帐户。除了以前的权限(所有appengine.*权限)之外,我还创建了一个具有更新和查看 SSL 证书所需权限的新角色。我为新帐户分配了新角色和项目所有者角色。进行这些更改后,执行deploy命令时部署失败并出现以下错误:
Permissions error fetching application [apps/hollowverse-c9cad]. Please make sure you are using the correct project ID and that you have permission to view applications on the project.
Run Code Online (Sandbox Code Playgroud)
我在本地计算机上使用了相同的服务帐户,并将日志记录级别设置为调试。我收到此错误:
DEBUG: HttpError accessing <https://appengine.googleapis.com/v1/apps/hollowverse-c9cad?alt=json>: response: <{'status': '403', 'content-length': '335', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', …Run Code Online (Sandbox Code Playgroud) deployment permissions ssl google-app-engine continuous-integration