ACS (Kubernetes)のホワイトリスティングについて聞かれたので、ちょっと試してみた。
Nginx ingress controller だとできそうだけど、L4 LoadBalancer でもできるという記述があった。
*Status of Kubernetes on Azure
* Source IP whitelisting
結論からいうと、loadBalancerSourceRanges が使える
kubectl run nginx --image nginx
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl edit svc/nginx
あたりで編集。{YOUR_IP_ADDRESS}に自分のIPを入れる。あなたが現在インターネットに接続しているグローバルIPアドで調べると良い。
spec:
clusterIP: 10.0.113.195
externalTrafficPolicy: Cluster
ports:
- nodePort: 31539
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
sessionAffinity: None
type: LoadBalancer
loadBalancerSourceRanges:
- {YOUR_IP_ADDRESS}/32
自分のブラウザからはアクセスできるが、携帯からやると、ちゃんとブロックされる。
ちなみに、こうなると、Express Routeからきた時は、どうなるだろうとか考えてしまう。
またそれは次回以降。