我可以将对 Google Cloud SQL 实例的访问限制为特定服务帐户吗?

Can I restrict access to a Google Cloud SQL instance to specific service account?

我在 Google Compute Engine 中有多个环境(开发、暂存和生产),每个环境都有自己的 Google Cloud SQL 实例。实例 connect via Cloud SQL Proxy 并使用绑定到服务帐户的凭据文件进行身份验证。我想为每个环境都有一个单独的服务帐户,这将仅限于访问特定于该环境的 SQL 实例。目前,角色为 Cloud SQL Clientany 服务帐户似乎可以访问同一项目中的 any Cloud SQL 实例。

我找不到任何方法来将对云 SQL 实例的访问限制为特定服务帐户。这可能吗?如果可能的话,怎么办?如果不是,是否有不同的方法来实现防止一个环境中的服务器访问另一个环境中的云 SQL 实例的目标?

注意:此配置可用于 Google 云存储;可以指定一个特定的服务帐户对每个存储桶具有不同的权限,这样开发服务帐户就不会意外访问生产文件。

遗憾的是,Cloud SQL 目前不支持实例级 IAM 策略。

唯一的解决方法是在不同的项目中托管实例。

截至 August 2021 release of Google Cloud SQL

You can use IAM Conditions to define and enforce conditional, attribute-based access control for Google Cloud resources, including Cloud SQL instances

有关如何将用户或服务帐户限制到特定云 SQL 实例的信息,请参阅 documentation for IAM Conditions