CNCF云原生生态版图-分类指南(二)- 资源调配

时间:2024-12-16 20:55:24

CNCF云原生生态版图-分类指南(二)- 资源调配

  • CNCF云原生生态版图-分类指南
    • 二、资源调配(Provisioning)
      • (一)自动化与配置(Automation & Configuration)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (二)容器镜像仓库(Container Registry)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (三)安全与合规(Security & Compliance)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (四)密钥管理(Key Management)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (五)小结
  • 链接

CNCF云原生生态版图-分类指南

二、资源调配(Provisioning)

在这里插入图片描述

Provisioning 是云原生版图中的第一层,该层中的工具,用于创建和强化云原生应用程序的构建基础设施。在该层中可以找到用于自动配置、创建和管理基础设施的工具,也能找到用于扫描、签名和存储容器镜像的工具。该层还通过策略设置和执行、嵌入身份验证和授权及 secrets 分发处理工具扩展系统的安全性。

(一)自动化与配置(Automation & Configuration)

1. 是什么?

自动化和配置工具可加快计算资源(虚拟机、网络、防火墙规则、负载均衡器等)的创建和配置。此类别中的工具要么屏蔽资源调配过程的差异性,要么尝试端到端地控制所有内容。大多数工具都提供了与该领域的其他项目和产品集成的能力。

2. 解决什么问题?

传统上,IT 流程执行依赖于漫长且劳动密集型的手动发布周期,通常为 3 到 6 个月。这些周期伴随着大量的人工流程和控制,大大减慢了对生产环境的更改。这些缓慢的发布周期和静态环境与云原生开发相冲突。为了缩短开发周期,必须在无人干预的情况下,实现基础设施的自动化动态配置。

3. 如何解决问题?

此类工具允许工程师在没有人工干预的情况下构建计算环境。通过对环境配置编码,只需单击一个按钮即可实现计算环境的重现。手动设置通常比较容易出错,但一旦编码,环境创建就会完全匹配到目标状态,这也是自动化与配置的一个巨大优势。

4. 使用的技术

随着从传统的人工驱动型资源调配转向新的由云驱动的按需扩展模型,之前使用的模式和工具不再满足当下的需求,并且大多数组织负担不起大量 24x7 员工来创建、配置和管理服务器。Terraform 等自动化工具减少了使用数百条防火墙规则扩展数十台服务器和网络所需的工作量。Puppet、Chef 和 Ansible 等工具在启动这些新服务器和应用程序时以编程方式对它们进行配置,并允许开发人员自定义。

这些工具有的可以直接与 AWS1 或 vSphere2 等平台提供的基础设施 API 交互,有的则专注于配置单个计算机以使其成为 Kubernetes 集群的一部分。许多工具(如 Chef 和 Terraform) 可以户操作以调配资源和配置环境。还有一些工具(如 OpenStack)的存在是为其他工具提供 IaaS 环境的。通常强况下,需要使用该分类中的一个或多个工具,为 Kubernetes 集群构建计算环境、CPU、内存、存储和网络。同时还需要使用这些工具来创建和管理 Kubernetes 集群本身。

5. 项目和产品整体介绍

属于资源调配分类的项目和产品共有 53 个,其中 CNCF 项目有 17 个。这些项目和产品的关键字有:

  • Infrastructure-as-Code (IaC3) 基础设施即代码
  • Automation 自动化
  • Declarative Configuration 声明式配置

CNCF 项目如下表所示:

项目 CNCF 项目阶段 说明
KubeEdge 已毕业 一个开源系统,用于将容器化应用程序编排功能扩展到 Edge4 的主机
Cloud Custodian 孵化中 一个开源的云资源管理工具,主要用于管理云计算环境中的各种资源
Akri 沙盒 用于在边缘计算环境中进行设备管理和资源发现
Atlantis 沙盒 一款在云原生环境下用于自动化基础设施即代码(IaC)的工具,主要专注于与 Terraform 协作来管理云基础设施
CDK for Kubernetes (CDK8s) 沙盒 一种用于通过编程方式定义和管理 Kubernetes 资源的工具集
DevStream 沙盒 一个开源的工具链管理器,主要用于简化和自动化软件交付过程中的工具链管理,特别是在云原生开发和持续交付(CD)/ 持续部署(DD)场景下
Kairos 沙盒 一个云原生的操作系统框架,它专注于提供一种灵活、高效且易于管理的方式来构建和部署操作系统,特别是在容器化和边缘计算的场景下非常有用
KCL 沙盒 一种专门用于配置 Kubernetes 资源的领域特定语言。它旨在简化和增强 Kubernetes 资源配置的编写过程,提供比传统的 YAML 或 JSON 格式更高的抽象层次和更强的配置管理能力。
kpt 沙盒 谷歌推出的一个用于管理 Kubernetes 配置包的工具。它主要用于简化和标准化 Kubernetes 资源配置的打包、分发、安装和更新流程,帮助用户更高效地处理复杂的云原生应用部署和管理任务。
Kubean 沙盒 一款准生产的集群生命周期管理工具,基于 kubespray5 与其他集群 LCM6 引擎。
KubeDL 沙箱 一个基于 Kubernetes 的深度学习(Deep Learning)工作负载管理平台。它专注于在云原生环境下为深度学习任务提供高效的资源管理、任务调度和模型训练 / 推理服务。
KusionStack 沙盒 是面向 Kubernetes 云原生场景的 IaC 配置代码化实践的开源一站式可编程协议栈
Meshery 沙盒 一个开源的云原生管理平台,主要用于服务网格(Service Mesh7)的管理和操作
Metal³ 沙盒 一个开源项目,主要聚焦于在裸金属(bare-metal8)基础设施上提供容器化工作负载的自动化部署和管理解决方案,是云原生生态在裸金属环境中的重要扩展
OpenYurt 沙盒 一个云原生边缘计算开源项目,主要用于将 Kubernetes 的能力延伸到边缘计算场景
SuperEdge 沙盒 一个基于原生 Kubernetes 的边缘容器方案。以无侵入的方式,将Kubernetes强大的容器管理能力扩展到边缘计算场景中
Tinkerbell 沙盒 一个开源的裸金属服务器自动化项目。它提供了一个基础设施即代码(IaC)的解决方案,用于在裸金属服务器上启动和管理操作系统安装以及其他初始化任务,帮助用户更高效地配置和部署裸金属计算资源

(二)容器镜像仓库(Container Registry)

1. 是什么?

先明确几个概念:

  • 容器(Container)。一个正在运行的进程,具有资源和功能限制,由计算机的操作系统管理。
  • 镜像(Image)。是运行容器及其进程所需的一组存档文件。可将其视为一种模板,能够基于镜像创建无限数量的容器。
  • 仓库(Repository)。(或简称 repo)是存储镜像的空间。

容器镜像仓库(container registries) 也称为 “容器注册表” 是专门对容器镜像进行分类和存储的 Web 应用程序。

镜像中包含在容器中运行程序所需的所有信息,镜像存储在仓库中,而仓库又在注册表中进行分类和分组。构建、运行和管理容器的工具通过引用注册表(访问镜像的路径)来访问这些镜像。

2. 解决什么问题?

云原生应用程序被打包成容器运行。容器注册表存储并提供运行这些应用程序所需的容器镜像。

3. 如何解决问题?

通过将所有容器镜像集中存储在一个位置,任何使用该应用程序的开发人员都可以轻松访问它们。

4. 使用的技术

容器注册表除了存储和分发镜像外,还提供增强现有注册表的方法。注册表本质上是一组 Web API,它允许在容器运行时存储和检索镜像。注册表提供了很多接口来对镜像进行扫描,同时也提供了签名工具来增强已存储镜像的安全性。 一些容器注册表也会提供特别有效的方式来分发和复制镜像。任何使用容器的环境都需要使用一个或多个注册表。

该分类中的工具具备整合能力,能够用来对存储的镜像进行扫描、签名和检查。Dragonfly 和 Harbor 是 CNCF 项目,Harbor 最近获得了第一个符合 OCI9 标准的注册管理机构的殊荣。主要的云提供商都提供自己的托管注册表,也有许多可以独立部署的注册表,支持通过 Helm 等工具直接部署到 Kubernetes 集群中。

5. 项目和产品整体介绍

属于容器镜像仓库分类的项目和产品共有 13 个,其中 CNCF 项目有 4 个。这些项目和产品的关键字有:

  • Container 容器
  • OCI Image OCI 镜像
  • Registry 注册表

CNCF 项目如下表所示:

项目 CNCF 项目阶段 说明
Harbor 已毕业 一个开源的企业级容器镜像仓库项目,用于存储、签名和扫描容器镜像
Dragonfly 孵化中 个开源的、高效的内容分发系统,用于加速容器镜像和文件的传输
Distribution 沙盒 用于打包、运输、存储和交付内容的工具集
zot 沙盒 一个容器镜像仓库,它是一个轻量级的、高性能的开源项目,用于存储和分发容器镜像

(三)安全与合规(Security & Compliance)

1. 是什么?

云原生应用程序被设计为快速迭代的。就像手机上不断更新的应用程序 – 它们每天都在演进,这样有可能会变得更好。为了定期发布代码,必须确保代码和运维环境是安全的,并且只有经过授权的工程才能访问。安全与合规分类中的项目和产品提供了安全构建和运行现代应用程序所需的功能。

2. 解决什么问题?

安全性和合规性工具有助于强化、监控和执行平台及应用程序的安全性。从容器到 Kubernetes 环境,这些工具支持设置策略(以实现合规性)、深入了解现有漏洞、捕获错误配置并强化容器和集群。

3. 如何解决问题?

要安全地运行容器,必须对容器进行漏洞扫描,并对其进行签名,以确保其容器被恶意篡改。默认情况下,Kubernetes 使用极其宽松的访问控制配置,不适合生产使用。这样就会导致对于任何想要攻击系统的人来说, Kubernetes 集群都是一个及其有吸引力的目标。此分类中的工具和项目有助于强化集群和检测系统异常行为。

4. 使用的技术
  • Audit and compliance 审计与合规性
  • Path to production: 生产路径:
    • Code scanning 代码扫描
    • Vulnerability scanning 漏洞扫描
  • Image signing 镜像签名
  • Policy creation and enforcement 策略创建和实施
  • Network layer security 网络层安全

其中的一些工具很少被直接使用。例如,Trivy、Claire 和 Notary 经常被注册表或其他扫描工具使用。其他的工具则代表了现代应用平台的关键强化组件。包括 Falco 和 Open Policy Agent (OPA)。

很多供应商在此分类中有提供了成熟的解决方案,同时也有初创公司明确要将 Kubernetes 原生框架推向市场。Falco、Notary/TUF 和 OPA 是该分类中的 CNCF 已毕业项目。

5. 项目和产品整体介绍

属于安全与合规分类的项目和产品共有 117 个,其中 CNCF 项目有 30 个。这些项目和产品的关键字有:

  • Image scanning 镜像扫描
  • Image signing 镜像签名
  • Policy enforcement 策略实施
  • Audit 审计
  • Certificate Management 证书管理

CNCF 项目如下表所示:

项目 CNCF 项目阶段 说明
cert-manager 已毕业 个开源的 Kubernetes 原生的证书管理工具。它通过自动化的方式简化了在 Kubernetes 环境中获取、更新和使用 TLS(Transport Layer Security)10证书的流程
Falco 已毕业 一个开源的云原生运行时安全工具,主要用于检测容器、主机和云原生环境中的异常行为
Open Policy Agent (OPA) 已毕业 一个开源的通用策略引擎,用于在分布式系统中实现统一的策略执行。可以用于授权、准入控制、数据过滤等多种用途,帮助组织确保系统的安全性、合规性和正确性
The Update Framework (TUF) 已毕业 一个用于确保软件更新的安全性、完整性和可靠性的开源框架。它主要解决软件更新过程中可能出现的各种安全风险,如软件包被篡改、中间人攻击等问题
in-toto 孵化中 一个用于软件供应链安全的框架,主要目的是确保软件从源头开发到最终部署的整个过程的完整性和可追溯性
Keycloak 孵化中 一个开源的身份认证和访问管理(IAM)解决方案。它提供了单点登录(SSO11)、多因素认证、社交登录、身份代理等多种功能
Kyverno 孵化中 一个开源的、专为 Kubernetes 设计的策略管理引擎。它使用基于策略的规则来控制和管理 Kubernetes 资源
Notary Project 孵化中 一个用于确保软件供应链安全的工具,主要聚焦于容器镜像和其他软件制品的签名和验证
Bank-Vaults 沙盒 一个用于在 Kubernetes 环境中管理敏感数据(如密钥、密码等)的工具
bpfman 沙盒 一个用于管理伯克利包过滤器(eBPF12 - Extended Berkeley Packet Filter)程序的工具
Cartography 沙盒 一个用于对云基础设施和资源进行可视化和关系建模的工具
Confidential Containers 沙盒 一个旨在增强容器安全性的项目,主要聚焦于保护容器工作负载中的数据机密性
ContainerSSH 沙盒 一个将 SSH(Secure Shell)访问与容器技术相结合的工具。它允许用户通过 SSH 连接直接在远程服务器上启动容器,并在容器环境中执行命令
Copa 沙盒 一个用 Go 编写的 CLI 工具,基于 buildkit,鉴于 Trivy 等流行工具的漏洞扫描结果,可用于直接修补容器镜像
Curiefense 已存档 一个基于云原生架构的 Web 应用防火墙(WAF)和应用安全平台
Dex 沙盒 一个开源的身份认证服务,它实现了 OpenID Connect(OIDC13)和 OAuth 2.014 协议
external-secrets 沙盒 一个用于在 Kubernetes 环境中安全地从外部源获取和使用机密信息(如密码、API 密钥、证书等)的工具
Hexa 沙盒 一款开源、基于标准的策略编排软件,适用于多云和混合企业
Keylime 沙盒 一个用于确保平台完整性的开源工具,主要应用于云计算和物联网(IoT)等领域
KubeArmor 沙箱 一个专为 Kubernetes 环境设计的运行时安全 enforcement 工具15
Kubescape 沙盒 一个开源的 Kubernetes 安全平台
Kubewarden 沙盒 一个用于 Kubernetes 的策略引擎,专注于为 Kubernetes 集群提供策略即代码(Policy-as-Code16)的功能
Open Policy Containers 沙盒 一个开源的通用策略引擎,用于在整个软件栈中实现统一的策略执行
OpenFGA 沙盒 一个开源的细粒度授权(Fine-Grained Authorization17)系统
OSCAL-COMPASS 沙盒 一组工具,可用于创建、验证和管理文档工件,以满足合规性需求
Paralus 沙盒 一个用于管理 Kubernetes 集群访问的开源平台。它专注于提供多租户环境下的安全访问控制和集群资源管理
Parsec 沙盒 一个开源的安全远程过程调用(RPC)系统。它主要用于在不信任的环境中,实现安全高效的进程间通信,重点关注数据的保密性、完整性和端点的认证
Ratify 沙盒 提供了一个框架,用于集成需要验证引用工件的场景
SlimToolkit 沙盒 一个开源的容器优化工具,主要用于减小 Docker 镜像的体积,同时提升容器的安全性
SOPS 沙盒 一款用于处理敏感数据(如密码、API 密钥、证书等机密信息)的工具

(四)密钥管理(Key Management)

1. 是什么?

密钥是用于加密或签名数据的字符串。与物理密钥一样,它会锁定(加密)数据,只有拥有正确密钥的人才能解锁(解密)数据。

随着应用程序和运维适应新的云原生世界,安全工具不断发展以满足新的安全需求。该类别中的工具和项目涵盖从如何安全地存储密码及其他密钥(敏感数据,如 API 密钥、加密密钥等)的所有内容,到如何安全地从微服务环境中消除密码和密钥。

2. 解决什么问题?

云原生环境是高度动态的,需要按需分发密钥。这意味着它必须完全是编程的(循环中没有人工)和自动化的。

此外,应用程序需要知道给定的请求是否来自有效的源 (authentication),以及该请求是否有权执行它试图执行的任何操作 (authorization)。这通常称为 AuthN18 和 AuthZ19

3. 如何解决问题?

每个工具或项目都采用不同的方法,但它们都提供了安全分发密钥和密钥的方法,或者与身份验证和/或授权相关的服务或规范。

4. 使用的技术

该类别中的工具可以分为两组:1) 密钥生成、存储、管理和轮换,以及 2) 单点登录和身份管理。例如,Vault 是一个相当通用的密钥管理工具,允许管理不同类型的密钥。另一方面,Keycloak 是一个身份代理,可用于管理不同服务的访问密钥。

5. 项目和产品整体介绍

属于可观测性分类的项目和产品共有 148 个,其中 CNCF 项目有 19 个。这些项目和产品的关键字有:

  • AuthN and AuthZ 身份认证和授权
  • Identity 身份
  • Access 访问
  • Secrets 秘密

CNCF 项目如下表所示:

项目 CNCF 项目阶段 说明
SPIFFE 已毕业 一个用于在动态和分布式环境(特别是云原生环境)中提供安全的身份标识的开源框架
SPIRE 已毕业 一个用于在云原生和分布式系统环境中为工作负载提供身份认证和安全通信的运行时环境工具
Athenz 沙盒 一个细粒度授权和访问控制框架,主要用于在分布式系统中对服务和资源进行安全管理
Teller 沙盒 一个用于管理和访问应用程序配置中的敏感信息(如密码、API 密钥等机密信息)的工具

(五)小结

Provisioning 层专注于构建云原生平台和应用程序的基础,其工具可以处理从基础设施调配到容器注册表再到安全性的所有内容。

链接

  • CNCF Landscape
  • CNCF LANDSCAPE GUIDE

  1. AWS 是 Amazon Web Services 的缩写,中文是 “亚马逊网络服务”。它是亚马逊公司提供的一套云计算服务,于 2006 年推出。AWS 提供了广泛的云计算服务,包括计算能力、存储、数据库、分析、机器学习、物联网等多种服务类别,帮助企业和开发者能够在云端构建和运行各种复杂的应用程序。 ↩︎

  2. vSphere 是 VMware 公司推出的一款用于虚拟化数据中心的云计算基础架构平台。 ↩︎

  3. IaC 是 “Infrastructure as Code” 的缩写,中文意思是 “基础设施即代码”。IaC 是一种通过代码和软件工具来管理和配置基础设施的方法。传统的基础设施配置通常是手动操作,通过系统管理员在服务器、网络设备等硬件上进行逐一设置。而 IaC 将基础设施(如服务器、存储、网络等)的配置过程以代码的形式表示,就像开发软件一样,可以进行版本控制、自动化部署和测试。 ↩︎

  4. 边缘计算(Edge Computing)是一种在靠近数据源或用户端的网络边缘侧进行数据处理的计算模式。它将计算和数据存储尽可能地靠近数据源或用户设备,而不是将所有的数据都传输到云端进行处理。例如,在一个智能工厂中,工厂的设备会产生大量的数据,如温度、压力、振动等传感器数据。如果将这些数据全部传输到云端进行处理,会产生较大的延迟并且占用大量的网络带宽。通过边缘计算,可以在工厂内部的边缘服务器或网关设备上对这些数据进行初步处理,如简单的数据分析、异常检测等。 ↩︎

  5. Kubespray 是由 Kubernetes 社区维护的一个子项目,旨在提供一套自动化工具,用于跨云环境、Vagrant 或裸机服务器上创建多节点 Kubernetes 集群。 ↩︎

  6. 在云原生环境中,“LCM” 通常是 “Lifecycle Management(生命周期管理)” 的缩写。云原生应用和组件(如 Kubernetes 中的容器、微服务等)的生命周期管理,涉及从应用创建、部署、配置、更新、监控,一直到最终的删除等一系列阶段的管理。这是确保云原生系统高效、稳定运行的关键。 ↩︎

  7. Service Mesh(服务网格)是一个用于处理服务间通信的专用基础设施层。它是一种在微服务架构中管理和控制服务到服务通信的模式,通过在应用程序的服务之间插入一个代理(通常是轻量级网络代理)网络来实现。这些代理可以处理诸如服务发现、负载均衡、故障注入、流量控制、加密和认证等功能,而不需要在每个服务中实现这些复杂的功能。 ↩︎

  8. 在云计算和虚拟化的背景下,“bare-metal” 与虚拟机(VM)相对。它表示直接在物理硬件上运行操作系统和应用程序,而不是在虚拟机环境中。这种方式可以提供更高的性能和资源利用率,因为没有中间的虚拟化层消耗资源。例如,对于一些对性能要求极高的数据库应用或者高性能计算(HPC)任务,企业可能会选择在 bare-metal 服务器上部署,以获得最佳的性能。同时,bare-metal 部署也意味着用户对硬件资源有完全的控制权,能够根据自己的需求进行定制化的硬件配置和软件安装。 ↩︎

  9. Open Container Initiative 是一个轻量级的、开放的治理结构,由 Linux 基金会于 2015 年 6 月创立。它主要致力于容器镜像格式和容器运行时的标准制定,目的是在容器技术飞速发展的背景下,建立统一的行业标准,避免容器技术的碎片化。 ↩︎

  10. TLS(Transport Layer Security)即传输层安全协议,是一种加密通信协议,用于在计算机网络(通常是互联网)上提供安全的通信通道。它的前身是 SSL(Secure Sockets Layer)协议,TLS 在 SSL 的基础上进行了改进和扩展,主要目的是确保数据在传输过程中的保密性、完整性和身份验证。 ↩︎

  11. 单点登录(Single Sign - On,简称 SSO)是一种身份认证机制。它允许用户使用单一的凭据(如用户名和密码)访问多个相互信任的应用程序。在这种模式下,用户只需登录一次,就可以在多个不同的系统或应用之间无缝切换,而无需为每个应用分别进行登录操作。 ↩︎

  12. eBPF(Extended Berkeley Packet Filter)即扩展伯克利包过滤器,是一种内核技术。它允许用户在不修改内核源代码的情况下,安全地将自定义的程序加载到内核中运行,从而实现对内核事件(如系统调用、网络数据包等)的高效监控和处理。 ↩︎

  13. OIDC(OpenID Connect)是一个基于 OAuth 2.0 协议的身份认证层协议。它主要用于在互联网应用中进行用户身份验证,使得应用能够以一种标准化的方式获取用户的身份信息,并且可以跨不同的身份提供商(IdP)进行身份验证,为用户提供更便捷的单点登录体验,同时保证安全性。 ↩︎

  14. OAuth 2.0 是一种授权框架,用于在不共享用户凭据(如用户名和密码)的情况下,让第三方应用(客户端)能够访问用户在资源所有者(如用户自己或某个服务提供商)处的资源。它提供了一种安全、标准化的方式来授权访问受限资源,广泛应用于 Web 应用、移动应用以及各种 API 的授权场景。 ↩︎

  15. “enforcement 工具” 在安全领域通常是指那些用于强制实施安全策略、规则或合规要求的工具。它们的主要功能是确保系统、网络、应用程序等按照预定的安全设定进行操作,并且能够检测和阻止违反安全策略的行为。 ↩︎

  16. Policy-as-Code(策略即代码)是一种将组织的策略、规则和治理要求以代码形式进行表达、管理和执行的理念。它将传统的、基于文档的策略转化为可自动化执行的代码,使得策略能够像软件代码一样进行版本控制、测试、部署和监控。这种方法在信息技术、安全管理、合规性等多个领域得到广泛应用,特别是在云原生环境(如 Kubernetes)和基础设施自动化场景中。 ↩︎

  17. Fine-Grained Authorization(细粒度授权)是一种访问控制策略,它能够以非常精确和详细的方式定义谁(用户、角色、服务等)可以对什么(具体的资源、数据元素、功能等)执行什么操作(读、写、删除、执行等)。与粗粒度授权相比,细粒度授权提供了更细致的权限控制,以满足复杂的业务需求和安全要求。 ↩︎

  18. AuthN 是 “Authentication” 的缩写,即身份认证。它是信息安全领域的一个关键概念,用于验证用户、系统、设备等实体的身份,确保声称的身份是真实可靠的。身份认证是访问控制的基础,只有经过认证的实体才能被允许访问相应的资源。 ↩︎

  19. AuthZ 是 “Authorization” 的缩写,即授权。它主要是在身份认证(AuthN)的基础上,确定已认证的用户(或系统、设备等实体)被允许执行何种操作或访问何种资源。简单来说,身份认证是验证 “你是谁”,而授权是确定 “你能做什么”。 ↩︎