备考ICA----Istio实验17---TCP流量授权

备考ICA----Istio实验17—TCP流量授权

1. 环境准备

1.1 环境部署

kubectl apply -f <(istioctl kube-inject -f istio/samples/tcp-echo/tcp-echo.yaml) -n kim
kubectl apply -f <(istioctl kube-inject -f istio/samples/sleep/sleep.yaml) -n kim

1.2 测试环境

检测环境的9000和9001端口

kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9000" \
    | nc tcp-echo 9000' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'
kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9001" \
    | nc tcp-echo 9001' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'

在这里插入图片描述

2. 允许策略

放行kim命名空间下,tcp-echo的9000和90001访问
auth/tcp-policy-allow-all.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: tcp-policy
  namespace: kim
spec:
  selector:
    matchLabels:
      app: tcp-echo
  action: ALLOW
  rules:
  - to:
    - operation:
        ports: ["9000", "9001"]

访问测试

kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9000" \
    | nc tcp-echo 9000' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'
kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9001" \
    | nc tcp-echo 9001' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'

在这里插入图片描述

3. 仅允许9000端口被访问

auth/tcp-policy-allow-9000-get.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: tcp-policy
  namespace: foo
spec:
  selector:
    matchLabels:
      app: tcp-echo
  action: ALLOW
  rules:
  - to:
    - operation:
        ports: ["9000"]

访问测试

kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9000" \
    | nc tcp-echo 9000' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'
kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9001" \
    | nc tcp-echo 9001' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'

在这里插入图片描述
可以看到之前9000可以被正常访问,9001访问被拒绝

4. 仅禁止9000端口访问

auth/tcp-policy-deny-9000-get.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: tcp-policy
  namespace: kim
spec:
  selector:
    matchLabels:
      app: tcp-echo
  action: DENY
  rules:
  - to:
    - operation:
        ports: ["9000"]

访问测试

kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9000" \
    | nc tcp-echo 9000' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'
kubectl exec deploy/sleep -n kim \
    -- sh -c 'echo "port 9001" \
    | nc tcp-echo 9001' | grep "hello" && echo 'connection succeeded' || echo 'connection rejected'

可以看到我们仅限制了9000端口,当访问9000端口时访问被拒绝,当访问9001端口,请求被响应
在这里插入图片描述
至此备考ICA----Istio实验17—TCP流量授权实验完成

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 11:20:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 11:20:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 11:20:03       87 阅读
  4. Python语言-面向对象

    2024-04-09 11:20:03       96 阅读

热门阅读

  1. intellij idea的快速配置详细使用

    2024-04-09 11:20:03       33 阅读
  2. 前端项目体积优化策略

    2024-04-09 11:20:03       32 阅读
  3. Github 2024-04-08开源项目日报 Top10

    2024-04-09 11:20:03       42 阅读
  4. ubuntu 14.04 配置samba共享服务

    2024-04-09 11:20:03       38 阅读
  5. 计算机网络(一)--网络发展和协议

    2024-04-09 11:20:03       37 阅读
  6. 初识23种设计模式:分类、原理与实际应用

    2024-04-09 11:20:03       35 阅读