IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Kubernetes使用流量管理平台Istio(四) -> 正文阅读

[系统运维]Kubernetes使用流量管理平台Istio(四)

基于Istio的认证

Istio通过客户端和服务器端Policy Enforcement Points(PEPS)建立服务到服务的通信通道,PEPS在istio架构中的实现是envoy。

Peer authentication:

  • 用于服务到服务的认证,一验证进行连接的客户端。

istio提供双向TLS作为传输认证的全栈解决方案,无需更改服务代码就可以启用它。这个解决方案为:

  • 为每个服务提供强大的身份,表示其角色,以实现跨集群和云的互操作性。
  • 保护服务到服务的通信
  • 提供密钥管理系统,以自动进行密钥和证书的生成,分发和轮换

Request authentication

  • 用于最终用户认证,以验证附加到请求的凭据
  • istio使用JSON Web Token(JWT)验证启用请求级认证,并使用自定义认证实现或任务OpenID Connect的认证实现来简化开发人员体验。

Istio认证架构

  • 未设置模式的网格范围的peer认证策略默认使用PERMISSIVE模式。
  • 发送请求的客户端服务负责遵循必要的认证机制
  • RequestAuthentication: 应用程序负责获取jwt凭证并将其附加到请求
  • PeerAuthentication:
    • istio会自动将两个PEPS之间的所有流量升级为双向TLS
    • 如果认证策略禁用了双向TLS模式,则istio将继续在PEPS之间使用纯文本
    • 要覆盖此行为,destination rules显示禁用双向TLS模式
      在这里插入图片描述

双向TLS认证

当一个工作负载使用双向TLS认证向另一个工作负载发送请求时,该请求的处理方式如下:

  • istio将出站流量从客户端重新路由到客户端的本地sidecar envoy
  • 客户端envoy与服务器端envoy开始双向TLS握手。在握手期间,客户端envoy还做了安全命名检查,以验证服务器证书中显示的服务账户是否被授权运行目标服务
  • 客户端envoy和服务器端envoy建立了一个双向的TLS连接,istio将流量从客户端envoy转发到服务器端envoy
  • 授权后,服务器端envoy通过本地TCP连接将流量转发到服务器服务

宽容模式

允许服务同时接受纯文本流量和双向TLS流量,这个功能极大地提升了双向TLS的入门体验。

安全命名

服务器身份被编码在证书里,但服务名称通过服务发现或DNS被检索,安全命名信息将服务器身份映射到服务名称,身份a到服务名称b的映射表示“授权a运行服务b”。

认证策略

认证策略是对服务收到的请求生效的;
要在双向TLS中指定客户端认证策略,需要在DetinationRule中设置TLSSetting.

自定义双向认证

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: db-mtls
spec:
  host: mydbserver.prod.svc.cluster.local
  trafficPolicy:
    tls:
      mode: MUTUAL
      clientCertificate: /etc/certs/clientcert.pem
      privateKey: /etc/certs/private.pem
      caCertificates: /etc/certs/cacerts.pem

单向认证,不去校验客户端

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: tls-foo
spec:
  host: "*.foo.com"
  trafficPolicy:
    tls:
      mode: SIMPLE

使用默认istio双向认证

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: ratings-istio-mtls
spec:
  host: ratings.prod.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL

PeerAuthentication

严格tls认证,不支持明文

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: STRICT

标签app=httpbin不开启认证

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: "overwrite-example"
  namespace: "foo"
spec:
  selector:
    matchLabels:
      app: httpbin
  mtls:
    mode: DISABLE

RequestAuthentication

RequestAuthentication认证策略指定验证JSON Web Token(JWT)所需的值。这些值包括:

  • token在请求中的位置
  • 请求的issuer
  • 公共JSON Web Key Set(JWKS)
    istio会根据request认证策略中的规则检查提供的令牌(如果已提供),并拒绝令牌无效的请求。当请求不带有令牌时,默认情况下将接受它们。
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
  name: "jwt-example"
  namespace: istio-system
spec:
  selector:
    matchLabels:
      istio: ingressgateway
  jwtRules:
  - issuer: "testing@secure.istio.io"
    jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.12/security/tools/jwt/samples/jwks.json"

拒绝没有token的请求

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: "frontend-ingress"
  namespace: istio-system
spec:
  selector:
    matchLabels:
      istio: ingressgateway
  action: DENY
  rules:
  - from:
    - source:
        notRequestPrincipals: ["*"]
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:57:31  更:2022-04-09 19:01:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:21:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码