我在Google Compute Engine(开发,分期和生产)中都有多个环境,每个环境都有其自己的Google Cloud SQL实例。该实例通过云SQL代理连接,并使用与服务帐户相关的凭据文件进行身份验证。我想为每个环境拥有一个单独的服务帐户,该帐户仅限于访问特定于该环境的SQL实例。目前,看来具有角色Cloud SQL Client
的任何服务帐户可以访问同一项目中的任何 cloud SQL实例。
我找不到将云SQL实例上的访问限制为特定服务帐户的任何方法。有可能吗?如果没有,是否有其他方法可以实现在一个环境中防止服务器在另一个环境中访问云SQL实例的目标?
注意:使用Google Cloud Storage可以使用此配置;可以将特定的服务帐户分配给每个存储桶上有各种权限,以便开发服务帐户无法意外访问生产文件。
不幸的是,云SQL当前不支持实例级别IAM策略。
唯一的解决方法是在不同项目中托管实例。
截至2021年8月发行Google Cloud SQL:
您可以使用IAM条件来定义和执行Google Cloud Resources的条件,基于属性的访问控制,包括Cloud SQL Instances
有关如何将用户或服务帐户限制到特定云SQL实例的信息,请参见IAM条件的文档。