本页面介绍如何为 VPN 隧道配置入站和出站流量。
按项目控制 VPN 隧道的出站和入站流量。
- 默认情况下,所有项目都会拒绝来自 VPN 隧道的入站流量。
- 默认情况下,启用了数据渗漏防护的项目会拒绝流向 VPN 隧道的出站流量。
按照以下说明更改项目的默认 VPN 流量出站和入站规则。
准备工作
如需为 VPN 隧道配置入站和出站流量,您必须具备以下条件:
- 现有 VPN 隧道。如需了解详情,请参阅创建 VPN 隧道。
必要的身份和访问权限角色:
- VPN 管理员:拥有对所有 VPN 相关资源的读写权限。请让您的组织 IAM 管理员向您授予 VPN 管理员 (
vpn-admin
) 角色。 - VPN Viewer:拥有对所有 VPN 相关资源的读取权限。请让您的组织 IAM 管理员向您授予 VPN Viewer (
vpn-viewer
) 角色。 - Project NetworkPolicy Admin:管理项目命名空间中的项目网络政策。请让您的组织 IAM 管理员向您授予 Project NetworkPolicy Admin (
project-networkpolicy-admin
) 角色。 - 如需了解详情,请参阅角色定义。
- VPN 管理员:拥有对所有 VPN 相关资源的读写权限。请让您的组织 IAM 管理员向您授予 VPN 管理员 (
配置入站流量
默认情况下,所有项目都会拒绝来自 VPN 隧道的入站流量。如需使项目允许来自 VPN 隧道的流量,请使用 ProjectNetworkPolicy
对象,该对象以通过 VPN 隧道上使用的边界网关协议 (BGP) 会话接收的路由为目标:
如需启用项目以允许来自 VPN 隧道的流量,请按以下步骤操作:
从
VPNBGPPeer
状态检索所有已接收的路由:kubectl --kubeconfig MANAGEMENT_API_SERVER get -n platform vpnbgppeer VPN_BGP_PEER_NAME -ojson | jq '.status.received'
替换以下内容:
MANAGEMENT_API_SERVER
:区域 API 服务器的 kubeconfig 路径。如果您尚未为目标地区中的 API 服务器生成 kubeconfig 文件,请参阅登录了解详情。VPN_BGP_PEER_NAME
:您的 VPN BGP 会话的名称。
如需了解详情,请参阅创建 VPN BGP 会话。
输出类似于以下示例:
[ { "prefix": "192.168.100.0/24" }, { "prefix": "192.168.101.0/24" } ]
将
VPNBGPPeer
状态中的所有接收到的路由添加到项目的命名空间中的ProjectNetworkPolicy
对象:kubectl --kubeconfig GLOBAL_API_SERVER create -n PROJECT_NAME -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: name: allow-ingress-vpn-traffic spec: policyType: Ingress subject: subjectType: UserWorkload ingress: - from: - ipBlocks: - cidr: 192.168.100.0/24 - cidr: 192.168.101.0/24 EOF
替换以下内容:
GLOBAL_API_SERVER
:全局 API 服务器的 kubeconfig 路径。如需了解详情,请参阅全球 API 服务器资源。PROJECT_NAME
:您的 GDC 项目的名称。
配置出站流量
默认情况下,启用了数据渗漏防护的项目会拒绝向 VPN 发送流量。
您可以为项目停用数据渗漏防护功能,从而允许项目将流量发送到 VPN 隧道。如需了解详情,请参阅防止数据渗漏。