App Engine部署:权限错误提取应用程序

我们正在使用服务帐户将我们的应用程序部署到使用Travis的App Engine。App Engine部署:权限错误提取应用程序

在每个合并的PR上,Travis从我们的GitHub存储库中提取代码,并提取包含Google Cloud SDK的Docker image并执行gcloud app deploy命令。我们使用服务帐户以“项目所有者”角色执行部署。

一切工作都很好,直到我向自动生成SSL证书和续订的项目添加了一项新服务以及一个dispatch.yaml文件,以路由来自Let's Encrypt的流量以进行域验证。我需要添加更多权限才能更新我们用于自定义域的SSL证书。我删除了当前的服务帐户,并使用新的私钥创建了一个新帐户。除了以前的权限(所有appengine.*权限),我还创建了一个新角色,具有更新和查看S??SL证书所需的权限。我将新角色项目所有者角色分配给新帐户。这些变化之后,部署执行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>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', 'transfer-encoding': 'chunked', 'vary': 'Origin, X-Origin, Referer', 'server': 'ESF', '-content-encoding': 'gzip', 'cache-control': 'private', 'date': 'Wed, 02 Aug 2017 14:33:50 GMT', 'x-frame-options': 'SAMEORIGIN', 'alt-svc': 'quic=":443"; ma=2592000; v="39,38,37,36,35"', 'content-type': 'application/json; charset=UTF-8'}>, content <{ 
    "error": { 
    "code": 403, 
    "message": "Operation not allowed", 
    "status": "PERMISSION_DENIED", 
    "details": [ 
     { 
     "@type": "type.googleapis.com/google.rpc.ResourceInfo", 
     "resourceType": "gae.api", 
     "description": "The \"appengine.applications.get\" permission is required." 
     } 
    ] 
    } 
} 
> 
DEBUG: (gcloud.beta.app.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>appengine.applications.get来执行部署。看着授予分配给我们使用部署特拉维斯帐户的角色的权限,appengine.applications.get显然不以为然:

screenshot_20170802_174402

我分配的每一个可能的App Engine和项目角色的帐号,但部署还是失败同样的错误。但是,使用为GCP上的每个新项目自动创建的默认服务帐户似乎正在工作。

Muhammad Fawwaz Orabi

回答

I removed the current service account, and created a new>travis2@hollowverse-c9cad.iam.gserviceaccount.com),而不是[email protected]),并且问题现已解决。

App Engine部署:权限错误提取应用程序