我锁定了我们的 vpc 和集群,以确保无法访问互联网和公共端点,因此其中一件事是连接到公共端点以访问 googles api,因此我们不应该访问公共端点,而应该访问私有端点/限制谷歌API端点
我正在使用此模块创建 dns、专用服务连接的端点,并且端点似乎可以工作,但是,实际的路由/dns 端不起作用
因此,当我使用此设置从 VPC 上的虚拟机运行此命令时,我收到此错误:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://storage-endpoint1.p.googleapis.com/storage/v1/b?project=$(gcloud config get-value project)"
curl: (6) Could not resolve host: storage-endpoint1.p.googleapis.com
要克服这个错误,您可以关注ET数字团队的这篇博客,它清楚地解释了以下2种方法。
出现该错误的原因有多种,例如启用了 IPv6、没有 DNS 名称服务器、语法问题或网站暂时不可用。
方法1:禁用IPv6来修复错误
方法2:添加Google DNS服务器
根据您所关注的github链接,您可以交叉检查以下几点吗:
运行 Terraform 的服务帐户必须具有 dns.managementZones.* 权限。您可以通过将 DNS 管理员 默认角色分配给服务帐户来添加它们。
您最近是否升级过您的开发环境或操作系统?有没有可以更新的防火墙?
解决方法 1: 尝试更新 cURL 并重新启动服务器(通过替换为默认值来更新 /etc/resolv.conf 文件并重新启动系统)。
解决方法 2: Private Service Connect for DNS 遵循命名约定 SERVICE-ENDPOINT.p.googleapis.com。请关注 Deepak Michael 编写的 Codelabs Private Service Connect for Google APIs 示例了解更多信息。