当前位置:   article > 正文

备考ICA----Istio实验16---HTTP流量授权

备考ICA----Istio实验16---HTTP流量授权

备考ICA----Istio实验16—HTTP流量授权

在这里插入图片描述

1. 环境准备

kubectl apply -f istio/samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f istio/samples/bookinfo/networking/bookinfo-gateway.yaml
  • 1
  • 2

访问测试

curl -I http://192.168.126.220/productpage
  • 1

在这里插入图片描述

2. 开启mtls

mtls/mtls-default.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: default
  namespace: default
spec:
  mtls:
    mode: STRICT
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

部署生效

kubectl apply -f mtls/mtls-default.yaml
  • 1

3. 拒绝请求

default名称空间,拒绝所有请求

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: deny-all
  namespace: default
  • 1
  • 2
  • 3
  • 4
  • 5

配置生效

kubectl apply -f mtls/allow-nothing.yaml
  • 1

访问测试

curl -I http://192.168.126.220/productpage
  • 1

在这里插入图片描述

此时访问被拒绝.返回码403

4. 允许请求

4.1 productpage允许请求

允许以get方式访问productpage
auth/productpage-viewer.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: productpage-viewer
  namespace: default
spec:
  selector:
    matchLabels:
      app: productpage
  action: ALLOW
  rules:
  - to:
    - operation:
        methods: ["GET"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

部署生效

kubectl apply -f auth/productpage-viewer.yaml 
  • 1

访问测试
在这里插入图片描述

4.2 details允许请求

创建details-viewer允许从productpage访问到details

kubectl get pods productpage-v1-675fc69cf-xlg4x -o yaml|grep -i serviceaccount
  • 1

在这里插入图片描述

cluster.local 本地集群
ns/default 命名空间
sa/bookinfo-productpage sa账号

auth/details-viewer.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: details-viewer
  namespace: default
spec:
  selector:
    matchLabels:
      app: details
  action: ALLOW
  rules:
  - from:
    - source:
        principals: ["cluster.local/ns/default/sa/bookinfo-productpage"]
    to:
    - operation:
        methods: ["GET"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

部署生效

kubectl apply  -f auth/details-viewer.yaml
  • 1

浏览器再次访问
在这里插入图片描述

4.3 reviews允许请求

创建reviews-viewer允许从productpage访问到reviews
auth/reviews-viewer.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: reviews-viewer
  namespace: default
spec:
  selector:
    matchLabels:
      app: reviews
  action: ALLOW
  rules:
  - from:
    - source:
        principals: ["cluster.local/ns/default/sa/bookinfo-productpage"]
    to:
    - operation:
        methods: ["GET"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

部署生效

kubectl apply -f auth/reviews-viewer.yaml
  • 1

此时reviews已经可以正常显示,但ratings还是有问题.
在这里插入图片描述

4.4 ratings允许请求

创建ratings-viewer允许从productpage访问到ratings
auth/ratings-viewer.yaml

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: ratings-viewer
  namespace: default
spec:
  selector:
    matchLabels:
      app: ratings
  action: ALLOW
  rules:
  - from:
    - source:
        principals: ["cluster.local/ns/default/sa/bookinfo-reviews"]
    to:
    - operation:
        methods: ["GET"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

部署生效

kubectl apply -f auth/ratings-viewer.yaml
  • 1

再次访问,现在所有页面都能正常展示了
在这里插入图片描述
至此备考ICA----Istio实验16—HTTP流量授权实验完成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/448662
推荐阅读
相关标签
  

闽ICP备14008679号