【发布时间】:2021-05-05 01:59:22
【问题描述】:
我创建了一个服务帐户mycustomsa@myproject.iam.gserviceaccount.com。
遵循 GCP 最佳实践,我想使用它来运行名为 instance-1(尚未创建)的 GCE VM。
此虚拟机必须能够为 Stackdriver 写入日志和指标。
我确定了:
roles/monitoring.metricWriterroles/logging.logWriter
但是:
-
您是否建议我应该使用任何其他角色? (即实例管理员)
-
我应该如何在项目级别设置 IAM 策略绑定以限制此服务帐户仅用于 GCE 和
instance-1?
【问题讨论】:
-
你想用这个服务帐号和这个虚拟机做什么?您需要访问哪些服务?
-
1/2) 您的意思是要将新服务帐户分配为 VM 的默认服务帐户吗?如果是,则服务帐户只需要虚拟机在运行时(例如登录到 Stackdriver)或有人登录到该实例(通过 SSH)时必须执行的任务的角色。答案需要一个明确的列表,列出 VM 需要做什么以及它的用途。
-
2/2) 您不能将服务帐户限制为仅分配给一个资源(在您的示例中为虚拟机)。您可以使用
Conditional Role Bindings来限制服务帐户可以访问的资源(按名称,例如 Bucket A)。 -
据我所知,如果给定 API 的 IAM 允许,服务帐户可以获得对特定资源(实例)的权限。例如,可以将权限授予一个选定的 BigQuery 表或选定的数据集,而不是给定项目中的所有数据集或表。
-
这里我有一个疑问:我知道我可以将SA直接分配给一个实例,但该实例却是先验存在的。但是,我认为“更好的做法”是在创建此类实例时分配 SA。那是对的吗?您还有其他建议吗?
标签: google-cloud-platform google-compute-engine google-iam