我来自AWS,不知道如何使用gcp。
在AWS中,我可以创建EC2实例、Lambda、ECS等服务角色。我为该角色附加了策略,以便为其提供所需的访问权限。然后,我将角色附加到EC2实例、lambda等。没有使用静态密钥,也没有传递机密。
如何使用gcp?如何将角色(或者可能是gcp服务帐户?(附加到gce实例、云功能、gke部署/服务等?
GCP有"服务帐户",它称之为角色,也有称之为"范围"的东西,但我不清楚如何附加它们,并隐式授予对资源的访问权限(而不传递机密/密钥(。
对于计算引擎、应用程序引擎等服务,谷歌会自动创建一个默认服务帐户。创建实例或关闭实例时,可以修改分配给默认服务帐户的权限,甚至可以更改使用的服务帐户。
默认服务帐户具有预定义名称[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()
对于虚拟机,您需要首先停止它。您可以按照以下步骤操作:
- 通过转到https://console.cloud.google.com/iam-admin/serviceaccounts?project={项目id}
- 转到虚拟机列表
- 停止VM
- 单击"否"VM名称。单击顶部的编辑
- 向下滚动至服务帐户部分
- 选择要关联到VM的服务帐户