博客
关于我
Istio安全-认证(实操二)
阅读量:421 次
发布时间:2019-03-06

本文共 2348 字,大约阅读时间需要 7 分钟。

Istio安全认证指南

安全认证策略

配置概述

本节将介绍如何启用、配置和使用Istio的安全认证策略,深入了解其底层概念。首先,我们需要理解Istio的核心组件及其安全机制,然后通过示例配置来实现需求。

安全认证类型

Istio 提供了两种主要的安全认证类型:

  • 对等认证(Mutual TLS):基于TLS证书的双向认证,适用于服务间通信。
  • 终端用户认证(JWT认证):基于JSON Web Token的认证,适用于用户身份验证。
  • 配置步骤

    1. 安装Istio

    首先,确保Istio已正确安装并配置。以下命令创建命名空间和部署示例:

    kubectl create ns fookubectl apply -f $(istioctl kube-inject -f samples/httpbin/httpbin.yaml) -n fookubectl apply -f $(istioctl kube-inject -f samples/sleep/sleep.yaml) -n foo

    2. 启用对等认证

    默认情况下,Istio会自动配置客户端代理发送mutual TLS流量到目标负载。为了确保所有通信使用加密传输,需在网格范围内设置严格的对等认证策略:

    kubectl apply -n istio-system -f - <

    3. 验证配置

    通过执行以下命令验证配置是否正确:

    for from in "foo" "bar" "legacy"; do  for to in "foo" "bar" "legacy"; do    kubectl exec $(kubectl get pod -l app=sleep -n ${from} -o jsonpath={.items..metadata.name}) -c sleep -n ${from} \      -- curl "http://httpbin.${to}:8000/ip" -s -o /dev/null -w "sleep.${from} to httpbin.${to}: %{http_code}\n"  donedone

    4. 卸载配置

    若需卸载对等认证策略,可执行以下命令:

    kubectl delete peerauthentication -n istio-system default

    终端用户认证

    配置JWT认证

    为了实现终端用户认证,需配置JWT策略并暴露服务。以下步骤说明:

  • 部署Ingress Gateway:
  • kubectl apply -n istio-system -f samples/addons/ingressgateway/ingressgateway.yaml
    1. 获取Ingress信息:
    2. INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}')
      1. 应用JWT认证策略:
      2. kubectl apply -n istio-system -f - <

        验证JWT认证

      3. 使用有效token:
      4. TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.7/security/tools/jwt/samples/demo.jwt -s)curl --header "Authorization: Bearer $TOKEN" "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 200
        1. 使用无效token:
        2. curl --header "Authorization: Bearer deadbeef" "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 401

          验证路径授权

          为确保每个路径都需要有效token,可以修改策略:

          kubectl apply -n istio-system -f - <

          验证结果:

          curl "$INGRESS_HOST:$INGRESS_PORT/headers" -s -o /dev/null -w "%{http_code}\n" 403curl "$INGRESS_HOST:$INGRESS_PORT/ip" -s -o /dev/null -w "%{http_code}\n" 200

          卸载步骤

          移除JWT策略

          kubectl -n istio-system delete requestauthentication jwt-examplekubectl -n istio-system delete authorizationpolicy frontend-ingress

          移除命名空间

          kubectl delete ns foo bar legacy

          总结

          本章详细介绍了Istio的安全认证机制,包括对等认证和终端用户认证。通过合理配置,可以实现服务间的安全通信和用户身份验证。Istio的灵活配置使其适用于多种场景,确保系统安全性和可靠性。

    转载地址:http://ulakz.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 基于OpenCV和深度学习预测年龄和性别
    查看>>
    OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch语义分割实现洪水识别(数据集 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
    查看>>
    OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
    查看>>
    OpenCV与AI深度学习 | 基于深度学习的轮胎缺陷检测系统
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用YoloV8实例分割识别猪的姿态(含数据集)
    查看>>
    Opencv中KNN背景分割器
    查看>>
    OpenCV中基于已知相机方向的透视变形
    查看>>
    opencv之namedWindow,imshow出现两个窗口
    查看>>
    opencv之模糊处理
    查看>>
    opencv保存图片路径包含中文乱码解决方案
    查看>>
    opencv图像分割2-GMM
    查看>>
    opencv图像分割3-分水岭方法
    查看>>
    OpenCV学习(13) 细化算法(1)(转)
    查看>>
    OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
    查看>>
    OpenCV探索
    查看>>
    opencv笔记(1):图像缩放
    查看>>