活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      应用服务网格

      应用服务网格

        • 产品动态与公告
        • 产品简介
        • 产品定义
        • 产品优势
        • 应用场景
        • 产品规格
        • 名词解释
        • 使用限制
        • 购买指南
        • 计费说明
        • 订购与退订
        • 欠费与续费说明
        • 快速入门
        • 入门概述
        • 创建应用服务网格实例
        • 部署bookinfo应用到CSM实例
        • 通过云原生网关访问bookinfo应用
        • 使用istio资源实现版本流量路由
        • 用户指南
        • 实例权限及标签管理
        • 网格管理
        • 网格列表
        • 全局Service管理
        • 全局命名空间
        • 网格状态
        • 网格诊断
        • 升级管理
        • 金丝雀升级
        • 访问网格CRD资源
        • sidecar管理
        • 安装Sidecar代理
        • 网格CNI插件
        • 集群与工作负载
        • 服务条目管理
        • 容器集群管理
        • Kubernetes服务管理
        • 服务列表
        • 服务基础信息
        • 服务版本管理
        • 服务访问方式
        • 服务流量管理
        • 流量管理中心
        • 虚拟服务
        • 目标规则
        • 本地限流
        • 流量标签
        • 全链路灰度
        • 概述
        • 全链路灰度实现原理
        • 泳道组及泳道管理
        • 全链路灰度功能体验
        • 路由级熔断
        • 全局限流
        • 高可用能力构建
        • 多协议治理
        • gRPC协议治理
        • Dubbo协议治理
        • 扩展中心
        • 服务网格数据面扩展概述
        • EnvoyFilter CRD说明
        • EnvoyFilterTemplate和EnvoyFilterTemplateBinding CRD说明
        • 使用自定义EnvoyFilter
        • 使用插件市场扩展网格能力
        • 内置插件说明
        • 调整代理请求和响应缓存大小插件
        • 调整HTTP请求头尺寸限制插件
        • 设置允许升级的协议连接插件
        • 设置http2的初始流量窗口大小插件
        • 解析JWT Payload的字段到请求头插件
        • 自定义错误页面插件
        • 自定义x-request-id操作插件
        • 直接响应插件
        • 增加HTTP响应头插件
        • 在访问日志中打印HTTP body插件
        • 在响应头中增加请求头信息插件
        • 保留请求与响应头部大小写插件
        • 网格安全中心
        • 网格安全概述
        • 工作负载身份
        • 对等身份认证
        • 请求身份认证
        • 授权策略
        • 自定义授权服务
        • CSM安全策略
        • CSM安全策略概述
        • OIDC单点登录
        • JWT认证策略
        • 黑白名单策略
        • 自定义授权服务策略
        • 授权控制示例
        • 自定义授权服务
        • 使用JWT认证授权
        • 使用OPA策略引擎实现访问控制
        • OPA策略
        • API审计
        • 可观测管理中心
        • 日志中心
        • 服务监控
        • 链路追踪
        • 网格优化中心
        • Sidecar资源
        • 自适应配置分发
        • 功能介绍及使用
        • 自适应配置分发优化效果
        • 服务发现范围
        • 数据面ebpf加速
        • 网关
        • 入口网关
        • 出口网关
        • 网关规则
        • 证书管理
        • API参考
        • API使用说明
        • 最佳实践
        • 应用服务网格配置建议
        • 使用云原生网关和应用服务网格实现全链路灰度发布
        • 应用服务网格对接Nacos注册中心
        • 使用SDK操作istio资源
        • 常见问题
        • 计费类
        • 操作类
        • 应用服务网格CSM控制面部署在哪里?
        • 应用服务网格CSM开通失败,提示xx资源已存在
        • 如何删除云容器引擎集群上处于Terminating状态的命名空间?
        • 为什么加入网格的pod停止时会有被调或者主调失败的情况?
        • 为什么目标规则配置不生效?
        • 多集群的命名空间是什么关系?
        • 服务网格对于Service的定义是否有要求?
        • sidecar内存持续升高有什么解决办法?
        • 为什么开通服务网格之后,网格控制面组件启动失败?
        • 为什么注入了sidecar,但是流量拦截没生效?
        • 如何开启服务网格IPv6功能?
        • 相关协议
        • 天翼云应用服务网格服务协议
        • 天翼云应用服务网格服务等级协议
          无相关产品

          本页目录

          帮助中心应用服务网格用户指南网格安全中心授权控制示例自定义授权服务
          自定义授权服务
          更新时间 2024-09-09 19:43:34
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-09-09 19:43:34
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本章节介绍自定义授权服务

          前提条件

          1. 已开通云容器引擎,至少有一个云容器引擎集群实例。产品入口:云容器引擎。
          2. 开通天翼云服务网格实例。

          操作步骤

          创建测试命名空间

          kubectl create ns foo
          
          打开sidecar自动注入
          
          kubectl label ns foo istio-injection=enabled
          

          部署sleep和httpbin应用

          apiVersion: v1
          kind: ServiceAccount
          metadata:
            name: sleep
          ---
          apiVersion: v1
          kind: Service
          metadata:
            name: sleep
            labels:
              app: sleep
              service: sleep
          spec:
            ports:
            - port: 80
              name: http
            selector:
              app: sleep
          ---
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: sleep
          spec:
            replicas: 1
            selector:
              matchLabels:
                app: sleep
            template:
              metadata:
                labels:
                  app: sleep
              spec:
                terminationGracePeriodSeconds: 0
                serviceAccountName: sleep
                containers:
                - name: sleep
                  image: registry-vpc-crs-huadong1.cnsp-internal.ctyun.cn/library/curl
                  command: ["/bin/sleep", "infinity"]
                  imagePullPolicy: IfNotPresent
                  volumeMounts:
                  - mountPath: /etc/sleep/tls
                    name: secret-volume
                volumes:
                - name: secret-volume
                  secret:
                    secretName: sleep-secret
                    optional: true
          ---
          
          

          部署外部授权服务

          apiVersion: v1
          kind: Service
          metadata:
            name: ext-authz
            labels:
              app: ext-authz
          spec:
            ports:
            - name: http
              port: 8000
              targetPort: 8000
            - name: grpc
              port: 9000
              targetPort: 9000
            selector:
              app: ext-authz
          ---
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: ext-authz
          spec:
            replicas: 1
            selector:
              matchLabels:
                app: ext-authz
            template:
              metadata:
                labels:
                  app: ext-authz
              spec:
                containers:
                - image: registry-vpc-crs-huadong1.cnsp-internal.ctyun.cn/library/ext-authz:1.16.2
                  imagePullPolicy: IfNotPresent
                  name: ext-authz
                  ports:
                  - containerPort: 8000
                  - containerPort: 9000
          ---
          apiVersion: v1
          kind: ServiceAccount
          metadata:
            name: httpbin
          ---
          apiVersion: v1
          kind: Service
          metadata:
            name: httpbin
            labels:
              app: httpbin
              service: httpbin
          spec:
            ports:
            - name: http
              port: 8000
              targetPort: 80
            selector:
              app: httpbin
          ---
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: httpbin
          spec:
            replicas: 1
            selector:
              matchLabels:
                app: httpbin
                version: v1
            template:
              metadata:
                labels:
                  app: httpbin
                  version: v1
              spec:
                serviceAccountName: httpbin
                containers:
                - image: registry-vpc-crs-huadong1.cnsp-internal.ctyun.cn/library/httpbin
                  imagePullPolicy: IfNotPresent
                  name: httpbin
                  ports:
                  - containerPort: 80
          
          

          部署完成后,在foo命名空间下看到3个服务

          23.jpg

          不使用授权策略的情况下,验证从sleep应用访问httpbin应用没有被拦截(返回状态码200):

          kubectl exec "$(kubectl get pod -l
          app=sleep -n foo -o jsonpath={.items..metadata.name})" -c sleep -n foo --
          curl http://httpbin.foo:8000/ip -s -o /dev/null -w "%{http_code}\n"
          
          200
          

          查看外部授权服务已经启动,HTTP和gRPC授权服务分别监听8000和9000端口:

          kubectl logs "$(kubectl get pod -l
          app=ext-authz -n foo -o jsonpath={.items..metadata.name})" -n foo -c
          ext-authz
          
          2023/08/14 11:26:54 Starting HTTP server at
          [::]:8000
          
          2023/08/14 11:26:54 Starting gRPC server at
          [::]:9000
          

          添加外部授权服务

          将上面的HTTP和gRPC服务添加到服务网格的外部授权服务内。

          定义授权策略&验证访问

          定义如下授权策略,对httpbin应用的/headers路径的请求将被转发到第三方授权服务进行验证:

          apiVersion: security.istio.io/v1beta1
          kind: AuthorizationPolicy
          metadata:
            name: ext-authz
          spec:
            selector:
              matchLabels:
                app: httpbin
            action: CUSTOM
            provider:
              # The provider name must match the extension provider defined in the mesh config.
              # You can also replace this with sample-ext-authz-http to test the other external authorizer definition.
              name: sample-ext-authz-grpc
            rules:
            # The rules specify when to trigger the external authorizer.
            - to:
              - operation:
                  paths: ["/headers"]
          
          

          从sleep应用请求httpbin的/headers路径,由于请求头带了"x-ext-authz:deny",请求被拦截:

          kubectl exec "$(kubectl get pod -l app=sleep -n foo -o jsonpath={.items..metadata.name})" -c sleep -n foo -- curl "http://httpbin.foo:8000/headers" -H "x-ext-authz: deny" -s
          denied by ext_authz for not found header `x-ext-authz: allow` in the request
          
          

          修改请求,带上"x-ext-authz: allow"头部,请求放行:

          kubectl exec "$(kubectl get pod -l app=sleep -n foo -o jsonpath={.items..metadata.name})" -c sleep -n foo -- curl "http://httpbin.foo:8000/headers" -H "x-ext-authz: allow" -s
          
          {
            "headers": {
              "Accept": "*/*", 
              "Host": "httpbin.foo:8000", 
              "User-Agent": "curl/8.2.1", 
              "X-B3-Parentspanid": "eb42a8165099e7db", 
              "X-B3-Sampled": "1", 
              "X-B3-Spanid": "cd6540ba1cfd9e8c", 
              "X-B3-Traceid": "e7e15cc10dc66630eb42a8165099e7db", 
              "X-Envoy-Attempt-Count": "1", 
              "X-Ext-Authz": "allow", 
              "X-Ext-Authz-Additional-Header-Override": "grpc-additional-header-override-value", 
              "X-Ext-Authz-Check-Received": "source:{address:{socket_address:{address:\"10.1.0.25\"  port_value:37654}}  principal:\"spiffe://cluster.local/ns/foo/sa/sleep\"}  destination:{address:{socket_address:{address:\"10.1.0.24\"  port_value:80}}  principal:\"spiffe://cluster.local/ns/foo/sa/httpbin\"}  request:{time:{seconds:1692015383  nanos:990298000}  http:{id:\"7462237371770661564\"  method:\"GET\"  headers:{key:\":authority\"  value:\"httpbin.foo:8000\"}  headers:{key:\":method\"  value:\"GET\"}  headers:{key:\":path\"  value:\"/headers\"}  headers:{key:\":scheme\"  value:\"http\"}  headers:{key:\"accept\"  value:\"*/*\"}  headers:{key:\"user-agent\"  value:\"curl/8.2.1\"}  headers:{key:\"x-b3-sampled\"  value:\"1\"}  headers:{key:\"x-b3-spanid\"  value:\"eb42a8165099e7db\"}  headers:{key:\"x-b3-traceid\"  value:\"e7e15cc10dc66630eb42a8165099e7db\"}  headers:{key:\"x-envoy-attempt-count\"  value:\"1\"}  headers:{key:\"x-ext-authz\"  value:\"allow\"}  headers:{key:\"x-forwarded-client-cert\"  value:\"By=spiffe://cluster.local/ns/foo/sa/httpbin;Hash=c32db24acfa670a8bbe46f0897ebb70b9ccc0e630ee32afcd1ec037d6616e6c5;Subject=\\\"\\\";URI=spiffe://cluster.local/ns/foo/sa/sleep\"}  headers:{key:\"x-forwarded-proto\"  value:\"http\"}  headers:{key:\"x-request-id\"  value:\"aba7b68c-6bee-9d58-b163-7454075c6ece\"}  path:\"/headers\"  host:\"httpbin.foo:8000\"  scheme:\"http\"  protocol:\"HTTP/1.1\"}}  metadata_context:{}", 
              "X-Ext-Authz-Check-Result": "allowed", 
              "X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/foo/sa/httpbin;Hash=c32db24acfa670a8bbe46f0897ebb70b9ccc0e630ee32afcd1ec037d6616e6c5;Subject=\"\";URI=spiffe://cluster.local/ns/foo/sa/sleep"
            }
          }
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  授权控制示例
          下一篇 :  使用JWT认证授权
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明