You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建无公网IP的CloudSQL实例触发组织策略限制报错求助

解决CloudSQL实例创建触发constraints/sql.restrictPublicIp组织策略错误的问题

问题背景

我开发了一个创建CloudSQL实例的程序,近期组织启用了禁止CloudSQL实例使用公网IP的策略(对应约束constraints/sql.restrictPublicIp)。代码里已经将Ipv4Enabled设为false,理论上不会分配公网IP,但创建实例时依然报错:

googleapi: Error 400: Invalid request: Organization Policy check failure: the external IP of this instance violates the constraints/sql.restrictPublicIp enforced at the XXX project

核心创建代码如下:

scannerInstance := &sqladmin.DatabaseInstance{
    DatabaseVersion: targetInstance.DatabaseVersion,
    Settings: &sqladmin.Settings{
        IpConfiguration: &sqladmin.IpConfiguration{
            RequireSsl:     true,
            Ipv4Enabled:    false,
            PrivateNetwork: cloudSqlRequest.VpcNetwork,
        },
        Kind: "sql#settings",
        AvailabilityType:           "ZONAL",
        DatabaseFlags:              targetInstance.Settings.DatabaseFlags,
        BackupConfiguration:        &sqladmin.BackupConfiguration{Enabled: false},
        DatabaseReplicationEnabled: false,
        DataDiskSizeGb:             targetInstance.Settings.DataDiskSizeGb,
        Tier:                       targetInstance.Settings.Tier,
        TimeZone:                   targetInstance.Settings.TimeZone,
    },
    Name:         InstanceName,
    InstanceType: "CLOUD_SQL_INSTANCE",
    Project:      cloudSqlRequest.ProjectId,
    Region:       targetInstance.Region,
    RootPassword: rootPassword,
}

_, err = scannerClient.SqlService.Instances.Insert(cloudSqlRequest.ScannerProjectId, scannerInstance).Context(ctx).Do()

解决方案

  • 校验VPC网络路径正确性
    确保cloudSqlRequest.VpcNetwork是完整的VPC网络资源名,格式必须为projects/[你的项目ID]/global/networks/[VPC名称]。如果路径错误,CloudSQL会尝试 fallback 分配公网IP,直接触发策略限制。

  • 显式清空授权网络列表
    即使Ipv4Enabled设为false,如果代码中隐式带入了非空的AuthorizedNetworks(比如从其他配置继承),也会触发策略检查。需要在IpConfiguration里显式设置空列表:

    IpConfiguration: &sqladmin.IpConfiguration{
        RequireSsl:         true,
        Ipv4Enabled:        false,
        PrivateNetwork:     cloudSqlRequest.VpcNetwork,
        AuthorizedNetworks: []sqladmin.AclEntry{}, // 明确设为空
    },
    
  • 确认组织策略的附加要求
    有些组织的constraints/sql.restrictPublicIp策略会要求实例必须关联专用服务访问通道(Private Service Access)。这种情况下,要先给目标VPC创建好专用服务访问连接,再创建CloudSQL实例。

  • 升级API客户端版本
    旧版的Cloud SQL Admin Go客户端可能存在Ipv4Enabled参数的处理bug,导致配置未生效。建议升级到最新版的google.golang.org/api/sqladmin客户端库。

内容的提问来源于stack exchange,提问作者Toussah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:23:12