mirror of https://github.com/istio/istio.io.git
288 lines
120 KiB
HTML
288 lines
120 KiB
HTML
<!doctype html><html lang=zh itemscope itemtype=https://schema.org/WebPage><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=theme-color content="#466BB0"><meta name=title content="安全"><meta name=description content="描述 Istio 的授权与认证功能。"><meta name=keywords content="microservices,services,mesh,security,policy,policies,authentication,authorization,rbac,access-control"><meta property="og:title" content="安全"><meta property="og:type" content="website"><meta property="og:description" content="描述 Istio 的授权与认证功能。"><meta property="og:url" content="/v1.17/zh/docs/concepts/security/"><meta property="og:image" content="https://raw.githubusercontent.com/istio/istio.io/master/static/img/istio-social.svg"><meta property="og:image:alt" content="Istio Logo"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.17 / 安全</title><script async src="https://www.googletagmanager.com/gtag/js?id=UA-98480406-2"></script>
|
||
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","UA-98480406-2")</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.17/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.17/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.17/feed.xml><link rel="shortcut icon" href=/v1.17/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.17/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.17/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.17/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.17/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.17/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.17/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.17/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.17/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.17/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.17/favicons/favicon.svg><link rel=icon type=image/png href=/v1.17/favicons/favicon.png><link rel=mask-icon href=/v1.17/favicons/safari-pinned-tab.svg color=#466bb0><link rel=manifest href=/v1.17/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><meta name=msapplication-config content="/browserconfig.xml"><meta name=msapplication-TileColor content="#466BB0"><meta name=theme-color content="#466BB0"><link rel=stylesheet href=/v1.17/css/all.css><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap"><script src=/v1.17/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.17",docTitle="安全",iconFile="/v1.17/img/icons.svg",buttonCopy="复制到剪切板",buttonPrint="打印",buttonDownload="下载"</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script>
|
||
<script src=/v1.17/js/all.min.js data-manual defer></script><header class=main-navigation><nav class="main-navigation-wrapper container-l"><div class=main-navigation-header><a id=brand href=/v1.17/zh/ aria-label=logotype><span class=logo><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></span></a><button id=hamburger class=main-navigation-toggle aria-label="Open navigation"><svg class="icon menu-hamburger"><use xlink:href="/v1.17/img/icons.svg#menu-hamburger"/></svg></button>
|
||
<button id=menu-close class=main-navigation-toggle aria-label="Close navigation"><svg class="icon menu-close"><use xlink:href="/v1.17/img/icons.svg#menu-close"/></svg></button></div><div id=header-links class=main-navigation-links-wrapper><ul class=main-navigation-links><li class=main-navigation-links-item><a class="main-navigation-links-link has-dropdown"><span>关于</span><svg class="icon dropdown-arrow"><use xlink:href="/v1.17/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/service-mesh class=main-navigation-links-link>服务网格</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/solutions class=main-navigation-links-link>解决方案</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/case-studies class=main-navigation-links-link>案例学习</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/ecosystem class=main-navigation-links-link>生态系统</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/deployment class=main-navigation-links-link>部署</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/zh/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.17/zh/blog/ class=main-navigation-links-link><span>博客</span></a></li><li class=main-navigation-links-item><a href=/v1.17/zh/news/ class=main-navigation-links-link><span>新闻</span></a></li><li class=main-navigation-links-item><a href=/v1.17/zh/get-involved/ class=main-navigation-links-link><span>加入我们</span></a></li><li class=main-navigation-links-item><a href=/v1.17/zh/docs/ class=main-navigation-links-link><span>文档</span></a></li></ul><div class=main-navigation-footer><button id=search-show class=search-show title='搜索 istio.io' aria-label=搜索><svg class="icon magnifier"><use xlink:href="/v1.17/img/icons.svg#magnifier"/></svg></button>
|
||
<a href=/v1.17/zh/docs/setup/getting-started class="btn btn--primary" id=try-istio>试用 Istio</a></div></div><form id=search-form class=search name=cse role=search><input type=hidden name=cx value=002184991200833970123:iwwf17ikgf4>
|
||
<input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=zh>
|
||
<input type=hidden id=search-page-url value=/zh/search>
|
||
<input id=search-textbox class="search-textbox form-control" name=q type=search aria-label='搜索 istio.io' placeholder=搜索>
|
||
<button id=search-close title=取消搜索 type=reset aria-label=取消搜索><svg class="icon menu-close"><use xlink:href="/v1.17/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container></div><main class="primary container has-sidebar has-toc docs"><div id=sidebar-container class=sidebar-container><nav id=sidebar aria-label="Section Navigation"><button id=sidebar-close class="main-navigation-toggle sidebar-close" aria-label="Close sidebar"><svg class="icon menu-close"><use xlink:href="/v1.17/img/icons.svg#menu-close"/></svg></button><div class=sidebar-nav><div class=search><form id=search-docs-form name=cse role=search><input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=en>
|
||
<input type=hidden id=search-docs-url value=/v1.17/search>
|
||
<input id=search-docs-textbox class=form-control name=docs-search type=search aria-label='搜索 istio.io' placeholder=搜索>
|
||
<button id=search-show2 class=search-show title='搜索 istio.io' aria-label=搜索><svg class="icon magnifier"><use xlink:href="/v1.17/img/icons.svg#magnifier"/></svg></button></form></div><div class=card><div class="body default" aria-labelledby=header0><ul role=tree aria-expanded=true aria-labelledby=header0><li role=treeitem aria-label=概念><a class=main title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。" href=/v1.17/zh/docs/concepts/>概念</a><ul role=group aria-expanded=true class=leaf-section><li role=none><a role=treeitem title="描述 Istio 多样的流量路由和控制特性。" href=/v1.17/zh/docs/concepts/traffic-management/>流量管理</a></li><li role=none><a role=treeitem title="讲述 Istio 的 WebAssembly 插件系统。" href=/v1.17/zh/docs/concepts/wasm/>扩展性</a></li><li role=none><a role=treeitem title="描述 Istio 的授权与认证功能。" href=/v1.17/zh/docs/concepts/security/>安全</a></li><li role=none><a role=treeitem title="描述 Istio 提供的遥测和监控特性。" href=/v1.17/zh/docs/concepts/observability/>可观测性</a></li></ul></li><li role=treeitem aria-label=安装><a class=main title="关于如何在 Kubernetes 集群中安装 Istio 控制平面和添加虚拟机到 mesh 中的说明。" href=/v1.17/zh/docs/setup/>安装</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title="快速、轻松地尝试 Istio 特性。" href=/v1.17/zh/docs/setup/getting-started/>入门</a></li><li role=treeitem aria-label=平台安装><button aria-hidden=true tabindex=-1></button><a title="在安装 Istio 之前如何准备各种 Kubernetes 平台。" href=/v1.17/zh/docs/setup/platform-setup/>平台安装</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="在各平台上安装 Istio 的前提条件。" href=/v1.17/zh/docs/setup/platform-setup/prerequisites/>平台前提条件</a></li><li role=none><a role=treeitem title="在阿里云 Kubernetes 集群进行配置以便安装运行 Istio。" href=/v1.17/zh/docs/setup/platform-setup/alicloud/>阿里云</a></li><li role=none><a role=treeitem title="为 Istio 设置一个 Azure 集群的操作说明。" href=/v1.17/zh/docs/setup/platform-setup/azure/>Azure</a></li><li role=none><a role=treeitem title="在 Docker Desktop 中运行 Istio 的设置说明。" href=/v1.17/zh/docs/setup/platform-setup/docker/>Docker Desktop</a></li><li role=none><a role=treeitem title="为 Istio 设置 kind 的说明。" href=/v1.17/zh/docs/setup/platform-setup/kind/>kind</a></li><li role=none><a role=treeitem title="在 Google Kubernetes Engine (GKE) 上快速搭建 Istio 服务。" href=/v1.17/zh/docs/setup/platform-setup/gke/>使用 Google Kubernetes Engine 快速开始</a></li><li role=none><a role=treeitem title="为 Istio 设置一个华为云 Kubernetes 集群的操作说明。" href=/v1.17/zh/docs/setup/platform-setup/huaweicloud/>华为云</a></li><li role=none><a role=treeitem title="在 IBM 公有云或私有云上快速搭建 Istio 服务。" href=/v1.17/zh/docs/setup/platform-setup/ibm/>IBM Cloud 快速开始</a></li><li role=none><a role=treeitem title="与Istio 一起使用的 Kops 设置说明。" href=/v1.17/zh/docs/setup/platform-setup/kops/>Kops</a></li><li role=none><a role=treeitem title="使用 Gardener 快速搭建 Istio 服务。" href=/v1.17/zh/docs/setup/platform-setup/gardener/>Kubernetes Gardener 快速开始</a></li><li role=none><a role=treeitem title="Istio 适配 KubeSphere 容器平台指南。" href=/v1.17/zh/docs/setup/platform-setup/kubesphere/>KubeSphere Container Platform</a></li><li role=none><a role=treeitem title="配置 MicroK8s 以便使用 Istio。" href=/v1.17/zh/docs/setup/platform-setup/microk8s/>MicroK8s</a></li><li role=none><a role=treeitem title="在 minikube 上配置 Istio。" href=/v1.17/zh/docs/setup/platform-setup/minikube/>minikube</a></li><li role=none><a role=treeitem title="在 OpenShift 集群上快速搭建 Istio 服务。" href=/v1.17/zh/docs/setup/platform-setup/openshift/>OpenShift</a></li><li role=none><a role=treeitem title="使用 Oracle Container 为 Istio 准备集群的说明。" href=/v1.17/zh/docs/setup/platform-setup/oci/>Oracle Cloud 基础架构</a></li><li role=none><a role=treeitem title="在腾讯云上快速创建 Istio 服务。" href=/v1.17/zh/docs/setup/platform-setup/tencent-cloud-mesh/>腾讯云</a></li></ul></li><li role=treeitem aria-label=安装><button aria-hidden=true tabindex=-1></button><a title=选择最适合你需求和平台的安装指南。 href=/v1.17/zh/docs/setup/install/>安装</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="安装、定制 Istio 配置文件,用于深入评估及生产发布。" href=/v1.17/zh/docs/setup/install/istioctl/>使用 Istioctl 安装</a></li><li role=none><a role=treeitem title="安装、配置并深入评估 Istio。" href=/v1.17/zh/docs/setup/install/helm/>使用 Helm 安装</a></li><li role=treeitem aria-label=多集群安装><button aria-hidden=true tabindex=-1></button><a title="跨多 Kubernetes 集群,安装 Istio 服务网格。" href=/v1.17/zh/docs/setup/install/multicluster/>多集群安装</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="在多个集群上安装 Istio 之前的初始步骤。" href=/v1.17/zh/docs/setup/install/multicluster/before-you-begin/>准备工作</a></li><li role=none><a role=treeitem title="跨多个主集群,安装 Istio 网格。" href=/v1.17/zh/docs/setup/install/multicluster/multi-primary/>多主架构的安装</a></li><li role=none><a role=treeitem title="跨主-从集群,安装 Istio 网格。" href=/v1.17/zh/docs/setup/install/multicluster/primary-remote/>主-从架构的安装</a></li><li role=none><a role=treeitem title="跨网络、多主架构的 Istio 网格安装。" href=/v1.17/zh/docs/setup/install/multicluster/multi-primary_multi-network/>跨网络多主架构的安装</a></li><li role=none><a role=treeitem title="跨网络、主-从架构的 Istio 网格安装。" href=/v1.17/zh/docs/setup/install/multicluster/primary-remote_multi-network/>跨网络主-从架构的安装</a></li><li role=none><a role=treeitem title="验证 Istio 已成功安装到多集群环境中。" href=/v1.17/zh/docs/setup/install/multicluster/verify/>验证安装结果</a></li></ul></li><li role=none><a role=treeitem title="部署 Istio,接入虚拟机中运行的工作负载。" href=/v1.17/zh/docs/setup/install/virtual-machine/>虚拟机安装</a></li><li role=none><a role=treeitem title="使用修订和 discoverySelectors 在单集群中安装多个 Istio 控制面。" href=/v1.17/zh/docs/setup/install/multiple-controlplanes/>在单集群中安装多个 Istio 控制面</a></li><li role=none><a role=treeitem title=安装外部控制平面和远程集群。 href=/v1.17/zh/docs/setup/install/external-controlplane/>使用外部控制平面安装 Istio</a></li><li role=none><a role=treeitem title="使用 Istio Operator 在 Kubernetes 集群中安装 Istio 的说明。 (Beta)" href=/v1.17/zh/docs/setup/install/operator/>使用 Istio Operator 安装 *</a></li></ul></li><li role=treeitem aria-label=升级><button aria-hidden=true tabindex=-1></button><a title="跨多个控制平面升级、降级和管理 Istio。" href=/v1.17/zh/docs/setup/upgrade/>升级</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="通过先运行一个金丝雀部署的新控制平面升级 Istio。" href=/v1.17/zh/docs/setup/upgrade/canary/>金丝雀升级</a></li><li role=none><a role=treeitem title=原地升级和回退。 href=/v1.17/zh/docs/setup/upgrade/in-place/>原地升级</a></li><li role=none><a role=treeitem title="深度评估升级和配置 Istio。" href=/v1.17/zh/docs/setup/upgrade/helm/>Upgrade with Helm</a></li></ul></li><li role=treeitem aria-label=更多指南><button aria-hidden=true tabindex=-1></button><a title=有关其他设置任务的更多信息。 href=/v1.17/zh/docs/setup/additional-setup/>更多指南</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 内置的安装配置文件。" href=/v1.17/zh/docs/setup/additional-setup/config-profiles/>安装配置文件</a></li><li role=none><a role=treeitem title="在应用程序 Pod 中使用 Sidecar Injector Webhook 自动安装或使用 Istioctl CLI 手动安装 Istio Sidecar。" href=/v1.17/zh/docs/setup/additional-setup/sidecar-injection/>安装 Sidecar</a></li><li role=none><a role=treeitem title=描述如何定制安装配置选项。 href=/v1.17/zh/docs/setup/additional-setup/customize-installation/>定制安装配置</a></li><li role=none><a role=treeitem title="描述使用 helm 安装时如何自定义安装配置选项。" href=/v1.17/zh/docs/setup/additional-setup/customize-installation-helm/>高级 Helm chart 自定义</a></li><li role=none><a role=treeitem title="安装并使用 Istio CNI 插件,可以让运维人员用更低的权限来部署服务。" href=/v1.17/zh/docs/setup/additional-setup/cni/>安装 Istio CNI 插件</a></li></ul></li></ul></li><li role=treeitem aria-label=任务><a class=main title="如何用 Istio 实现单个特定的目标行为。" href=/v1.17/zh/docs/tasks/>任务</a><ul role=group aria-expanded=true><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 的流量路由功能的任务。" href=/v1.17/zh/docs/tasks/traffic-management/>流量管理</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title=如何将请求动态路由到微服务的多个版本。 href=/v1.17/zh/docs/tasks/traffic-management/request-routing/>配置请求路由</a></li><li role=none><a role=treeitem title=此任务说明如何注入故障并测试应用程序的弹性。 href=/v1.17/zh/docs/tasks/traffic-management/fault-injection/>故障注入</a></li><li role=none><a role=treeitem title=展示如何将流量从旧版本迁移到新版本的服务。 href=/v1.17/zh/docs/tasks/traffic-management/traffic-shifting/>流量转移</a></li><li role=none><a role=treeitem title="展示如何将一个服务的 TCP 流量从旧版本迁移到新版本。" href=/v1.17/zh/docs/tasks/traffic-management/tcp-traffic-shifting/>TCP 流量转移</a></li><li role=none><a role=treeitem title="本任务用于示范如何使用 Istio 在 Envoy 中设置请求超时。" href=/v1.17/zh/docs/tasks/traffic-management/request-timeouts/>设置请求超时</a></li><li role=none><a role=treeitem title=本任务展示如何为连接、请求以及异常检测配置熔断。 href=/v1.17/zh/docs/tasks/traffic-management/circuit-breaking/>熔断</a></li><li role=none><a role=treeitem title="此任务演示了 Istio 的流量镜像/影子功能。" href=/v1.17/zh/docs/tasks/traffic-management/mirroring/>镜像</a></li><li role=treeitem aria-label=地域负载均衡><button aria-hidden=true tabindex=-1></button><a title="本系列任务演示如何在 Istio 中配置地域负载均衡。" href=/v1.17/zh/docs/tasks/traffic-management/locality-load-balancing/>地域负载均衡</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title=配置地域负载均衡前的初始化步骤。 href=/v1.17/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/>开始之前</a></li><li role=none><a role=treeitem title=本任务演示如何为网格配置地域故障转移。 href=/v1.17/zh/docs/tasks/traffic-management/locality-load-balancing/failover/>地域故障转移</a></li><li role=none><a role=treeitem title=本指南演示如何配置地域权重分配。 href=/v1.17/zh/docs/tasks/traffic-management/locality-load-balancing/distribute/>地域权重分布</a></li><li role=none><a role=treeitem title=地域负载均衡的清理步骤。 href=/v1.17/zh/docs/tasks/traffic-management/locality-load-balancing/cleanup/>清理</a></li></ul></li><li role=treeitem aria-label=Ingress><button aria-hidden=true tabindex=-1></button><a title="控制 Istio 服务网格的入口流量。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/>Ingress</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何配置 Istio Gateway 对象,以将服务暴露至服务网格之外。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/ingress-control/>入口网关</a></li><li role=none><a role=treeitem title="通过 TLS 或 mTLS 将服务暴露到服务网格外。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/secure-ingress/>安全网关</a></li><li role=none><a role=treeitem title="描述了如何在不使用 Ingress Gateway 的情况下,在一个 Sidecar 上终止 TLS 流量。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/ingress-sidecar-tls-termination/>Ingress Sidecar TLS 终止</a></li><li role=none><a role=treeitem title="如何为一个 Ingress Gateway 配置 SNI 透传。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/ingress-sni-passthrough/>无 TLS 终止的 Ingress Gateway</a></li><li role=none><a role=treeitem title="展示如何配置 Kubernetes Ingress 对象,使得从服务网格外部可以访问网格内服务。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/kubernetes-ingress/>Kubernetes Ingress</a></li><li role=none><a role=treeitem title="描述在 Istio 中如何配置 Kubernetes Gateway API。" href=/v1.17/zh/docs/tasks/traffic-management/ingress/gateway-api/>Kubernetes Gateway API</a></li></ul></li><li role=treeitem aria-label=Egress><button aria-hidden=true tabindex=-1></button><a title="控制 Istio 服务网格的出口流量。" href=/v1.17/zh/docs/tasks/traffic-management/egress/>Egress</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何配置 Istio 以将流量从网格中的服务路由到外部服务。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-control/>访问外部服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 对来自外部服务的流量执行 TLS 发起。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-tls-origination/>Egress TLS Origination</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 通过专用网关服务将流量定向到外部服务。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-gateway/>出口网关</a></li><li role=none><a role=treeitem title="描述了如何配置 Egress 网关,使用 Secret Discovery Service 执行 TLS 链接外部服务。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-gateway-tls-origination-sds/>Egress 网关 TLS 连接 发起的过程 (SDS)</a></li><li role=none><a role=treeitem title="描述如何配置一个 Egress 网关,来向外部服务发起 TLS 连接。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-gateway-tls-origination/>Egress 网关的 TLS 发起过程</a></li><li role=none><a role=treeitem title="描述如何开启通用域中一组主机的 egress,无需单独配置每一台主机。" href=/v1.17/zh/docs/tasks/traffic-management/egress/wildcard-egress-hosts/>Wildcard 主机的 egress</a></li><li role=none><a role=treeitem title="描述如何在 TLS Egress 上配置 SNI 监控和策略。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress_sni_monitoring_and_policies/>TLS Egress 监控和策略配置</a></li><li role=none><a role=treeitem title="展示如何配置 Istio Kubernetes 外部服务。" href=/v1.17/zh/docs/tasks/traffic-management/egress/egress-kubernetes-services/>Kubernetes Egress 流量服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 以允许应用程序使用外部 HTTPS 代理。" href=/v1.17/zh/docs/tasks/traffic-management/egress/http-proxy/>使用外部 HTTPS 代理</a></li></ul></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true tabindex=-1></button><a title=演示如何保护网格。 href=/v1.17/zh/docs/tasks/security/>安全</a><ul role=group aria-expanded=false><li role=treeitem aria-label=认证><button aria-hidden=true tabindex=-1></button><a title="管控网格服务间的双向 TLS 和终端用户的身份认证。" href=/v1.17/zh/docs/tasks/security/authentication/>认证</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="演示如何使用基于 JWT 声明路由请求的 Istio 身份验证策略。 (Experimental)" href=/v1.17/zh/docs/tasks/security/authentication/jwt-route/>基于 JWT 声明的路由 *</a></li><li role=none><a role=treeitem title="向您展示如何通过使用 Istio 认证策略来设置双向 TLS 和基本的终端用户认证。" href=/v1.17/zh/docs/tasks/security/authentication/authn-policy/>认证策略</a></li><li role=none><a role=treeitem title="阐述如何将 Istio 服务逐步迁移至双向 TLS 通信模式。" href=/v1.17/zh/docs/tasks/security/authentication/mtls-migration/>双向 TLS 迁移</a></li></ul></li><li role=treeitem aria-label=证书管理><button aria-hidden=true tabindex=-1></button><a title="管理 Istio 的证书。" href=/v1.17/zh/docs/tasks/security/cert-management/>证书管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="系统管理员如何通过根证书、签名证书和密钥来配置 Istio 的 CA。" href=/v1.17/zh/docs/tasks/security/cert-management/plugin-ca-cert/>插入 CA 证书</a></li><li role=none><a role=treeitem title="如何在 Istiod 中配置和管理 DNS 证书。" href=/v1.17/zh/docs/tasks/security/cert-management/dns-cert/>Istio 的 DNS 证书管理</a></li><li role=none><a role=treeitem title="演示如何使用自定义证书颁发机构(与 Kubernetes CSR API 集成)来提供 Istio 工作负载证书。 (Experimental)" href=/v1.17/zh/docs/tasks/security/cert-management/custom-ca-k8s/>使用 Kubernetes CSR 自定义 CA 集成 *</a></li></ul></li><li role=treeitem aria-label=授权><button aria-hidden=true tabindex=-1></button><a title="展示如何控制到 Istio 服务的访问。" href=/v1.17/zh/docs/tasks/security/authorization/>授权</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="展示如何设置 HTTP 流量访问控制。" href=/v1.17/zh/docs/tasks/security/authorization/authz-http/>HTTP 流量</a></li><li role=none><a role=treeitem title="展示如何设置 TCP 流量的访问控制。" href=/v1.17/zh/docs/tasks/security/authorization/authz-tcp/>TCP 流量</a></li><li role=none><a role=treeitem title="演示如何为 JWT 令牌设置访问控制。" href=/v1.17/zh/docs/tasks/security/authorization/authz-jwt/>JWT 令牌</a></li><li role=none><a role=treeitem title=如何集成访问控制并将其委托给外部授权系统。 href=/v1.17/zh/docs/tasks/security/authorization/authz-custom/>外部授权</a></li><li role=none><a role=treeitem title=如何设置访问控制以明确地拒绝流量。 href=/v1.17/zh/docs/tasks/security/authorization/authz-deny/>明确拒绝</a></li><li role=none><a role=treeitem title=展示如何在入口网关上设置访问控制。 href=/v1.17/zh/docs/tasks/security/authorization/authz-ingress/>入口网关</a></li><li role=none><a role=treeitem title=阐述如何在不更改授权策略的前提下从一个信任域迁移到另一个。 href=/v1.17/zh/docs/tasks/security/authorization/authz-td-migration/>信任域迁移</a></li></ul></li><li role=treeitem aria-label="TLS 配置"><button aria-hidden=true tabindex=-1></button><a title="在 Istio 中配置 TLS。" href=/v1.17/zh/docs/tasks/security/tls-configuration/>TLS 配置</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="演示如何为 Istio 工作负载配置最低版本的 TLS。" href=/v1.17/zh/docs/tasks/security/tls-configuration/workload-min-tls-version/>Istio 工作负载的最低 TLS 版本配置</a></li></ul></li></ul></li><li role=treeitem aria-label=策略执行><button aria-hidden=true tabindex=-1></button><a title=演示策略执行特性。 href=/v1.17/zh/docs/tasks/policy-enforcement/>策略执行</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="此任务将展示如何配置 Istio 来动态地限制服务的流量。" href=/v1.17/zh/docs/tasks/policy-enforcement/rate-limit/>使用 Envoy 启用速率限制</a></li></ul></li><li role=treeitem aria-label=可观察性><button aria-hidden=true tabindex=-1></button><a title=演示如何从网格收集遥测信息。 href=/v1.17/zh/docs/tasks/observability/>可观察性</a><ul role=group aria-expanded=false><li role=treeitem aria-label=指标><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 中指标的收集和查询。" href=/v1.17/zh/docs/tasks/observability/metrics/>指标</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。" href=/v1.17/zh/docs/tasks/observability/metrics/tcp-metrics/>收集 TCP 服务指标</a></li><li role=none><a role=treeitem title="此任务向您展示如何自定义 Istio 指标。" href=/v1.17/zh/docs/tasks/observability/metrics/customize-metrics/>自定义 Istio 指标</a></li><li role=none><a role=treeitem title=此任务向您展示如何通过按类型对请求和响应进行分组来改进遥测。 href=/v1.17/zh/docs/tasks/observability/metrics/classify-metrics/>根据请求或响应对指标进行分类</a></li><li role=none><a role=treeitem title="本任务介绍如何通过 Prometheus 查询 Istio 度量指标。" href=/v1.17/zh/docs/tasks/observability/metrics/querying-metrics/>通过 Prometheus 查询度量指标</a></li><li role=none><a role=treeitem title="此任务展示了如何设置和使用 Istio Dashboard 监控网格流量。" href=/v1.17/zh/docs/tasks/observability/metrics/using-istio-dashboard/>使用 Grafana 可视化指标</a></li></ul></li><li role=treeitem aria-label=日志><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 网格日志的配置、收集和处理。" href=/v1.17/zh/docs/tasks/observability/logs/>日志</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="此任务向您展示如何配置 Envoy 代理将访问日志打印到其标准输出。" href=/v1.17/zh/docs/tasks/observability/logs/access-log/>获取 Envoy 访问日志</a></li></ul></li><li role=treeitem aria-label=分布式追踪><button aria-hidden=true tabindex=-1></button><a title="该任务展示了如何为启用了 Istio 支持的应用进行追踪。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/>分布式追踪</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Istio 分布式追踪的概述。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/overview/>概述</a></li><li role=none><a role=treeitem title="学习如何配置代理将跟踪请求发送到 Apache SkyWalking。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/skywalking/>Apache SkyWalking</a></li><li role=none><a role=treeitem title="了解如何配置代理以向 Jaeger 发送追踪请求。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a></li><li role=none><a role=treeitem title="学习如何配置代理将 OpenCensus 格式化的 span 发送到 OpenTelemetry Collector。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/opencensusagent/>OpenCensus Agent</a></li><li role=none><a role=treeitem title="了解如何通过配置代理以向 Zipkin 发送追踪请求。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="怎样配置代理才能把追踪请求发送到 Lightstep。" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/lightstep/>Lightstep</a></li><li role=none><a role=treeitem title="如何使用 MeshConfig 和 Pod 注释配置跟踪选项。 (Beta/Experimental)" href=/v1.17/zh/docs/tasks/observability/distributed-tracing/mesh-and-proxy-config/>使用 MeshConfig 和 Pod 注释配置跟踪 *</a></li></ul></li><li role=none><a role=treeitem title="此任务向您展示如何在 Istio 网格中可视化服务。" href=/v1.17/zh/docs/tasks/observability/kiali/>网格可视化</a></li><li role=none><a role=treeitem title="此任务向您展示如何配置从外部访问 Istio 遥测插件。" href=/v1.17/zh/docs/tasks/observability/gateways/>远程访问遥测插件</a></li></ul></li><li role=treeitem aria-label=可扩展性><button aria-hidden=true tabindex=-1></button><a title=演示如何扩展网格行为。 href=/v1.17/zh/docs/tasks/extensibility/>可扩展性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何在网格中使用远程 WebAssembly 模块。 (Alpha)" href=/v1.17/zh/docs/tasks/extensibility/wasm-module-distribution/>WebAssembly 模块分发 *</a></li></ul></li></ul></li><li role=treeitem aria-label=示例><a class=main title="这里包括多个可供 Istio 使用的可完整工作的示例,你可以用来亲自部署和体验这些示例。" href=/v1.17/zh/docs/examples/>示例</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title="部署一个用于演示多种 Istio 特性的应用,由四个单独的微服务构成。" href=/v1.17/zh/docs/examples/bookinfo/>Bookinfo 应用</a></li><li role=none><a role=treeitem title="使用在网格内的虚拟机上运行的 MySQL 服务运行 Bookinfo 应用程序。" href=/v1.17/zh/docs/examples/virtual-machines/>在虚拟机上部署 Bookinfo 应用程序</a></li><li role=treeitem aria-label="使用 Kubernetes 和 Istio 学习微服务"><button aria-hidden=true tabindex=-1></button><a title="该模块化教程为新用户提供了一步步将 Istio 应用于常见微服务场景的动手经验。" href=/v1.17/zh/docs/examples/microservices-istio/>使用 Kubernetes 和 Istio 学习微服务</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/prereq/>前提条件</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/setup-kubernetes-cluster/>设置 Kubernetes 集群</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/setup-local-computer/>设置本地计算机</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/single/>本地运行微服务</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/package-service/>在 Docker 中运行 ratings 服务</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/bookinfo-kubernetes/>使用 Kubernetes 运行 Bookinfo</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/production-testing/>生产测试</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/add-new-microservice-version/>添加一个新版本的 reviews</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/add-istio/>在 productpage 启用 Istio</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/enable-istio-all-microservices/>在所有微服务中启用 Istio</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/istio-ingress-gateway/>配置 Istio Ingress Gateway</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/examples/microservices-istio/logs-istio/>监控 Istio</a></li></ul></li></ul></li><li role=treeitem aria-label=运维><a class=main title="关于部署和管理 Istio 网格的概念、工具和技术。" href=/v1.17/zh/docs/ops/>运维</a><ul role=group aria-expanded=true><li role=treeitem aria-label=部署><button aria-hidden=true tabindex=-1></button><a title="设置 Istio 部署的要求、概念和注意事项。" href=/v1.17/zh/docs/ops/deployment/>部署</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 的整体架构与设计目标。" href=/v1.17/zh/docs/ops/deployment/architecture/>架构</a></li><li role=none><a role=treeitem title="描述 Istio 部署中的选择和建议。" href=/v1.17/zh/docs/ops/deployment/deployment-models/>部署模型</a></li><li role=none><a role=treeitem title="阐述 Istio 针对虚拟机的高级架构。" href=/v1.17/zh/docs/ops/deployment/vm-architecture/>虚拟机架构</a></li><li role=none><a role=treeitem title="介绍 Istio 的性能和可扩展性。" href=/v1.17/zh/docs/ops/deployment/performance-and-scalability/>性能和可扩展性</a></li><li role=none><a role=treeitem title="部署在支持 Istio 的集群中的应用程序的要求。" href=/v1.17/zh/docs/ops/deployment/requirements/>应用程序要求</a></li></ul></li><li role=treeitem aria-label=配置><button aria-hidden=true tabindex=-1></button><a title="配置运行中的 Istio 网格的高级概念和功能。" href=/v1.17/zh/docs/ops/configuration/>配置</a><ul role=group aria-expanded=false><li role=treeitem aria-label=网格配置><button aria-hidden=true tabindex=-1></button><a title=帮助您管理全局网格配置。 href=/v1.17/zh/docs/ops/configuration/mesh/>网格配置</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="简要描述 Istio 对 Kubernetes webhook 的使用以及可能出现的相关问题。" href=/v1.17/zh/docs/ops/configuration/mesh/webhook/>动态准入 Webhook 概述</a></li><li role=none><a role=treeitem title=如何等待资源达到给定的就绪状态。 href=/v1.17/zh/docs/ops/configuration/mesh/config-resource-ready/>等待应用的配置资源状态就绪</a></li><li role=none><a role=treeitem title="为您展示如何对 Istio 服务做健康检查。" href=/v1.17/zh/docs/ops/configuration/mesh/app-health-check/>Istio 服务的健康检查</a></li></ul></li><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格的网络方面。 href=/v1.17/zh/docs/ops/configuration/traffic-management/>流量管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title=关于如何声明协议。 href=/v1.17/zh/docs/ops/configuration/traffic-management/protocol-selection/>协议选择</a></li><li role=none><a role=treeitem title=有关如何启用和理解地域负载平衡。 href=/v1.17/zh/docs/ops/configuration/traffic-management/locality-load-balancing/>地域负载均衡</a></li><li role=none><a role=treeitem title="如何使用 TLS 配置设置安全的网络流量。" href=/v1.17/zh/docs/ops/configuration/traffic-management/tls-configuration/>TLS 配置</a></li><li role=none><a role=treeitem title="理解 Istio 如何与 DNS 交互。" href=/v1.17/zh/docs/ops/configuration/traffic-management/dns/>DNS</a></li><li role=none><a role=treeitem title="如何配置 DNS 代理。" href=/v1.17/zh/docs/ops/configuration/traffic-management/dns-proxy/>DNS 代理</a></li><li role=none><a role=treeitem title="如何配置 Gateway 网络拓扑。 (Alpha)" href=/v1.17/zh/docs/ops/configuration/traffic-management/network-topologies/>配置 Gateway 网络拓扑 *</a></li><li role=none><a role=treeitem title=如何配置流量在网格集群之间如何分发的。 href=/v1.17/zh/docs/ops/configuration/traffic-management/multicluster/>多集群流量管理</a></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格的安全性方面。 href=/v1.17/zh/docs/ops/configuration/security/>安全</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="展示使用 Istio 安全策略的通用示例。" href=/v1.17/zh/docs/ops/configuration/security/security-policy-examples/>安全策略示例</a></li><li role=none><a role=treeitem title="使用加固的容器镜像来减小 Istio 的攻击面。" href=/v1.17/zh/docs/ops/configuration/security/harden-docker-images/>加固 Docker 容器镜像</a></li></ul></li><li role=treeitem aria-label=可观测性><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格中的遥测收集和可视化。 href=/v1.17/zh/docs/ops/configuration/telemetry/>可观测性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="精细化控制 Envoy 的统计信息。" href=/v1.17/zh/docs/ops/configuration/telemetry/envoy-stats/>Envoy 的统计信息</a></li><li role=none><a role=treeitem title="配置 Prometheus 监控 Istio 多集群。" href=/v1.17/zh/docs/ops/configuration/telemetry/monitoring-multicluster-prometheus/>使用 Prometheus 监控 Istio 多集群</a></li></ul></li><li role=treeitem aria-label=可扩展性><button aria-hidden=true tabindex=-1></button><a title=帮助您管理服务网格的扩展。 href=/v1.17/zh/docs/ops/configuration/extensibility/>可扩展性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 如何决定是拉取 Wasm 模块还是使用缓存的版本。 (Alpha)" href=/v1.17/zh/docs/ops/configuration/extensibility/wasm-pull-policy/>WebAssembly 模块的拉取策略 *</a></li></ul></li></ul></li><li role=treeitem aria-label=最佳实践><button aria-hidden=true tabindex=-1></button><a title="设置和管理 Istio 服务网格的最佳实践。" href=/v1.17/zh/docs/ops/best-practices/>最佳实践</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="设置 Istio 服务网格时的最佳实践。" href=/v1.17/zh/docs/ops/best-practices/deployment/>Deployment 最佳实践</a></li><li role=none><a role=treeitem title=避免网络或流量管理问题的配置最佳实践。 href=/v1.17/zh/docs/ops/best-practices/traffic-management/>流量管理最佳实践</a></li><li role=none><a role=treeitem title="使用 Istio 保护应用的最佳实践。" href=/v1.17/zh/docs/ops/best-practices/security/>安全最佳实践</a></li><li role=none><a role=treeitem title="描述如何使用镜像签名来验证 Istio 镜像的出处。" href=/v1.17/zh/docs/ops/best-practices/image-signing-validation/>镜像签名和验证</a></li><li role=none><a role=treeitem title="使用 Istio 观测应用时的最佳实践。" href=/v1.17/zh/docs/ops/best-practices/observability/>可观察性最佳实践</a></li></ul></li><li role=treeitem aria-label=常见问题><button aria-hidden=true tabindex=-1></button><a title="描述如何辨认和解决 Istio 中的常见问题。" href=/v1.17/zh/docs/ops/common-problems/>常见问题</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="定位常见的 Istio 流量管理和网络问题的技术。" href=/v1.17/zh/docs/ops/common-problems/network-issues/>流量管理问题</a></li><li role=none><a role=treeitem title="定位常见 Istio 认证、授权、安全相关问题的技巧。" href=/v1.17/zh/docs/ops/common-problems/security-issues/>安全问题</a></li><li role=none><a role=treeitem title="处理 Telemetry 收集问题。" href=/v1.17/zh/docs/ops/common-problems/observability-issues/>可观测性问题</a></li><li role=none><a role=treeitem title="解决 Istio 使用 Kubernetes Webhooks 进行 Sidecar 自动注入的常见问题。" href=/v1.17/zh/docs/ops/common-problems/injection/>Sidecar 自动注入问题</a></li><li role=none><a role=treeitem title=如何解决配置验证的问题。 href=/v1.17/zh/docs/ops/common-problems/validation/>配置验证的问题</a></li></ul></li><li role=treeitem aria-label=诊断工具><button aria-hidden=true tabindex=-1></button><a title="帮助解决 Istio 网格问题的工具和技术。" href=/v1.17/zh/docs/ops/diagnostic-tools/>诊断工具</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Istio 自带的一个可以为服务网格部署提供调试和诊断的补充工具。" href=/v1.17/zh/docs/ops/diagnostic-tools/istioctl/>使用 Istioctl 命令行工具</a></li><li role=none><a role=treeitem title="描述诊断与流量管理相关的 Envoy 配置问题的工具和技术。" href=/v1.17/zh/docs/ops/diagnostic-tools/proxy-cmd/>调试 Envoy 和 Istiod</a></li><li role=none><a role=treeitem title="向您展示如何使用 istioctl describe 来验证您的网格中的 pod 的配置。" href=/v1.17/zh/docs/ops/diagnostic-tools/istioctl-describe/>通过 Istioctl Describe 理解您的网格</a></li><li role=none><a role=treeitem title="演示如何使用 istioctl analyze 来识别配置中的潜在问题。" href=/v1.17/zh/docs/ops/diagnostic-tools/istioctl-analyze/>使用 Istioctl Analyze 诊断配置</a></li><li role=none><a role=treeitem title="介绍如何使用 ControlZ 深入了解正在运行的 istiod 组件。" href=/v1.17/zh/docs/ops/diagnostic-tools/controlz/>组件自检</a></li><li role=none><a role=treeitem title=如何使用组件级别日志来深入了解正在运行的组件的行为。 href=/v1.17/zh/docs/ops/diagnostic-tools/component-logging/>组件日志记录</a></li><li role=none><a role=treeitem title=介绍关于虚拟机调试的技术和工具。 href=/v1.17/zh/docs/ops/diagnostic-tools/virtual-machines/>虚拟机调试</a></li><li role=none><a role=treeitem title=介绍用来诊断多集群和多网络下安装问题的工具和技术。 href=/v1.17/zh/docs/ops/diagnostic-tools/multicluster/>多集群下的故障排除</a></li></ul></li><li role=treeitem aria-label=集成><button aria-hidden=true tabindex=-1></button><a title="能够与 Istio 集成以提供额外功能的其他软件。" href=/v1.17/zh/docs/ops/integrations/>集成</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="关于如何与 cert-manager 集成的相关说明。" href=/v1.17/zh/docs/ops/integrations/certmanager/>cert-manager</a></li><li role=none><a role=treeitem title="关于如何与 Grafana 集成构建 Istio 仪表盘的相关文档。" href=/v1.17/zh/docs/ops/integrations/grafana/>Grafana</a></li><li role=none><a role=treeitem title="如何与 Jaeger 集成。" href=/v1.17/zh/docs/ops/integrations/jaeger/>Jaeger</a></li><li role=none><a role=treeitem title="有关如何与 Kiali 集成的信息。" href=/v1.17/zh/docs/ops/integrations/kiali/>Kiali</a></li><li role=none><a role=treeitem title="如何集成 Prometheus。" href=/v1.17/zh/docs/ops/integrations/prometheus/>Prometheus</a></li><li role=none><a role=treeitem title="如何与 Zipkin 进行集成。" href=/v1.17/zh/docs/ops/integrations/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="如何集成 Apache SkyWalking。" href=/v1.17/zh/docs/ops/integrations/skywalking/>Apache SkyWalking</a></li></ul></li></ul></li><li role=treeitem aria-label=发布><a class=main title="与 Istio 发布有关的信息。" href=/v1.17/zh/docs/releases/>发布</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title=特性及其发布阶段的列表。 href=/v1.17/zh/docs/releases/feature-stages/>功能状态</a></li><li role=none><a role=treeitem title=如果发现错误该怎么办。 href=/v1.17/zh/docs/releases/bugs/>报告错误</a></li><li role=none><a role=treeitem title=我们如何处理安全漏洞。 href=/v1.17/zh/docs/releases/security-vulnerabilities/>安全漏洞</a></li><li role=none><a role=treeitem title="当前支持的 Istio 版本。" href=/v1.17/zh/docs/releases/supported-releases/>版本支持</a></li><li role=treeitem aria-label=贡献文档><button aria-hidden=true tabindex=-1></button><a title="详细介绍了如何创建和维护 Istio 文档。" href=/v1.17/zh/docs/releases/contribute/>贡献文档</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="介绍如何为 Istio 贡献新文档。" href=/v1.17/zh/docs/releases/contribute/add-content/>添加新文档</a></li><li role=none><a role=treeitem title="详细说明如何将已停用的文档提交给 Istio。" href=/v1.17/zh/docs/releases/contribute/remove-content/>删除已停用的文档</a></li><li role=none><a role=treeitem title=介绍如何在本地进行本网站的构建,测试,运行和预览。 href=/v1.17/zh/docs/releases/contribute/build/>本地构建和运行本网站</a></li><li role=none><a role=treeitem title=介绍了文档中使用的文章头及其可用字段。 href=/v1.17/zh/docs/releases/contribute/front-matter/>文章头部</a></li><li role=none><a role=treeitem title="向您展示如何审阅和批准对 Istio 文档和网站的更改。" href=/v1.17/zh/docs/releases/contribute/review/>文档审阅流程</a></li><li role=none><a role=treeitem title=介绍如何在您的文档中添加代码。 href=/v1.17/zh/docs/releases/contribute/code-blocks/>添加代码块</a></li><li role=none><a role=treeitem title="介绍可用的 shortcode 及其用法。" href=/v1.17/zh/docs/releases/contribute/shortcodes/>使用 Shortcode</a></li><li role=none><a role=treeitem title="介绍 Istio 文档的格式标准。" href=/v1.17/zh/docs/releases/contribute/formatting/>格式标准</a></li><li role=none><a role=treeitem title="介绍 Istio 文档所使用的风格规则。" href=/v1.17/zh/docs/releases/contribute/style-guide/>风格指南</a></li><li role=none><a role=treeitem title="解释 Istio 文档中使用的术语标准。" href=/v1.17/zh/docs/releases/contribute/terminology/>术语标准</a></li><li role=none><a role=treeitem title="为 Istio 文档创建图表提供素材和说明。" href=/v1.17/zh/docs/releases/contribute/diagrams/>创建图表指南</a></li><li role=none><a role=treeitem title="向您展示如何使用 GitHub 参与贡献 Istio 文档。" href=/v1.17/zh/docs/releases/contribute/github/>使用 GitHub 参与社区活动</a></li></ul></li><li role=none><a role=treeitem title=该网站的最新更改列表。 href=/v1.17/zh/docs/releases/log/>网站内容更改</a></li></ul></li><li role=treeitem aria-label=参考><a class=main title="参考部分包含详细的权威参考资料,如命令行选项、配置选项和 API 调用参数。" href=/v1.17/zh/docs/reference/>参考</a><ul role=group aria-expanded=true><li role=treeitem aria-label=配置><button aria-hidden=true tabindex=-1></button><a title=关于配置选项的详细信息。 href=/v1.17/zh/docs/reference/config/>配置</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="Telemetry configuration for workloads." href=/v1.17/zh/docs/reference/config/telemetry/>Telemetry</a></li><li role=none><a role=treeitem title="描述使用 Helm chart 安装 Istio 时的可选项。" href=/v1.17/zh/docs/reference/config/installation-options/>安装选项(Helm)</a></li><li role=none><a role=treeitem title="Describes the structure of messages generated by Istio analyzers." href=/v1.17/zh/docs/reference/config/istio.analysis.v1alpha1/>Analysis Messages</a></li><li role=none><a role=treeitem title="Configuration affecting the service mesh as a whole." href=/v1.17/zh/docs/reference/config/istio.mesh.v1alpha1/>Global Mesh Options</a></li><li role=none><a role=treeitem title="Configuration affecting Istio control plane installation version and shape." href=/v1.17/zh/docs/reference/config/istio.operator.v1alpha1/>IstioOperator Options</a></li><li role=none><a role=treeitem title=描述“状态”字段在配置工作流程中的作用。 href=/v1.17/zh/docs/reference/config/config-status/>状态字段配置</a></li><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title="描述如何配置 HTTP/TCP 路由功能。" href=/v1.17/zh/docs/reference/config/networking/>流量管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Configuration affecting load balancing, outlier detection, etc." href=/v1.17/zh/docs/reference/config/networking/destination-rule/>Destination Rule</a></li><li role=none><a role=treeitem title="Customizing Envoy configuration generated by Istio." href=/v1.17/zh/docs/reference/config/networking/envoy-filter/>Envoy Filter</a></li><li role=none><a role=treeitem title="Configuration affecting edge load balancer." href=/v1.17/zh/docs/reference/config/networking/gateway/>Gateway</a></li><li role=none><a role=treeitem title="Provides configuration for individual workloads." href=/v1.17/zh/docs/reference/config/networking/proxy-config/>ProxyConfig</a></li><li role=none><a role=treeitem title="Configuration affecting service registry." href=/v1.17/zh/docs/reference/config/networking/service-entry/>Service Entry</a></li><li role=none><a role=treeitem title="Configuration affecting network reachability of a sidecar." href=/v1.17/zh/docs/reference/config/networking/sidecar/>Sidecar</a></li><li role=none><a role=treeitem title="Configuration affecting label/content routing, sni routing, etc." href=/v1.17/zh/docs/reference/config/networking/virtual-service/>Virtual Service</a></li><li role=none><a role=treeitem title="Configuration affecting VMs onboarded into the mesh." href=/v1.17/zh/docs/reference/config/networking/workload-entry/>Workload Entry</a></li><li role=none><a role=treeitem title="Describes a collection of workload instances." href=/v1.17/zh/docs/reference/config/networking/workload-group/>Workload Group</a></li></ul></li><li role=treeitem aria-label=Security><button aria-hidden=true tabindex=-1></button><a title="如何配置 Istio 的安全功能。" href=/v1.17/zh/docs/reference/config/security/>Security</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Configuration to validate JWT." href=/v1.17/zh/docs/reference/config/security/jwt/>JWTRule</a></li><li role=none><a role=treeitem title="Peer authentication configuration for workloads." href=/v1.17/zh/docs/reference/config/security/peer_authentication/>PeerAuthentication</a></li><li role=none><a role=treeitem title="Request authentication configuration for workloads." href=/v1.17/zh/docs/reference/config/security/request_authentication/>RequestAuthentication</a></li><li role=none><a role=treeitem title="Configuration for access control on workloads." href=/v1.17/zh/docs/reference/config/security/authorization-policy/>Authorization Policy</a></li><li role=none><a role=treeitem title=授权策略中支持的条件。 href=/v1.17/zh/docs/reference/config/security/conditions/>授权策略</a></li><li role=none><a role=treeitem title=受支持的约束条件和属性。 href=/v1.17/zh/docs/reference/config/security/constraints-and-properties/>RBAC 约束和属性(不建议使用)</a></li></ul></li><li role=none><a role=treeitem title="通过 Istio 遥测导出的 Istio 标准指标。" href=/v1.17/zh/docs/reference/config/metrics/>Istio 标准指标</a></li><li role=treeitem aria-label=常见类型><button aria-hidden=true tabindex=-1></button><a title="描述 Istio API 中的常见类型。" href=/v1.17/zh/docs/reference/config/type/>常见类型</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Definition of a workload selector." href=/v1.17/zh/docs/reference/config/type/workload-selector/>Workload Selector</a></li></ul></li><li role=none><a role=treeitem title="Resource annotations used by Istio." href=/v1.17/zh/docs/reference/config/annotations/>Resource Annotations</a></li><li role=none><a role=treeitem title="Resource labels used by Istio." href=/v1.17/zh/docs/reference/config/labels/>Resource Labels</a></li><li role=treeitem aria-label=配置分析消息><button aria-hidden=true tabindex=-1></button><a title=记录配置分析期间产生的各个错误和警告消息。 href=/v1.17/zh/docs/reference/config/analysis/>配置分析消息</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0136/>AlphaAnnotation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/message-format/>Analyzer Message Format</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0109/>ConflictingMeshGatewayVirtualServiceHosts</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0110/>ConflictingSidecarWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0116/>DeploymentAssociatedToMultipleServices</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0137/>DeploymentConflictingPorts</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0117/>DeploymentRequiresServiceAssociated</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0002/>Deprecated</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0135/>DeprecatedAnnotation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0153/>EnvoyFilterUsesAddOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0151/>EnvoyFilterUsesRelativeOperation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0155/>EnvoyFilterUsesRelativeOperationWithProxyVersion</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0154/>EnvoyFilterUsesRemoveOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0152/>EnvoyFilterUsesReplaceOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0150/>ExternalNameServiceTypeInvalidPortName</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0104/>GatewayPortNotOnWorkload</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0001/>InternalError</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0125/>InvalidAnnotation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0144/>InvalidApplicationUID</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0122/>InvalidRegexp</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0105/>IstioProxyImageMismatch</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0119/>JwtFailureDueToInvalidServicePortPrefix</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0107/>MisplacedAnnotation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0113/>MTLSPolicyConflict</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0111/>MultipleSidecarsWithoutWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0123/>NamespaceMultipleInjectionLabels</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0102/>NamespaceNotInjected</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0127/>NoMatchingWorkloadsFound</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0128/>NoServerCertificateVerificationDestinationLevel</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0129/>NoServerCertificateVerificationPortLevel</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0103/>PodMissingProxy</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0118/>PortNameIsNotUnderNamingConvention</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0101/>ReferencedResourceNotFound</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0106/>SchemaValidationError</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0108/>UnknownAnnotation</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0112/>VirtualServiceDestinationPortSelectorRequired</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0132/>VirtualServiceHostNotFoundInGateway</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0131/>VirtualServiceIneffectiveMatch</a></li><li role=none><a role=treeitem title href=/v1.17/zh/docs/reference/config/analysis/ist0130/>VirtualServiceUnreachableRule</a></li></ul></li></ul></li><li role=treeitem aria-label=命令><button aria-hidden=true tabindex=-1></button><a title="描述 Istio 命令和工具的用法及选项。" href=/v1.17/zh/docs/reference/commands/>命令</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Install and configure Istio CNI plugin on a node, detect and repair pod which is broken by race condition." href=/v1.17/zh/docs/reference/commands/install-cni/>install-cni</a></li><li role=none><a role=treeitem title="Istio control interface." href=/v1.17/zh/docs/reference/commands/istioctl/>istioctl</a></li><li role=none><a role=treeitem title="The Istio operator." href=/v1.17/zh/docs/reference/commands/operator/>operator</a></li><li role=none><a role=treeitem title="Istio Pilot agent." href=/v1.17/zh/docs/reference/commands/pilot-agent/>pilot-agent</a></li><li role=none><a role=treeitem title="Istio Pilot." href=/v1.17/zh/docs/reference/commands/pilot-discovery/>pilot-discovery</a></li></ul></li><li role=none><a role=treeitem title="Istio 常用术语的词汇表。" href=/v1.17/zh/docs/reference/glossary/>术语表</a></li></ul></li></ul></div></div></div></nav></div><div class=article-container><button id=sidebar-toggle class=main-navigation-toggle aria-label="Open sidebar"><svg class="icon hamburger-sidebar"><use xlink:href="/v1.17/img/icons.svg#hamburger-sidebar"/></svg>
|
||
目录</button><article aria-labelledby=title><nav aria-label=Breadcrumb><ol><li><a href=/v1.17/zh/docs/ title="了解如何部署、使用和运维 Istio。">文档</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.17/img/icons.svg#breadcrumb-arrow"/></svg></li><li><a href=/v1.17/zh/docs/concepts/ title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。">概念</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.17/img/icons.svg#breadcrumb-arrow"/></svg></li><li>安全</li></ol></nav><div class=title-area><div style=width:100%><h1 id=title>安全</h1><p class=byline><span class=reading-time title="1398 字"><svg class="icon clock"><use xlink:href="/v1.17/img/icons.svg#clock"/></svg><span> </span>阅读大约需要 7 分钟</span>
|
||
<span> </span>
|
||
<span><a href=https://github.com/istio/istio.io/tree/master/README.md#testing-document-content title=这个页面没有自动测试可用,点击详情或帮助创建一个。><svg class="icon cancel-grey"><use xlink:href="/v1.17/img/icons.svg#cancel-grey"/></svg><span> </span>
|
||
页面测试</a></span></p></div></div><nav class=toc-inlined aria-label="Table of Contents"><div><hr><ol><li role=none aria-label=高层架构><a href=#high-level-architecture>高层架构</a><li role=none aria-label="Istio 身份"><a href=#istio-identity>Istio 身份</a><li role=none aria-label=身份和证书管理><a href=#PKI>身份和证书管理</a><li role=none aria-label=认证><a href=#authentication>认证</a><ol><li role=none aria-label="双向 TLS 认证"><a href=#mutual-TLS-authentication>双向 TLS 认证</a><ol><li role=none aria-label=宽容模式><a href=#permissive-mode>宽容模式</a><li role=none aria-label=安全命名><a href=#secure-naming>安全命名</a></ol></li><li role=none aria-label=认证架构><a href=#authentication-architecture>认证架构</a><li role=none aria-label=认证策略><a href=#authentication-policies>认证策略</a><ol><li role=none aria-label=策略存储><a href=#policy-storage>策略存储</a><li role=none aria-label="Selector 字段"><a href=#selector-field>Selector 字段</a><li role=none aria-label="Peer authentication"><a href=#peer-authentication>Peer authentication</a><li role=none aria-label="Request authentication"><a href=#request-authentication>Request authentication</a><li role=none aria-label=Principals><a href=#principals>Principals</a></ol></li><li role=none aria-label=更新认证策略><a href=#updating-authentication-policies>更新认证策略</a></ol></li><li role=none aria-label=授权><a href=#authorization>授权</a><ol><li role=none aria-label=授权架构><a href=#authorization-architecture>授权架构</a><li role=none aria-label=隐式启用><a href=#implicit-enablement>隐式启用</a><li role=none aria-label=授权策略><a href=#authorization-policies>授权策略</a><ol><li role=none aria-label=策略目标><a href=#policy-target>策略目标</a><li role=none aria-label=值匹配><a href=#value-matching>值匹配</a><li role=none aria-label=排除匹配><a href=#exclusion-matching>排除匹配</a><li role=none aria-label="allow-nothing、deny-all 和 allow-all 策略"><a href=#allow-nothing-deny-all-and-allow-all-policy><code>allow-nothing</code>、<code>deny-all</code> 和 <code>allow-all</code> 策略</a><li role=none aria-label=自定义条件><a href=#custom-conditions>自定义条件</a><li role=none aria-label=认证与未认证身份><a href=#authenticated-and-unauthenticated-identity>认证与未认证身份</a></ol></li><li role=none aria-label="在普通 TCP 协议上使用 Istio 授权"><a href=#using-Istio-authorization-on-plain-TCP-protocols>在普通 TCP 协议上使用 Istio 授权</a><li role=none aria-label="对双向 TLS 的依赖"><a href=#dependency-on-mutual-TLS>对双向 TLS 的依赖</a></ol></li><li role=none aria-label=学习更多><a href=#learn-more>学习更多</a><li role=none aria-label=相关内容><a href=#see-also>相关内容</a></li></ol><hr></div></nav><p>将单一应用程序分解为微服务可提供各种好处,包括更好的灵活性、可伸缩性以及服务复用的能力。但是,微服务也有特殊的安全需求:</p><ul><li>为了抵御中间人攻击,需要流量加密。</li><li>为了提供灵活的服务访问控制,需要双向 TLS 和细粒度的访问策略。</li><li>要确定谁在什么时候做了什么,需要审计工具。</li></ul><p>Istio Security 尝试提供全面的安全解决方案来解决所有这些问题。本页概述了如何使用 Istio 的安全功能来保护您的服务,无论您在何处运行它们。特别是 Istio 安全性可以减轻针对您的数据、端点、通信和平台的内部和外部威胁。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:56.25%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/overview.svg title=安全概述><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/overview.svg alt=安全概述></a></div><figcaption>安全概述</figcaption></figure><p>Istio 安全功能提供强大的身份,强大的策略,透明的 TLS 加密,认证,授权和审计(AAA)工具来保护你的服务和数据。Istio 安全的目标是:</p><ul><li>默认安全:应用程序代码和基础设施无需更改</li><li>深度防御:与现有安全系统集成以提供多层防御</li><li>零信任网络:在不受信任的网络上构建安全解决方案</li></ul><p>请访问我们的<a href=/v1.17/zh/docs/tasks/security/authentication/mtls-migration/>双向 TLS 迁移</a>相关文章,开始在已部署的服务中使用 Istio 安全功能。
|
||
请访问我们的<a href=/v1.17/zh/docs/tasks/security/>安全任务</a>,以获取有关使用安全功能的详细说明。</p><h2 id=high-level-architecture>高层架构</h2><p>Istio 中的安全性涉及多个组件:</p><ul><li><p>用于密钥和证书管理的证书颁发机构(CA)</p></li><li><p>配置 API 服务器分发给代理:</p><ul><li><a href=/v1.17/zh/docs/concepts/security/#authentication-policies>认证策略</a></li><li><a href=/v1.17/zh/docs/concepts/security/#authorization-policies>授权策略</a></li><li><a href=/v1.17/zh/docs/concepts/security/#secure-naming>安全命名信息</a></li></ul></li><li><p>Sidecar 和边缘代理作为 <a href=https://www.jerichosystems.com/technology/glossaryterms/policy_enforcement_point.html>Policy Enforcement Points</a>(PEPs) 以保护客户端和服务器之间的通信安全.</p></li><li><p>一组 Envoy 代理扩展,用于管理遥测和审计</p></li></ul><p>控制面处理来自 API server 的配置,并且在数据面中配置 PEPs。PEPs 用 Envoy 实现。下图显示了架构。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:47.54566412484483%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/arch-sec.svg title=安全架构><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/arch-sec.svg alt=安全架构></a></div><figcaption>安全架构</figcaption></figure><p>在下面的部分中,我们将详细介绍 Istio 安全功能。</p><h2 id=istio-identity>Istio 身份</h2><p>身份是任何安全基础架构的基本概念。在工作负载间通信开始时,双方必须交换包含身份信息的凭证以进行双向验证。在客户端,根据<a href=/v1.17/zh/docs/concepts/security/#secure-naming>安全命名</a>信息检查服务器的标识,以查看它是否是该服务的授权运行程序。在服务器端,服务器可以根据<a href=/v1.17/zh/docs/concepts/security/#authorization-policies>授权策略</a>确定客户端可以访问哪些信息,审计谁在什么时间访问了什么,根据他们使用的工作负载向客户收费,并拒绝任何未能支付账单的客户访问工作负载。</p><p>Istio 身份模型使用 <code>service identity</code> (服务身份)来确定一个请求源端的身份。这种模型有极好的灵活性和粒度,可以用服务身份来标识人类用户、单个工作负载或一组工作负载。在没有服务身份的平台上,Istio 可以使用其它可以对服务实例进行分组的身份,例如服务名称。</p><p>下面的列表展示了在不同平台上可以使用的服务身份:</p><ul><li>Kubernetes: Kubernetes service account</li><li>GKE/GCE: GCP service account</li><li>本地(非 Kubernetes):用户帐户、自定义服务帐户、服务名称、Istio 服务帐户或 GCP 服务帐户。自定义服务帐户引用现有服务帐户,就像客户的身份目录管理的身份一样。</li></ul><h2 id=PKI>身份和证书管理</h2><p>Istio PKI 使用 X.509 证书为每个工作负载都提供强大的身份标识。<code>istio-agent</code> 与每个 Envoy 代理一起运行,与 <code>istiod</code> 一起协作来自动化的进行大规模密钥和证书轮换。下图显示了这个机制的运行流程。</p><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.17/img/icons.svg#callout-tip"/></svg></div><div class=content>译者注:这里用 <code>istio-agent</code> 来表述,是因为下图及对图的相关解读中反复用到了 “Istio agent” 这个术语,这样的描述更容易理解。
|
||
另外,在实现层面,<code>istio-agent</code> 是指 sidecar 容器中的 <code>pilot-agent</code> 进程,它有很多功能,这里不表,只特别提一下:它通过 Unix socket 的方式在本地提供 SDS 服务供 Envoy 使用,这个信息对了解 Envoy 与 SDS 之间的交互有意义。</div></aside></div><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:91.58709730986384%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/id-prov.svg title=身份供应><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/id-prov.svg alt=身份供应></a></div><figcaption>身份供应</figcaption></figure><p>Istio 通过以下流程提供密钥和证书:</p><ol><li><code>istiod</code> 提供 gRPC 服务以接受<a href=https://en.wikipedia.org/wiki/Certificate_signing_request>证书签名请求</a>(CSRs)。</li><li><code>istio-agent</code> 在启动时创建私钥和 CSR,然后将 CSR 及其凭据发送到 <code>istiod</code> 进行签名。</li><li><code>istiod</code> CA 验证 CSR 中携带的凭据,成功验证后签署 CSR 以生成证书。</li><li>当工作负载启动时,Envoy 通过<a href=https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret#secret-discovery-service-sds>秘密发现服务(SDS)</a>API 向同容器内的 <code>istio-agent</code> 发送证书和密钥请求。</li><li><code>istio-agent</code> 通过 Envoy SDS API 将从 <code>istiod</code> 收到的证书和密钥发送给 Envoy。</li><li><code>istio-agent</code> 监控工作负载证书的过期时间。上述过程会定期重复进行证书和密钥轮换。</li></ol><h2 id=authentication>认证</h2><p>Istio 提供两种类型的认证:</p><ul><li><p>Peer authentication:用于服务到服务的认证,以验证建立连接的客户端。Istio 提供<a href=https://en.wikipedia.org/wiki/Mutual_authentication>双向 TLS</a> 作为传输认证的全栈解决方案,无需更改服务代码就可以启用它。这个解决方案:</p><ul><li>为每个服务提供强大的身份,表示其角色,以实现跨群集和云的互操作性。</li><li>保护服务到服务的通信。</li><li>提供密钥管理系统,以自动进行密钥和证书的生成,分发和轮换。</li></ul></li><li><p>Request authentication:用于终端用户认证,以验证附加到请求的凭据。 Istio 使用 JSON Web Token(JWT)验证启用请求级认证,并使用自定义认证实现或任何 OpenID Connect 的认证实现(例如下面列举的)来简化的开发人员体验。</p><ul><li><a href=https://www.ory.sh/>ORY Hydra</a></li><li><a href=https://www.keycloak.org/>Keycloak</a></li><li><a href=https://auth0.com/>Auth0</a></li><li><a href=https://firebase.google.com/docs/auth/>Firebase Auth</a></li><li><a href=https://developers.google.com/identity/protocols/OpenIDConnect>Google Auth</a></li></ul></li></ul><p>在所有情况下,Istio 都通过自定义 Kubernetes API 将认证策略存储在 <code>Istio config store</code>。<span class=term data-title=Istiod data-body='<p>Istiod 组件是单体 Control Plane 二进制的组合体,封装了 Pilot、Galley、Citadel 和 Sidecar 注入器的功能。</p>
|
||
<p><a href="/zh/blog/2020/istiod/">更多关于 Istiod</a>。</p>
|
||
'>Istiod</span> 使每个代理保持最新状态,并在适当时提供密钥。此外,Istio 的认证机制支持宽容模式(permissive mode),以帮助您在强制实施前了解策略更改将如何影响您的安全状况。</p><h3 id=mutual-TLS-authentication>双向 TLS 认证</h3><p>Istio 通过客户端和服务器端 PEPs 建立服务到服务的通信通道,PEPs 被实现为<a href=https://www.envoyproxy.io/>Envoy 代理</a>。当一个工作负载使用双向 TLS 认证向另一个工作负载发送请求时,该请求的处理方式如下:</p><ol><li>Istio 将出站流量从客户端重新路由到客户端的本地 sidecar Envoy。</li><li>客户端 Envoy 与服务器端 Envoy 开始双向 TLS 握手。在握手期间,客户端 Envoy 还做了<a href=/v1.17/zh/docs/concepts/security/#secure-naming>安全命名</a>检查,以验证服务器证书中显示的服务帐户是否被授权运行目标服务。</li><li>客户端 Envoy 和服务器端 Envoy 建立了一个双向的 TLS 连接,Istio 将流量从客户端 Envoy 转发到服务器端 Envoy。</li><li>服务器端 Envoy 授权请求。如果获得授权,它将流量转发到通过本地 TCP 连接的后端服务。</li></ol><p>Istio 将 <code>TLSv1_2</code> 作为最低 TLS 版本为客户端和服务器配置了如下的加密套件:</p><ul><li><p><code>ECDHE-ECDSA-AES256-GCM-SHA384</code></p></li><li><p><code>ECDHE-RSA-AES256-GCM-SHA384</code></p></li><li><p><code>ECDHE-ECDSA-AES128-GCM-SHA256</code></p></li><li><p><code>ECDHE-RSA-AES128-GCM-SHA256</code></p></li><li><p><code>AES256-GCM-SHA384</code></p></li><li><p><code>AES128-GCM-SHA256</code></p></li></ul><h4 id=permissive-mode>宽容模式</h4><p>Istio 双向 TLS 具有一个宽容模式(permissive mode),允许服务同时接受纯文本流量和双向 TLS 流量。这个功能极大的提升了双向 TLS 的入门体验。</p><p>在运维人员希望将服务移植到启用了双向 TLS 的 Istio 上时,许多非 Istio 客户端和非 Istio 服务端通信时会产生问题。通常情况下,运维人员无法同时为所有客户端安装 Istio sidecar,甚至没有这样做的权限。即使在服务端上安装了 Istio sidecar,运维人员也无法在不中断现有连接的情况下启用双向 TLS。</p><p>启用宽容模式后,服务可以同时接受纯文本和双向 TLS 流量。这个模式为入门提供了极大的灵活性。服务中安装的 Istio sidecar 立即接受双向 TLS 流量而不会打断现有的纯文本流量。因此,运维人员可以逐步安装和配置客户端 Istio sidecar 发送双向 TLS 流量。一旦客户端配置完成,运维人员便可以将服务端配置为仅 TLS 模式。更多信息请访问<a href=/v1.17/zh/docs/tasks/security/authentication/mtls-migration>双向 TLS 迁移向导</a>。</p><h4 id=secure-naming>安全命名</h4><p>服务器身份(Server identities)被编码在证书里,但服务名称(service names)通过服务发现或 DNS 被检索。安全命名信息将服务器身份映射到服务名称。身份 <code>A</code> 到服务名称 <code>B</code> 的映射表示“授权 <code>A</code> 运行服务 <code>B</code>"。控制平面监视 <code>apiserver</code>,生成安全命名映射,并将其安全地分发到 PEPs。 以下示例说明了为什么安全命名对身份验证至关重要。</p><p>假设运行服务 <code>datastore</code> 的合法服务器仅使用 <code>infra-team</code> 身份。恶意用户拥有 <code>test-team</code> 身份的证书和密钥。恶意用户打算模拟合法服务以检查从客户端发送的数据。恶意用户使用证书和 <code>test-team</code> 身份的密钥部署伪造服务器。假设恶意用户成功劫持(通过 DNS 欺骗、BGP/路由劫持、ARP 欺骗等)发送到 <code>datastore</code> 的流量并将其重定向到伪造的服务器。</p><p>当客户端调用 <code>datastore</code> 服务时,它从服务器的证书中提取 <code>test-team</code> 身份,并用安全命名信息检查 <code>test-team</code> 是否被允许运行 <code>datastore</code>。客户端检测到 <code>test-team</code> 不允许运行 <code>datastore</code> 服务,认证失败。</p><p>请注意,对于非 HTTP/HTTPS 流量,安全命名不能保护其免于 DNS 欺骗,如攻击者劫持了 DNS 并修改了目的地的 IP 地址。这是因为 TCP 流量不包含主机名信息,Envoy 只能依靠目的地 IP 地址进行路由, 因此 Envoy 有可能将流量路由到劫持 IP 地址所在的服务上。这种 DNS 欺骗甚至可以在客户端 Envoy 接收到流量之前发生。</p><h3 id=authentication-architecture>认证架构</h3><p>您可以使用 peer 和 request 认证策略为在 Istio 网格中接收请求的工作负载指定认证要求。网格运维人员使用 <code>.yaml</code> 文件来指定策略。部署后,策略将保存在 Istio 配置存储中。Istio 控制器监视配置存储。</p><p>在任何的策略变更时,新策略都会转换为适当的配置,告知 PEP 如何执行所需的认证机制。控制平面可以获取公钥并将其附加到 JWT 验证的配置中。或者,Istiod 提供了 Istio 系统管理的密钥和证书的路径,并将它们安装到应用程序 pod 用于双向 TLS。您可以在 <a href=/v1.17/zh/docs/concepts/security/#PKI>PKI 部分</a>中找到更多信息。</p><p>Istio 异步发送配置到目标端点。代理收到配置后,新的认证要求会立即生效。</p><p>发送请求的客户端服务负责遵循必要的认证机制。对于 request 认证,应用程序负责获取 JWT 凭证并将其附加到请求。对于 peer 认证,Istio 自动将两个 PEP 之间的所有流量升级为双向 TLS。如果认证策略禁用了双向 TLS 模式,则 Istio 将继续在 PEPs 之间使用纯文本。要覆盖此行为,请使用 <a href=/v1.17/zh/docs/concepts/traffic-management/#destination-rules>destination rules</a>显式禁用双向 TLS 模式。您可以在<a href=/v1.17/zh/docs/concepts/security/#mutual-TLS-authentication>双向 TLS 认证</a> 中找到有关双向 TLS 如何工作的更多信息。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:69.53840153094185%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/authn.svg title=认证架构><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/authn.svg alt=认证架构></a></div><figcaption>认证架构</figcaption></figure><p>Istio 将两种类型的身份验证以及凭证中的其他声明(如果适用)输出到下一层:<a href=/v1.17/zh/docs/concepts/security/#authorization>授权</a>。</p><h3 id=authentication-policies>认证策略</h3><p>本节中提供了更多 Istio 认证策略方面的细节。正如<a href=/v1.17/zh/docs/concepts/security/#authentication-architecture>认证架构</a>中所说的,认证策略是对服务收到的请求生效的。要在双向 TLS 中指定客户端认证策略,需要在 <code>DetinationRule</code> 中设置 <code>TLSSettings</code>。<a href=/v1.17/zh/docs/reference/config/networking/destination-rule/#TLSSettings>TLS 设置参考文档</a>中有更多这方面的信息。</p><p>和其他的 Istio 配置一样,可以用 <code>.yaml</code> 文件的形式来编写认证策略。部署策略使用 <code>kubectl</code>。
|
||
下面例子中的认证策略要求:与带有 <code>app:reviews</code> 标签的工作负载的传输层认证,必须使用双向 TLS:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: "security.istio.io/v1beta1"
|
||
kind: "PeerAuthentication"
|
||
metadata:
|
||
name: "example-peer-policy"
|
||
namespace: "foo"
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: reviews
|
||
mtls:
|
||
mode: STRICT
|
||
</code></pre><h4 id=policy-storage>策略存储</h4><p>Istio 将网格范围的策略存储在根命名空间。这些策略使用一个空的 selector 适用于网格中的所有工作负载。具有名称空间范围的策略存储在相应的名称空间中。它们仅适用于其命名空间内的工作负载。如果你配置了 <code>selector</code> 字段,则认证策略仅适用于与您配置的条件匹配的工作负载。</p><p>Peer 和 request 认证策略用 kind 字段区分,分别是 <code>PeerAuthentication</code> 和 <code>RequestAuthentication</code>。</p><h4 id=selector-field>Selector 字段</h4><p>Peer 和 request 认证策略使用 <code>selector</code> 字段来指定该策略适用的工作负载的标签。以下示例显示适用于带有 <code>app:product-page</code> 标签的工作负载的策略的 selector 字段:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>selector:
|
||
matchLabels:
|
||
app: product-page
|
||
</code></pre><p>如果您没有为 <code>selector</code> 字段提供值,则 Istio 会将策略与策略存储范围内的所有工作负载进行匹配。因此,<code>selector</code> 字段可帮助您指定策略的范围:</p><ul><li>网格范围策略:为根名称空间指定的策略,不带或带有空的 <code>selector</code> 字段。</li><li>命名空间范围的策略:为非root命名空间指定的策略,不带有或带有空的 <code>selector</code> 字段。</li><li>特定于工作负载的策略:在常规名称空间中定义的策略,带有非空 <code>selector</code> 字段。</li></ul><p>Peer 和 request 认证策略对 <code>selector</code> 字段遵循相同的层次结构原则,但是 Istio 以略有不同的方式组合和应用它们。</p><p>只能有一个网格范围的 Peer 认证策略,每个命名空间也只能有一个命名空间范围的 Peer 认证策略。当您为同一网格或命名空间配置多个网格范围或命名空间范围的 Peer 认证策略时,Istio 会忽略较新的策略。当多个特定于工作负载的 Peer 认证策略匹配时,Istio 将选择最旧的策略。</p><p>Istio 按照以下顺序为每个工作负载应用最窄的匹配策略:</p><ol><li>特定于工作负载的</li><li>命名空间范围</li><li>网格范围</li></ol><p>Istio 可以将所有匹配的 request 认证策略组合起来,就像它们来自单个 request 认证策略一样。因此,您可以在网格或名称空间中配置多个网格范围或命名空间范围的策略。但是,避免使用多个网格范围或命名空间范围的 request 认证策略仍然是一个好的实践。</p><h4 id=peer-authentication>Peer authentication</h4><p>Peer 认证策略指定 Istio 对目标工作负载实施的双向 TLS 模式。支持以下模式:</p><ul><li>PERMISSIVE:工作负载接受双向 TLS 和纯文本流量。此模式在迁移因为没有 sidecar 而无法使用双向 TLS 的工作负载的过程中非常有用。一旦工作负载完成 sidecar 注入的迁移,应将模式切换为 STRICT。</li><li>STRICT: 工作负载仅接收双向 TLS 流量。</li><li>DISABLE:禁用双向 TLS。 从安全角度来看,除非您提供自己的安全解决方案,否则请勿使用此模式。</li></ul><p>如果未设置模式,将继承父作用域的模式。未设置模式的网格范围的 peer 认证策略默认使用 <code>PERMISSIVE</code> 模式。</p><p>下面的 peer 认证策略要求命名空间 <code>foo</code> 中的所有工作负载都使用双向 TLS:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: "security.istio.io/v1beta1"
|
||
kind: "PeerAuthentication"
|
||
metadata:
|
||
name: "example-policy"
|
||
namespace: "foo"
|
||
spec:
|
||
mtls:
|
||
mode: STRICT
|
||
</code></pre><p>对于特定于工作负载的 peer 认证策略,可以为不同的端口指定不同的双向 TLS 模式。您只能将端口范围的双向 TLS 配置在工作负载声明过的端口上。以下示例为 <code>app:example-app</code> 工作负载禁用了端口80上的双向TLS,并对所有其他端口使用名称空间范围的 peer 认证策略的双向 TLS 设置:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: "security.istio.io/v1beta1"
|
||
kind: "PeerAuthentication"
|
||
metadata:
|
||
name: "example-workload-policy"
|
||
namespace: "foo"
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: example-app
|
||
portLevelMtls:
|
||
80:
|
||
mode: DISABLE
|
||
</code></pre><p>上面的 peer 认证策略仅在有如下 Service 定义时工作,将流向 <code>example-service</code> 服务的请求绑定到 <code>example-app</code> 工作负载的 <code>80</code> 端口</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: example-service
|
||
namespace: foo
|
||
spec:
|
||
ports:
|
||
- name: http
|
||
port: 8000
|
||
protocol: TCP
|
||
targetPort: 80
|
||
selector:
|
||
app: example-app
|
||
</code></pre><h4 id=request-authentication>Request authentication</h4><p>Request 认证策略指定验证 JSON Web Token(JWT)所需的值。 这些值包括:</p><ul><li>token 在请求中的位置</li><li>请求的 issuer</li><li>公共 JSON Web Key Set(JWKS)</li></ul><p>Istio 会根据 request 认证策略中的规则检查提供的令牌(如果已提供),并拒绝令牌无效的请求。当请求不带有令牌时,默认情况下将接受它们。要拒绝没有令牌的请求,请提供授权规则,该规则指定对特定操作(例如,路径或操作)的限制。</p><p>如果 Request 认证策略使用唯一的位置,则它们可以指定多个JWT。当多个策略与工作负载匹配时,Istio 会将所有规则组合起来,就好像它们被指定为单个策略一样。此行为对于开发接受来自不同 JWT 提供者的工作负载时很有用。但是,不支持具有多个有效 JWT 的请求,因为此类请求的输出主体未定义。</p><h4 id=principals>Principals</h4><p>使用 peer 认证策略和双向 TLS 时,Istio 将身份从 peer 认证提取到 <code>source.principal</code> 中。同样,当您使用 request 认证策略时,Istio 会将 JWT 中的身份赋值给 <code>request.auth.principal</code>。使用这些 principals 设置授权策略和作为遥测的输出。</p><h3 id=updating-authentication-policies>更新认证策略</h3><p>您可以随时更改认证策略,Istio 几乎实时将新策略推送到工作负载。但是,Istio 无法保证所有工作负载都同时收到新政策。以下建议有助于避免在更新认证策略时造成干扰:</p><ul><li>将 peer 认证策略的模式从 <code>DISABLE</code> 更改为 <code>STRICT</code> 时,请使用 <code>PERMISSIVE</code> 模式来过渡,反之亦然。当所有工作负载成功切换到所需模式时,您可以将策略应用于最终模式。您可以使用 Istio 遥测技术来验证工作负载已成功切换。</li><li>将 request 认证策略从一个 JWT 迁移到另一个 JWT 时,将新 JWT 的规则添加到该策略中,而不删除旧规则。这样,工作负载接受两种类型的 JWT,当所有流量都切换到新的 JWT 时,您可以删除旧规则。但是,每个 JWT 必须使用不同的位置。</li></ul><h2 id=authorization>授权</h2><p>Istio 的授权功能为网格中的工作负载提供网格、命名空间和工作负载级别的访问控制。这种控制层级提供了以下优点:</p><ul><li>工作负载间和最终用户到工作负载的授权。</li><li>一个简单的 API:它包括一个单独的并且很容易使用和维护的 <a href=/v1.17/zh/docs/reference/config/security/authorization-policy/><code>AuthorizationPolicy</code> CRD</a>。</li><li>灵活的语义:运维人员可以在 Istio 属性上定义自定义条件,并使用 DENY 和 ALLOW 动作。</li><li>高性能:Istio 授权是在 Envoy 本地强制执行的。</li><li>高兼容性:原生支持 HTTP、HTTPS 和 HTTP2,以及任意普通 TCP 协议。</li></ul><h3 id=authorization-architecture>授权架构</h3><p>授权策略对服务器端 Envoy 代理的入站流量实施访问控制。每个 Envoy 代理都运行一个授权引擎,该引擎在运行时授权请求。当请求到达代理时,授权引擎根据当前授权策略评估请求上下文,并返回授权结果 <code>ALLOW</code> 或 <code>DENY</code>。
|
||
运维人员使用 <code>.yaml</code> 文件指定 Istio 授权策略。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:50.38227195500615%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/authz.svg title=授权架构><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/authz.svg alt=授权架构></a></div><figcaption>授权架构</figcaption></figure><h3 id=implicit-enablement>隐式启用</h3><p>您无需显式启用 Istio 的授权功能;它们在安装之后可用。要对您的工作负载实施访问控制,您需要应用授权策略。</p><p>对于没有应用授权策略的工作负载,Istio 允许所有请求。</p><p>授权策略支持 <code>ALLOW</code>、<code>DENY</code> 和 <code>CUSTOM</code> 操作。您可以根据需要应用多个策略,每个策略具有不同的操作,以确保对工作负载的访问安全。</p><p>Istio 按以下顺序检查层中的匹配策略:<code>CUSTOM</code>、<code>DENY</code>,然后是 <code>ALLOW</code>。对于每种类型的操作,Istio 首先检查是否有策略的操作已被应用,然后检查请求是否匹配策略的规则。如果请求与其中一层中的策略不匹配,则检查将继续到下一层。</p><p>下图详细显示了策略优先级:</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:111.2994350282486%><a data-skipendnotes=true href=/v1.17/zh/docs/concepts/security/authz-eval.png title=授权策略优先级><img class=element-to-stretch src=/v1.17/zh/docs/concepts/security/authz-eval.png alt=授权策略优先级></a></div><figcaption>授权策略优先级</figcaption></figure><p>当您将多个授权策略应用于同一工作负载时,Istio 会累加地应用它们。</p><h3 id=authorization-policies>授权策略</h3><p>要配置授权策略,请创建一个 <a href=/v1.17/zh/docs/reference/config/security/authorization-policy/><code>AuthorizationPolicy</code> 自定义资源</a>。
|
||
一个授权策略包括选择器(selector),动作(action) 和一个规则(rules)列表:</p><ul><li><code>selector</code> 字段指定策略的目标</li><li><code>action</code> 字段指定允许还是拒绝请求</li><li><code>rules</code> 指定何时触发动作<ul><li><code>rules</code> 下的 <code>from</code> 字段指定请求的来源</li><li><code>rules</code> 下的 <code>to</code> 字段指定请求的操作</li><li><code>rules</code> 下的 <code>when</code> 字段指定应用规则所需的条件</li></ul></li></ul><p>以下示例显示了一个授权策略,该策略允许两个源(服务帐号 <code>cluster.local/ns/default/sa/sleep</code> 和命名空间 <code>dev</code>),在使用有效的 JWT 令牌发送请求时,可以访问命名空间 foo 中的带有标签 <code>app: httpbin</code> 和 <code>version: v1</code> 的工作负载。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: httpbin
|
||
namespace: foo
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: httpbin
|
||
version: v1
|
||
action: ALLOW
|
||
rules:
|
||
- from:
|
||
- source:
|
||
principals: ["cluster.local/ns/default/sa/sleep"]
|
||
- source:
|
||
namespaces: ["dev"]
|
||
to:
|
||
- operation:
|
||
methods: ["GET"]
|
||
when:
|
||
- key: request.auth.claims[iss]
|
||
values: ["https://accounts.google.com"]
|
||
</code></pre><p>下例显示了一个授权策略,如果请求来源不是命名空间 <code>foo</code>,请求将被拒绝。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: httpbin-deny
|
||
namespace: foo
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: httpbin
|
||
version: v1
|
||
action: DENY
|
||
rules:
|
||
- from:
|
||
- source:
|
||
notNamespaces: ["foo"]
|
||
</code></pre><p>拒绝策略优先于允许策略。如果请求同时匹配上允许策略和拒绝策略,请求将被拒绝。Istio 首先评估拒绝策略,以确保允许策略不能绕过拒绝策略</p><h4 id=policy-target>策略目标</h4><p>您可以通过 <code>metadata/namespace</code> 字段和可选的 <code>selector</code> 字段来指定策略的范围或目标。<code>metadata/namespace</code> 告诉该策略适用于哪个命名空间。如果将其值设置为根名称空间,则该策略将应用于网格中的所有名称空间。根命名空间的值是可配置的,默认值为 <code>istio-system</code>。如果设置为任何其他名称空间,则该策略仅适用于指定的名称空间。</p><p>您可以使用 <code>selector</code> 字段来进一步限制策略以应用于特定工作负载。<code>selector</code> 使用标签选择目标工作负载。<code>slector</code> 包含 <code>{key: value}</code>对的列表,其中 <code>key</code> 是标签的名称。如果未设置,则授权策略将应用于与授权策略相同的命名空间中的所有工作负载。</p><p>以下示例策略 <code>allow-read</code> 允许对 <code>default</code> 命名空间中带有标签 <code>app: products</code> 的工作负载的 <code>"GET"</code> 和 <code>"HEAD"</code> 访问。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: allow-read
|
||
namespace: default
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: products
|
||
action: ALLOW
|
||
rules:
|
||
- to:
|
||
- operation:
|
||
methods: ["GET", "HEAD"]
|
||
</code></pre><h4 id=value-matching>值匹配</h4><p>授权策略中的大多数字段都支持以下所有匹配模式:</p><ul><li>完全匹配:即完整的字符串匹配。</li><li>前缀匹配:<code>"*"</code> 结尾的字符串。例如,<code>"test.abc.*"</code> 匹配 <code>"test.abc.com"</code>、<code>"test.abc.com.cn"</code>、<code>"test.abc.org"</code> 等等。</li><li>后缀匹配:<code>"*"</code> 开头的字符串。例如,<code>"*.abc.com"</code> 匹配 <code>"eng.abc.com"</code>、<code>"test.eng.abc.com"</code> 等等。</li><li>存在匹配:<code>*</code> 用于指定非空的任意内容。您可以使用格式 <code>fieldname: ["*"]</code> 指定必须存在的字段。这意味着该字段可以匹配任意内容,但是不能为空。请注意这与不指定字段不同,后者意味着匹配包括空的任意内容。</li></ul><p>有一些例外。 例如,以下字段仅支持完全匹配:</p><ul><li><code>when</code> 部分下的 <code>key</code> 字段</li><li><code>source</code> 部分下 的 <code>ipBlocks</code></li><li><code>to</code> 部分下的 <code>ports</code> 字段</li></ul><p>以下示例策略允许访问前缀为 <code>/test/*</code> 或后缀为 <code>*/info</code> 的路径。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: tester
|
||
namespace: default
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: products
|
||
action: ALLOW
|
||
rules:
|
||
- to:
|
||
- operation:
|
||
paths: ["/test/*", "*/info"]
|
||
</code></pre><h4 id=exclusion-matching>排除匹配</h4><p>为了匹配诸如 <code>when</code> 字段中的 <code>notValues</code>,<code>source</code> 字段中的 <code>notIpBlocks</code>,<code>to</code> 字段中的 <code>notPorts</code> 之类的否定条件,Istio 支持排除匹配。</p><p>以下示例:如果请求路径不是 <code>/healthz</code>,则要求从请求的 JWT 认证中导出的主体是有效的。
|
||
因此,该策略从 JWT 身份验证中排除对 <code>/healthz</code> 路径的请求:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: disable-jwt-for-healthz
|
||
namespace: default
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: products
|
||
action: ALLOW
|
||
rules:
|
||
- to:
|
||
- operation:
|
||
notPaths: ["/healthz"]
|
||
from:
|
||
- source:
|
||
requestPrincipals: ["*"]
|
||
</code></pre><p>下面的示例拒绝到 <code>/admin</code> 路径且不带请求主体的请求:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: enable-jwt-for-admin
|
||
namespace: default
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: products
|
||
action: DENY
|
||
rules:
|
||
- to:
|
||
- operation:
|
||
paths: ["/admin"]
|
||
from:
|
||
- source:
|
||
notRequestPrincipals: ["*"]
|
||
</code></pre><h4 id=allow-nothing-deny-all-and-allow-all-policy><code>allow-nothing</code>、<code>deny-all</code> 和 <code>allow-all</code> 策略</h4><p>以下示例显示了不匹配任何内容的 <code>ALLOW</code> 策略。如果没有其他 <code>ALLOW</code> 策略,请求将因“默认拒绝”行为被始终拒绝。</p><p>请注意,“默认拒绝”行为仅适用于工作负载随着 <code>ALLOW</code> 操作至少有一个授权策略的情况。</p><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.17/img/icons.svg#callout-tip"/></svg></div><div class=content>从 <code>allow-nothing</code> 策略开始并逐步添加更多 <code>ALLOW</code> 策略以开放对工作负载的更多访问权限是一种良好的安全实践。</div></aside></div><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: allow-nothing
|
||
spec:
|
||
action: ALLOW
|
||
# 若不指定 rules 字段,则策略将从不匹配。
|
||
</code></pre><p>以下示例显示了显式拒绝所有访问的 <code>DENY</code> 策略。
|
||
即使有另一个 <code>ALLOW</code> 策略允许请求,但由于 <code>DENY</code> 策略优先于 <code>ALLOW</code> 策略,所以将始终拒绝请求。
|
||
如果您要临时禁用对工作负载的所有访问,可以使用此策略。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: deny-all
|
||
spec:
|
||
action: DENY
|
||
# rules 字段有一个空白规则,策略将始终匹配。
|
||
rules:
|
||
- {}
|
||
</code></pre><p>以下示例显示了允许完全访问工作负载的 <code>ALLOW</code> 策略。
|
||
它将使得其他 <code>ALLOW</code> 策略无用,因为它将始终允许请求。
|
||
如果您要临时暴露工作负载的完全访问权限,可以使用此策略。
|
||
请注意,由于 <code>CUSTOM</code> 和 <code>DENY</code> 策略,请求可能仍被拒绝。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: allow-all
|
||
spec:
|
||
action: ALLOW
|
||
# 这将匹配所有内容。
|
||
rules:
|
||
- {}
|
||
</code></pre><h4 id=custom-conditions>自定义条件</h4><p>您还可以使用 <code>when</code> 部分指定其他条件。
|
||
例如,下面的 <code>AuthorizationPolicy</code> 定义包括以下条件:<code>request.headers [version]</code> 是 <code>v1</code> 或 <code>v2</code>。
|
||
在这种情况下,key 是 <code>request.headers [version]</code>,它是 Istio 属性 <code>request.headers</code>(是个字典)中的一项。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: httpbin
|
||
namespace: foo
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: httpbin
|
||
version: v1
|
||
action: ALLOW
|
||
rules:
|
||
- from:
|
||
- source:
|
||
principals: ["cluster.local/ns/default/sa/sleep"]
|
||
to:
|
||
- operation:
|
||
methods: ["GET"]
|
||
when:
|
||
- key: request.headers[version]
|
||
values: ["v1", "v2"]
|
||
</code></pre><p><a href=/v1.17/zh/docs/reference/config/security/conditions/>条件页面</a>中列出了支持的条件 <code>key</code> 值。</p><h4 id=authenticated-and-unauthenticated-identity>认证与未认证身份</h4><p>如果要使工作负载可公开访问,则需要将 <code>source</code> 部分留空。这允许来自所有(经过认证和未经认证)的用户和工作负载的源,例如:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: httpbin
|
||
namespace: foo
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: httpbin
|
||
version: v1
|
||
action: ALLOW
|
||
rules:
|
||
- to:
|
||
- operation:
|
||
methods: ["GET", "POST"]
|
||
</code></pre><p>要仅允许经过认证的用户,请将 <code>principal</code> 设置为 <code>"*"</code>,例如:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: httpbin
|
||
namespace: foo
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: httpbin
|
||
version: v1
|
||
action: ALLOW
|
||
rules:
|
||
- from:
|
||
- source:
|
||
principals: ["*"]
|
||
to:
|
||
- operation:
|
||
methods: ["GET", "POST"]
|
||
</code></pre><h3 id=using-Istio-authorization-on-plain-TCP-protocols>在普通 TCP 协议上使用 Istio 授权</h3><p>Istio 授权支持工作负载使用任意普通 TCP 协议,如 MongoDB。
|
||
在这种情况下,您可以按照与 HTTP 工作负载相同的方式配置授权策略。
|
||
不同之处在于某些字段和条件仅适用于 HTTP 工作负载。
|
||
这些字段包括:</p><ul><li>授权策略对象 <code>source</code> 部分中的 <code>request_principals</code> 字段</li><li>授权策略对象 <code>operation</code> 部分中的 <code>hosts</code>、<code>methods</code> 和 <code>paths</code> 字段</li></ul><p><a href=/v1.17/zh/docs/reference/config/security/conditions/>条件页面</a>中列出了支持的条件。
|
||
如果您在授权策略中对 TCP 工作负载使用了任何只适用于 HTTP 的字段,Istio 将会忽略它们。</p><p>假设您在端口 <code>27017</code> 上有一个 MongoDB 服务,下例配置了一个授权策略,只允许 Istio 网格中的 <code>bookinfo-ratings-v2</code> 服务访问该 MongoDB 工作负载。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: security.istio.io/v1
|
||
kind: AuthorizationPolicy
|
||
metadata:
|
||
name: mongodb-policy
|
||
namespace: default
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: mongodb
|
||
action: ALLOW
|
||
rules:
|
||
- from:
|
||
- source:
|
||
principals: ["cluster.local/ns/default/sa/bookinfo-ratings-v2"]
|
||
to:
|
||
- operation:
|
||
ports: ["27017"]
|
||
</code></pre><h3 id=dependency-on-mutual-TLS>对双向 TLS 的依赖</h3><p>Istio 使用双向 TLS 将某些信息从客户端安全地传递到服务器。在使用授权策略中的以下任何字段之前,必须先启用双向 TLS:</p><ul><li><code>source</code> 部分下的 <code>principals</code> 字段</li><li><code>source</code> 部分下的 <code>namespaces</code> 字段</li><li><code>source.principal</code> 自定义条件</li><li><code>source.namespace</code> 自定义条件</li></ul><p>请注意,强烈建议始终在 PeerAuthentication 中以 STRICT 双向 TLS 模式使用这些字段,
|
||
以避免在 PERMISSIVE 双向 TLS 模式中使用纯文本流量时可能出现的意外请求拒绝或绕过安全策略。</p><p>如果您无法启用严格的双向 TLS 模式,请查看<a href=/v1.17/zh/news/security/istio-security-2021-004>安全公告</a>以获取更多详细信息和替代方案。</p><h2 id=learn-more>学习更多</h2><p>在学习了上述基本概念之后,您还可以温习下述资料:</p><ul><li><p>按照<a href=/v1.17/zh/docs/tasks/security/authentication/authn-policy>身份验证</a>和<a href=/v1.17/zh/docs/tasks/security/authorization>授权</a>任务尝试使用安全策略。</p></li><li><p>了解一些可用于提高网格安全性的安全<a href=/v1.17/zh/docs/ops/configuration/security/security-policy-examples>策略示例</a>。</p></li><li><p>阅读<a href=/v1.17/zh/docs/ops/common-problems/security-issues/>常见问题</a>,以便在出现问题时更好地解决安全策略问题。</p></li></ul><nav id=see-also><h2>相关内容</h2><div class=see-also><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-http/>HTTP 流量</a></p><p class=desc>展示如何设置 HTTP 流量访问控制。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-tcp/>TCP 流量</a></p><p class=desc>展示如何设置 TCP 流量的访问控制。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-td-migration/>信任域迁移</a></p><p class=desc>阐述如何在不更改授权策略的前提下从一个信任域迁移到另一个。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-ingress/>入口网关</a></p><p class=desc>展示如何在入口网关上设置访问控制。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-custom/>外部授权</a></p><p class=desc>如何集成访问控制并将其委托给外部授权系统。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.17/zh/docs/tasks/security/authorization/authz-deny/>明确拒绝</a></p><p class=desc>如何设置访问控制以明确地拒绝流量。</p></div></div></nav></article><nav class=pagenav><div class=left><a title="讲述 Istio 的 WebAssembly 插件系统。" href=/v1.17/zh/docs/concepts/wasm/ class=next-link><svg class="icon left-arrow"><use xlink:href="/v1.17/img/icons.svg#left-arrow"/></svg>扩展性</a></div><div class=right><a title="描述 Istio 提供的遥测和监控特性。" href=/v1.17/zh/docs/concepts/observability/ class=next-link>可观测性<svg class="icon right-arrow"><use xlink:href="/v1.17/img/icons.svg#right-arrow"/></svg></a></div></nav><div id=feedback><div id=feedback-initial>这些信息有用吗?<br><button class="btn feedback" onclick='sendFeedback("zh",1)'>是的</button>
|
||
<button class="btn feedback" onclick='sendFeedback("zh",0)'>没有</button></div><div id=feedback-comment>Do you have any suggestions for improvement?<br><br><input id=feedback-textbox type=text placeholder='Help us improve...' data-lang=zh></div><div id=feedback-thankyou>Thanks for your feedback!</div></div><div id=endnotes-container aria-hidden=true><h2>链接</h2><ol id=endnotes></ol></div></div><div class=toc-container><nav class=toc aria-label="Table of Contents"><div id=toc><ol><li role=none aria-label=高层架构><a href=#high-level-architecture>高层架构</a><li role=none aria-label="Istio 身份"><a href=#istio-identity>Istio 身份</a><li role=none aria-label=身份和证书管理><a href=#PKI>身份和证书管理</a><li role=none aria-label=认证><a href=#authentication>认证</a><ol><li role=none aria-label="双向 TLS 认证"><a href=#mutual-TLS-authentication>双向 TLS 认证</a><ol><li role=none aria-label=宽容模式><a href=#permissive-mode>宽容模式</a><li role=none aria-label=安全命名><a href=#secure-naming>安全命名</a></ol></li><li role=none aria-label=认证架构><a href=#authentication-architecture>认证架构</a><li role=none aria-label=认证策略><a href=#authentication-policies>认证策略</a><ol><li role=none aria-label=策略存储><a href=#policy-storage>策略存储</a><li role=none aria-label="Selector 字段"><a href=#selector-field>Selector 字段</a><li role=none aria-label="Peer authentication"><a href=#peer-authentication>Peer authentication</a><li role=none aria-label="Request authentication"><a href=#request-authentication>Request authentication</a><li role=none aria-label=Principals><a href=#principals>Principals</a></ol></li><li role=none aria-label=更新认证策略><a href=#updating-authentication-policies>更新认证策略</a></ol></li><li role=none aria-label=授权><a href=#authorization>授权</a><ol><li role=none aria-label=授权架构><a href=#authorization-architecture>授权架构</a><li role=none aria-label=隐式启用><a href=#implicit-enablement>隐式启用</a><li role=none aria-label=授权策略><a href=#authorization-policies>授权策略</a><ol><li role=none aria-label=策略目标><a href=#policy-target>策略目标</a><li role=none aria-label=值匹配><a href=#value-matching>值匹配</a><li role=none aria-label=排除匹配><a href=#exclusion-matching>排除匹配</a><li role=none aria-label="allow-nothing、deny-all 和 allow-all 策略"><a href=#allow-nothing-deny-all-and-allow-all-policy><code>allow-nothing</code>、<code>deny-all</code> 和 <code>allow-all</code> 策略</a><li role=none aria-label=自定义条件><a href=#custom-conditions>自定义条件</a><li role=none aria-label=认证与未认证身份><a href=#authenticated-and-unauthenticated-identity>认证与未认证身份</a></ol></li><li role=none aria-label="在普通 TCP 协议上使用 Istio 授权"><a href=#using-Istio-authorization-on-plain-TCP-protocols>在普通 TCP 协议上使用 Istio 授权</a><li role=none aria-label="对双向 TLS 的依赖"><a href=#dependency-on-mutual-TLS>对双向 TLS 的依赖</a></ol></li><li role=none aria-label=学习更多><a href=#learn-more>学习更多</a><li role=none aria-label=相关内容><a href=#see-also>相关内容</a></li></ol></div></nav></div></main><footer class=footer><div class="footer-wrapper container-l"><div class="user-links footer-links"><a class=channel title='Istio 的代码在 GitHub 上开发' href=https://github.com/istio/community aria-label=GitHub><svg class="icon github"><use xlink:href="/v1.17/img/icons.svg#github"/></svg></a><a class=channel title='如果您想深入了解 Istio 的技术细节,请查看我们日益完善的设计文档' href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><svg class="icon drive"><use xlink:href="/v1.17/img/icons.svg#drive"/></svg></a><a class=channel title='在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)' href=https://slack.istio.io aria-label=slack><svg class="icon slack"><use xlink:href="/v1.17/img/icons.svg#slack"/></svg></a><a class=channel title='Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答' href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><svg class="icon stackoverflow"><use xlink:href="/v1.17/img/icons.svg#stackoverflow"/></svg></a><a class=channel title='关注我们的 Twitter 来获取最新信息' href=https://twitter.com/IstioMesh aria-label=Twitter><svg class="icon twitter"><use xlink:href="/v1.17/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.17/zh/ aria-label=logotype><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></a><div class=footer-languages><a tabindex=-1 lang=en id=switch-lang-en class=footer-languages-item>English</a>
|
||
<a tabindex=-1 lang=zh id=switch-lang-zh class="footer-languages-item active"><svg class="icon tick"><use xlink:href="/v1.17/img/icons.svg#tick"/></svg>中文</a></div></div><ul class=footer-policies><li class=footer-policies-item><a class=footer-policies-link href=https://www.linuxfoundation.org/legal/terms>条款</a> |
|
||
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/privacy-policy>隐私政策</a> |
|
||
<a class=footer-policies-link href=https://github.com/istio/istio.io/edit/release-1.17/content/zh/docs/concepts/security/index.md>在 GitHub 上编辑此页</a></li></ul><div class=footer-base><span class=footer-base-copyright>© 2023 the Istio Authors.</span>
|
||
<span class=footer-base-version>部分内容可能滞后于英文版本,同步工作正在进行中<br>Version
|
||
Istio 归档
|
||
1.17.3</span><ul class=footer-base-releases><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://istio.io/docs/concepts/security/"),!1'>当前版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://preliminary.istio.io/docs/concepts/security/"),!1'>下个版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link href=https://istio.io/archive>旧版本</a></li></ul></div></div></footer><script src=https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js defer></script><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title=回到顶部 tabindex=-1><svg class="icon top"><use xlink:href="/v1.17/img/icons.svg#top"/></svg></button></div></body></html> |