red*_*888 5 google-cloud-platform gcloud google-iam
从这个开始:
gcloud config set
auth/impersonate_service_account [SA_FULL_EMAIL]
它可以使用与在开发环境中运行的相同的信用来运行,而无需下载任何密钥现在可以了。但我也希望能够在容器中本地运行应用程序。使用 docker/docker-compose/minikube/etc 如何才能模拟服务帐户?
容器需要访问gcloud凭据,并且在应用程序启动之前还需要在会话中设置模拟。这不能在代码中完成 - 应用程序应该正常使用 API,而不必做任何不同的事情。
编辑:当应用程序在开发或生产 GCP 帐户/项目中运行时,它们在具有该特定应用程序的正确范围权限的服务帐户的上下文中运行。开发人员自己的用户帐户对开发环境具有广泛的权限。在本地运行时,使用与应用程序在开发环境中运行相同的服务帐户运行而不是开发人员自己的用户帐户非常有用
实现此目的的正确方法是 Google Cloud 提供的 Secret Manager。
Run Code Online (Sandbox Code Playgroud)def access_secret_version(secret_id): """ Access the payload for the given secret version if one exists. The version can be a version number as a string (e.g. "5") or an alias (e.g. "latest"). """ project_id = PROJECT_ID version_id = 1 # Import the Secret Manager client library. from google.cloud import secretmanager_v1beta1 as secretmanager # Create the Secret Manager client. client = secretmanager.SecretManagerServiceClient() # Build the resource name of the secret version. name = client.secret_version_path(project_id, secret_id, version_id) # Access the secret version. response = client.access_secret_version(name) # Print the secret payload. # # WARNING: Do not print the secret in a production environment - this # snippet is showing how to access the secret material. payload = response.payload.data.decode('UTF-8') # logging.info('Plaintext: {}'.format(payload)) logging.info('Secret accessed for :' + secret_id) return payload
归档时间: |
|
查看次数: |
1063 次 |
最近记录: |