当前位置: 首页 > news >正文

备考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流量授权实验完成

相关文章:

  • .NET 设计模式—装饰器模式(Decorator Pattern)
  • 【java面试题-Redis篇-2024】
  • ardupilot安装python
  • TSINGSEE青犀边缘计算AI智能分析网关V4客流统计算法的配置步骤及使用
  • 7-36 输入年份和月份
  • 公网环境下如何端口映射?
  • k8s_入门_kubelet安装
  • 全国火情预报卫星遥感应用方案
  • c语言中有哪些格式说明符,在scanf 会在遇到空白字符(空格、制表符或换行符)时停止读取(即scanf会忽略空格)
  • Verilog语法——按位取反“~“和位宽扩展的优先级
  • ADB 操作命令及其详细用法
  • 蓝桥杯小白入门赛第9场第5题 无理数位数查询
  • 跨越网络边界:借助C++编写的下载器程序,轻松获取Amazon商品信息
  • 关于项目中遇到的一些form表单校验
  • 常规的k8s的监控指标
  • 京东滑块验证逆向分析与算法还原
  • 合并主分支到子分支
  • 设计模式总结-外观模式(门面模式)
  • 前端三剑客 —— CSS (第五节)
  • 【Linux】进程初步理解
  • 国际油价重挫!美股道指连跌三月,啥情况?
  • 金砖国家外长会晤主席声明(摘要)
  • 圆桌|如何应对特朗普政府的关税霸凌?一种联合国视角的思考
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 4月人文社科联合书单|天文学家的椅子
  • 一位排球青训教练的20年时光:努力提高女排球员成才率