在 AWS/Azure 中运行但需要访问 GCLOUD 命令的容器化应用程序中,设置 gcloud 身份验证的最佳方法是什么?
In a containerized application that runs in AWS/Azure but needs to access GCLOUD commands, what is the best way to setup gcloud authentication?
我是 GCP 的新手,非常感谢您的帮助...
我有一个 docker 容器化应用程序 运行 在 AWS/Azure 中,但需要访问 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 要求我们 运行 gcloud auth login
对您的帐户进行身份验证。如果必须手动执行此步骤,我们如何才能自动配置我们的容器?
此外,据我了解,对于云客户端库,我们可以将服务帐户密钥 json 文件的路径存储在环境变量 (GOOGLE_APPLICATION_CREDENTIALS
) 中。所以这个文件要么必须存储在 docker 图像本身中,要么必须至少从外部存储安装?
将此服务帐户密钥文件存储在外部存储器中的安全性如何。这方面的最佳做法是什么?
Google云平台主要有两种认证方式:
- 用户帐户:属于人,代表参与您的项目的人,并且他们与 Google 帐户相关联
- 服务帐户:由应用程序或实例使用。
详细了解它们的区别here。
因此,您不需要使用命令gcloud auth login
来执行gcloud
命令。
你应该使用gcloud auth activate-service-account
instead,连同--key-file=<path-to-key-file>
标志,这将使你无需每次需要调用 API.
时,请登录可访问您的项目的 Google 帐户
此密钥应安全存储,最好在您选择的平台中加密。以 GCP here following 步骤为例了解如何执行此操作。
查看这些用于在 Microsoft Azure and AWS 中存储秘密的有用链接。
另一方面,如果您更喜欢通过 CLI 使用 Google Cloud SDK,那么您可以使用 Cloud Libraries with your programming language of choice, or using Terraform 以编程方式将服务部署到 GCP。
希望对您有所帮助。
我是 GCP 的新手,非常感谢您的帮助...
我有一个 docker 容器化应用程序 运行 在 AWS/Azure 中,但需要访问 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 要求我们 运行
gcloud auth login
对您的帐户进行身份验证。如果必须手动执行此步骤,我们如何才能自动配置我们的容器?此外,据我了解,对于云客户端库,我们可以将服务帐户密钥 json 文件的路径存储在环境变量 (
GOOGLE_APPLICATION_CREDENTIALS
) 中。所以这个文件要么必须存储在 docker 图像本身中,要么必须至少从外部存储安装?
将此服务帐户密钥文件存储在外部存储器中的安全性如何。这方面的最佳做法是什么?
Google云平台主要有两种认证方式:
- 用户帐户:属于人,代表参与您的项目的人,并且他们与 Google 帐户相关联
- 服务帐户:由应用程序或实例使用。
详细了解它们的区别here。
因此,您不需要使用命令gcloud auth login
来执行gcloud
命令。
你应该使用gcloud auth activate-service-account
instead,连同--key-file=<path-to-key-file>
标志,这将使你无需每次需要调用 API.
此密钥应安全存储,最好在您选择的平台中加密。以 GCP here following
查看这些用于在 Microsoft Azure and AWS 中存储秘密的有用链接。
另一方面,如果您更喜欢通过 CLI 使用 Google Cloud SDK,那么您可以使用 Cloud Libraries with your programming language of choice, or using Terraform 以编程方式将服务部署到 GCP。
希望对您有所帮助。