默认服务帐户无权访问cloud sql,并且仅具有对存储的只读访问权限。 我尝试向defautl服务帐户添加cloud sql admin和storage admin权限,但这似乎不起作用。 我知道可以通过使用具有这些权限的另一个服务帐户并在创建计算实例时使用该帐户来解决。 我只是想知道为什么默认计算的更新权限不起作用?
答案 0 :(得分:1)
在Cloud IAM Admin中,您必须点击右边的笔来选择Default Service Account
;然后会弹出一个side.bar,您可以在其中分配以下角色:Cloud SQL Admin
,Cloud SQL Client
,Cloud SQL Editor
,Cloud SQL Viewer
。它的默认角色是Editor
。
答案 1 :(得分:0)
更新here中的内容似乎不足以设置您试图提供给Compute Engine实例的正确访问级别,因为New instance中所述:
将实例设置为作为服务帐户运行时,该服务帐户具有的访问级别取决于授予该实例的访问范围和授予该服务帐户的IAM角色。
据我了解,您只是将IAM角色授予服务帐户,因此,为了提供所需的访问级别,还应该更新Compute Engine实例的访问范围。
创建新的Compute Engine实例时,在访问范围下,默认情况下将其选中“允许默认访问”,如您在this documentation所示。此默认访问权限已禁用Cloud SQL访问权限,并将Cloud Storage访问权限设置为只读。
您可以参考Stopping an instance,其中解释了如何更改Compute Engine实例的访问范围:
要更改实例的服务帐户和访问范围,必须暂时停止该实例。要停止实例,请阅读restart the instance的文档。更改服务帐户或访问范围之后,请记住要this doc。
停止实例后,可以将“访问”范围更改为“为每个API设置访问权限”或“允许对所有Cloud API的完全访问权限”。
如果您选择为每个API设置访问权限,则必须搜索“ Cloud SQL”,然后选择“已启用”,还要选择“存储”,然后选择所需的选项(只读,只写,读写,完整)
有关访问范围的更多信息,请参阅this doc,有关将Compute Engine实例作为服务帐户(包括默认服务帐户)运行的更多信息,请参阅removing duplicates from a regular list whilst preserving order。