Jos*_*h N 3 google-cloud-platform google-iam
我正在使用下面的 python 方法创建 gcp 实例:
compute.instances().insert(project=project, zone=zonee, body=config).execute()
Run Code Online (Sandbox Code Playgroud)
在配置变量中,我添加了 serviceAccount 部分:
"serviceAccounts": [
{
"email": SA-email,
"scopes": [
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring.write",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/servicecontrol"
"https://www.googleapis.com/auth/trace.append",
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/cloud-platform"
]
}
]
Run Code Online (Sandbox Code Playgroud)
我不确定应该为该 SA 电子邮件分配什么角色。如果我提到访问范围,是否意味着这些角色必须分配给 SA 电子邮件?
当我运行上面的代码时。实例创建失败。
我对 SA、角色和范围感到非常困惑。
我应该检查哪些属性来解决上述问题。
服务帐户是一个特殊的 Google 帐户,属于您的应用程序或虚拟机,而不是单个最终用户。服务帐户就像与应用程序关联的身份,应用程序使用服务帐户在应用程序和 GCP 服务之间进行身份验证,以便用户不直接参与1。
服务帐户非常独特,因为除了作为身份之外,服务帐户还是附加了 IAM 策略的资源,这些策略决定谁可以使用该服务帐户,因此它既是身份又是资源。
例如,如果您向 Bob 授予具有服务帐户用户角色的计算实例管理角色,他可以创建和管理使用服务帐户的计算引擎实例。向该服务帐户授予 IAM 角色后,您可以将该服务帐户分配给一个或多个新的虚拟机实例,现在 Bob 将拥有这些实例的管理员访问权限。总而言之,必须向用户帐户授予服务帐户用户角色,并且必须向服务帐户授予访问 GCP 资源的角色。
服务帐户访问范围是为实例指定权限的传统方法,它们用于替换 IAM 角色。您专门用于默认或基于启用的 API 自动创建的服务帐户。在IAM角色存在之前,访问范围是向服务帐户授予权限的唯一方式,尽管它们现在不是授予权限的主要方式,但在将实例配置为作为服务运行时,您仍然必须设置服务帐户访问范围。帐户。但是,当您使用自定义服务帐户时,您将不会使用访问范围,而是将使用 IAM 角色。因此,当您为计算实例使用默认服务帐户时,它将默认使用范围而不是 IAM 角色。
对于您的配置变量,您可以从完整列表中选择访问范围,或者您可以创建自定义服务帐户并分配 IAM 角色。
归档时间: |
|
查看次数: |
3016 次 |
最近记录: |