防火墙后面的私有 GKE 集群从外部 IP 获取调用
Private GKE cluster behind firewall getting calls from external IP
尽管我们的集群是私有的,并且在 gcp 防火墙后面有一条规则阻止除 IAP IP(和 ICMP)之外的所有入口,但我们正在获取对 k8s 的调用的日志。我错过了什么?
"protoPayload":{
"@type":"type.googleapis.com/google.cloud.audit.AuditLog"
"authenticationInfo":{
"principalEmail":"system:anonymous"
}
"authorizationInfo":["0":{2}]
"methodName":"io.k8s.post"
"requestMetadata":{
"callerIp":"45.*.*.*"
"callerSuppliedUserAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
}
"resourceName":"Autodiscover/Autodiscover.xml"
"serviceName":"k8s.io"
"status":{
"code":"7"
"message":"Forbidden"
}
}
私有集群有一个控制平面私有端点和一个控制平面public端点,您可以选择禁用控制平面public端点,这是最高级别的限制访问。因此,您可以使用 kubectl 等工具使用私有端点内部 IP 地址管理集群,并且任何使用同一子网的 VM 集群也可以访问私有 endpoint.However,重要的是要说,即使您禁用public 端点访问,Google 可以使用控制平面 public 端点进行集群管理,例如定期维护和自动控制平面升级。
如果您需要更多关于如何创建私有集群并禁用public端点的信息,您可以参考以下public document.
您可以使用以下命令查看您的 public 端点:
gcloud container clusters describe YOUR_CLUSTER_NAME
此外,您可以使用以下命令验证集群的节点是否没有外部 IP 地址:
kubectl get nodes --output wide
尽管我们的集群是私有的,并且在 gcp 防火墙后面有一条规则阻止除 IAP IP(和 ICMP)之外的所有入口,但我们正在获取对 k8s 的调用的日志。我错过了什么?
"protoPayload":{
"@type":"type.googleapis.com/google.cloud.audit.AuditLog"
"authenticationInfo":{
"principalEmail":"system:anonymous"
}
"authorizationInfo":["0":{2}]
"methodName":"io.k8s.post"
"requestMetadata":{
"callerIp":"45.*.*.*"
"callerSuppliedUserAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
}
"resourceName":"Autodiscover/Autodiscover.xml"
"serviceName":"k8s.io"
"status":{
"code":"7"
"message":"Forbidden"
}
}
私有集群有一个控制平面私有端点和一个控制平面public端点,您可以选择禁用控制平面public端点,这是最高级别的限制访问。因此,您可以使用 kubectl 等工具使用私有端点内部 IP 地址管理集群,并且任何使用同一子网的 VM 集群也可以访问私有 endpoint.However,重要的是要说,即使您禁用public 端点访问,Google 可以使用控制平面 public 端点进行集群管理,例如定期维护和自动控制平面升级。 如果您需要更多关于如何创建私有集群并禁用public端点的信息,您可以参考以下public document.
您可以使用以下命令查看您的 public 端点:
gcloud container clusters describe YOUR_CLUSTER_NAME
此外,您可以使用以下命令验证集群的节点是否没有外部 IP 地址:
kubectl get nodes --output wide