使用 Google Cloud 服务帐户是 VSTS 构建

Posted

技术标签:

【中文标题】使用 Google Cloud 服务帐户是 VSTS 构建【英文标题】:Using Google Cloud service account is VSTS build 【发布时间】:2018-01-19 11:34:17 【问题描述】:

我正在 VSTS 上运行我的自动构建,并且部分构建正在针对 GCP 运行集成测试。

我在 GCP 上设置了一个服务帐户,该帐户授予运行测试所需的最低权限并下载了 JSON 密钥。

我正在努力解决如何在 VSTS 构建过程中使用该密钥。我可以添加 GOOGLE_APPLICATION_CREDENTIALS 环境变量,它很容易指向该文件,但我不确定将 JSON 密钥保存在哪里,所以它仍然存在安全还是我错过了另一种可能有效的方法?

我对 GCP 很陌生,因此我们将不胜感激任何帮助或建议。

谢谢, 安迪

【问题讨论】:

【参考方案1】:

您可以将安全信息存储在secret variable(s)中,然后在调用服务之前通过Replace Token task将值替换为JSON文件(将其安装到您的VSTS),在构建结束时,您可以删除安全信息从 JSON 文件或直接删除它。 (如果您使用托管代理,源文件将被自动清除)

    编辑构建定义 选择变量选项卡 单击添加按钮添加新变量(例如名称:key1;值:[安全信息]),单击锁定图标将变量类型更改为机密 编辑 JSON 文件以将安全信息替换为令牌(例如 #key1#,key1 是变量名) 添加替换标记任务并指定目标文件 调用服务的其他任务 添加删除文件任务以删除 JSON 文件或以其他方式清除安全信息。

【讨论】:

以上是关于使用 Google Cloud 服务帐户是 VSTS 构建的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 terraform 使用服务帐户创建 google cloud pubsub pull 订阅?

Google Cloud、Kubernetes 和 Cloud SQL 代理:默认 Compute Engine 服务帐户问题

保存Google Cloud Platform服务帐户凭据的位置

使用 Postman 的服务帐户对 Google Cloud Storage JSON API 进行身份验证

GCM(Google Cloud Messaging)是不是需要 Google 帐户?

Google Cloud Dataflow 服务帐户未传播给工作人员?