0

我来自 AWS 不知道如何使用 gcp 做到这一点。

在 AWS 中,我可以创建 EC2 实例、Lambda、ECS 等服务角色。我将策略附加到该角色以为其提供所需的访问权限。然后我将角色附加到 EC2 实例、lambda 等。没有使用静态密钥,也没有传递任何秘密。

如何使用 gcp 执行此操作?如何将角色(或者可能是 gcp 服务帐户?)附加到 gce 实例、云功能、gke 部署/服务等?

GCP 具有“服务帐户”以及它称为角色的东西和称为“范围”的东西,但我不清楚如何附加它们并隐式授予对资源的访问权限(不传递秘密/密钥)。

4

2 回答 2

1

对于 VM,您需要先停止它。您可以按照以下步骤操作:

  1. 通过转到https://console.cloud.google.com/iam-admin/serviceaccounts?project= {project-id}创建具有必要权限的服务帐户
  2. 转到虚拟机列表。
  3. 停止虚拟机
  4. 单击否 VM 名称。点击顶部的编辑。
  5. 向下滚动到服务帐户部分。
  6. 选择要与 VM 关联的服务帐户。
于 2018-12-02T19:46:39.480 回答
1

对于 Compute Engine、App Engine 等服务,Google 会自动创建一个默认服务帐户。创建实例或关闭实例时,您可以修改分配给默认服务帐户的权限,甚至更改使用的服务帐户。

默认服务帐户具有预定义的名称[PROJECT_NUMBER]-compute@developer.gserviceaccount.com

链接将提供更多信息。

您可以从实例元数据访问由默认服务帐户创建的凭证。这是 Python 中的一个示例。此示例加载用于访问 Google Cloud Storage 的默认服务帐户凭据:

from google.auth import compute_engine
from google.cloud import storage
credentials = compute_engine.Credentials()
client = storage.Client(credentials=credentials, project=project)

一种常见的策略是使用应用程序默认凭据 (ADC) 来自动定位凭据:

from google.cloud import storage
client = storage.Client()
于 2018-12-02T19:50:53.160 回答