5.2. 设置二级入口控制器
需要将二级入口控制器配置为对来自您的标准(和默认)集群入口控制器的外部 WAF 保护的流量进行分段。
先决条件
自定义域公开可信 SAN 或通配符证书,如
CN swig.apps.example.com重要Amazon CloudFront 使用 HTTPS 与集群的辅助入口控制器通信。如 Amazon CloudFront 文档中所述,您无法将自签名证书用于 CloudFront 和您的集群之间的 HTTPS 通信。Amazon CloudFront 会验证证书是否由可信证书颁发机构发布。
流程
从私钥和公共证书创建一个新的 TLS secret,其中
fullchain.pem是您的完整通配符证书链(包括任何中间人),privkey.pem是通配符证书的私钥。Example
oc -n openshift-ingress create secret tls waf-tls --cert=fullchain.pem --key=privkey.pem
$ oc -n openshift-ingress create secret tls waf-tls --cert=fullchain.pem --key=privkey.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新的
IngressController资源:waf-ingress-controller.yaml示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
IngressController:Example
oc apply -f waf-ingress-controller.yaml
$ oc apply -f waf-ingress-controller.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 IngressController 是否已成功创建外部负载均衡器:
oc -n openshift-ingress get service/router-cloudfront-waf
$ oc -n openshift-ingress get service/router-cloudfront-wafCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-cloudfront-waf LoadBalancer 172.30.16.141 a68a838a7f26440bf8647809b61c4bc8-4225395f488830bd.elb.us-east-1.amazonaws.com 80:30606/TCP,443:31065/TCP 2m19s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-cloudfront-waf LoadBalancer 172.30.16.141 a68a838a7f26440bf8647809b61c4bc8-4225395f488830bd.elb.us-east-1.amazonaws.com 80:30606/TCP,443:31065/TCP 2m19sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1. 配置 AWS WAF 复制链接链接已复制到粘贴板!
AWS WAF 服务是一个 Web 应用程序防火墙,可让您监控、保护和控制转发到您受保护的 Web 应用程序资源的 HTTP 和 HTTPS 请求,如 Red Hat OpenShift Service on AWS。
创建 AWS WAF 规则文件以应用到我们的 Web ACL:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将启用 Core (Common)和 SQL AWS Managed Rule Sets。
使用以上指定的规则创建一个 AWS WAF Web ACL:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow