我做了什么似乎是一个相当常见的错误,使用google_service_account_iam_binding
使服务帐户做各种事情,因为我应该使用google_project_iam_binding
。我现在已经有了一切工作,但我想了解google_service_account_iam_*
资源实际上是什么?我真的找不到任何文档来解释在什么情况下你会使用它们。
标识中的服务帐户(技术标识和服务标识),同时也是资源。例如,您可以在服务帐户上授予用户或其他服务帐户,以允许他们模拟服务帐户(例如角色:服务帐户用户)。
如果在项目上授予相同的角色,则允许用户或服务帐户模拟项目中的所有服务帐户,这可能过于宽泛。
编辑1
让我们举个例子:您想在Compute Engine实例上授予一个服务帐户一些角色。
您可以在项目级别授予服务帐户(以访问项目中的所有计算引擎实例),或者在资源级别(此特定的)计算引擎实例),使用google_compute_instance_iam。
对于服务帐户也是一样。您可以授予其他服务帐户(或用户帐户)对服务帐户的某些权限。
您可以在项目级别授予另一个服务帐户(或用户帐户)(以访问项目中的所有服务帐户),或者在资源级别授予另一个服务帐户(该特定的服务帐户)。
当您想要充当服务帐户时,例如要模拟它,这很有用。您不希望授予模拟所有服务帐户的权限,而只想授予一个。