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.pem
Copy 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.yaml
Copy 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-waf
Copy 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 2m19s
Copy 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