默认服务帐户无权访问云 SQL,并且对存储只有只读访问权限。 我尝试将云sql管理员和存储管理员权限添加到取消服务帐户,但这似乎不起作用。 我知道可以通过使用具有这些权限的另一个服务帐户并在创建计算实例时使用该帐户来解决。 我只是想知道为什么更新默认计算的权限不起作用?
更新计算引擎默认服务帐户的权限似乎不足以设置您尝试向计算引擎实例授予的正确访问级别,因为如下所述:
当您将实例设置为作为服务账户运行时,服务账户具有的访问级别由授予实例的访问范围和授予服务账户的 IAM 角色的组合决定。
据我了解,您仅向服务账户授予 IAM 角色,因此,为了提供所需的访问级别,您还应该更新计算引擎实例的访问范围。
创建新的计算引擎实例时,在"访问范围"下,默认情况下选择"允许默认访问",如此处所示 新建实例.此默认访问已禁用云 SQL 访问,并将云存储访问设置为只读。
您可以参考此文档,其中介绍了如何更改计算引擎实例的访问范围:
要更改实例的服务账号和访问范围,必须暂时停止该实例。要停止实例,请阅读停止实例的文档。更改服务帐户或访问范围后,请记住重启实例。
停止实例后,您可以将访问范围更改为"为每个 API 设置访问权限"或"允许完全访问所有云 API"。
如果您选择为每个 API 设置访问权限,则必须搜索"Cloud SQL",然后选择"已启用"和"存储"并选择所需的选项(只读、只写、读写、完全(
有关访问作用域的详细信息,请参阅此文档,有关将计算引擎实例作为服务帐户(包括默认服务帐户(运行的详细信息,请参阅此文档。
在Cloud IAM Admin中,您必须通过点击右侧的笔来选择您的Default Service Account
;然后会弹出一个 side.bar,您可以在其中分配以下角色:Cloud SQL Admin
,Cloud SQL Client
,Cloud SQL Editor
,Cloud SQL Viewer
。 默认角色是Editor
。