我是GCP的新手,我很想在这里得到一些帮助.
我有一个在AWS/Azure中运行的docker容器化应用程序,但是需要访问gcloud SDK以及"Google云客户端库“。
从GCP之外运行的应用程序设置gcloud身份验证的最佳方法是什么?
在我的Dockerfile中,我有这个(简略)
ENV CLOUDSDK_INSTALL_DIR /usr/local/gcloud/
RUN curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:$CLOUDSDK_INSTALL_DIR/google-cloud-sdk/bin
RUN gcloud components install app-engine-java kubectl
这个容器目前是从Azure应用服务& AWS Fargate提供的。当生成一个新的容器实例时,我们希望它启用gcloud,并且已经附加了一个服务帐户,这样我们的应用程序就可以使用它的部署管理器在GCP上部署东西了。
gcloud auth login
来验证您的帐户。如果这个步骤必须是手动的,那么我们如何能够自动配置容器呢?GOOGLE_APPLICATION_CREDENTIALS
)中。因此,这个文件要么必须存储在坞映像本身中,要么至少必须从外部存储中挂载?在外部存储中存储此服务帐户密钥文件的安全性如何。围绕这一点的最佳实践是什么?
发布于 2021-07-09 06:48:33
在Google平台中有两种主要的身份验证方法:
了解更多关于他们之间差异的这里。
因此,不需要使用gcloud auth login
命令来执行gcloud
命令。
应该使用gcloud auth activate-service-account
相反,以及--key-file=<path-to-key-file>
标志,这将允许您在每次需要调用API时都无需登录到具有项目访问权限的Google帐户中进行身份验证。
此密钥应安全存储,最好在您选择的平台上加密。作为示例,了解如何在GCP 这里中执行这些步骤。
看看这些用于在Microsoft Azure和AWS中存储秘密的有用链接。
另一方面,您可以通过编程方式将服务部署到GCP,或者通过选择的编程语言使用云库,或者使用Terraform是非常直观的,如果您更喜欢通过CLI使用Google。
希望这能帮上忙。
https://stackoverflow.com/questions/68302051
复制