
安全是安全 Dapr 的基础,本文我们将来说明在分布式应用中使用 Dapr 时的访问安全特性和能力 ,主要可以分为以下几个方面 。控制
与服务调用和pub/sub APIs 的策略安全通信。组件上的安全安全策略并通过配置进行应用 。运维操作安全实践 。访问状态安全,控制专注于静态的策略数据。Dapr 通过服务调用 API 提供端到端的安全安全性,能够使用 Dapr 对应用程序进行身份验证并设置端点访问策略 。高防服务器访问
安全通信
Dapr 应用程序可以被限定在特定的命名空间,以实现部署和安全,策略当然我们仍然可以在部署到不同命名空间的安全服务之间进行调用 。默认情况下 ,访问服务调用支持通过简单地引用应用 ID (比如 nodeapp) 来调用同一命名空间内的控制服务 :
复制localhost:3500/v1.0/invoke/nodeapp/method/neworder1.服务调用还支持跨命名空间的调用 ,在所有受支持的托管平台上 ,Dapr 应用程序 ID 符合包含目标命名空间的有效 FQDN 格式 ,可以同时指定 :
应用 ID (如nodeapp)。应用程序运行的亿华云命名空间(production) 。比如在 production 命名空间中的 nodeapp 应用上调用 neworder 方法 ,则可以使用下面的方式 :
复制localhost:3500/v1.0/invoke/nodeapp.production/method/neworder1.当使用服务调用在命名空间中调用应用程序时 ,我们可以使用命名空间对其进行限定,特别在 Kubernetes 集群中的跨命名空间调用是非常有用的。
为服务调用应用访问控制列表配置访问控制策略在配置文件中被指定 ,并被应用于被调用应用程序的 Dapr sidecar,对被调用应用程序的访问是基于匹配的建站模板策略动作,你可以为所有调用应用程序提供一个默认的全局动作,如果没有指定访问控制策略,默认行为是允许所有调用应用程序访问被调用的应用程序。
在具体学习访问控制策略配置之前,我们需要先了解两个概念:
TrustDomain - “信任域”是管理信任关系的逻辑组。每个应用程序都分配有一个信任域,可以在访问控制列表策略规范中指定。如果未定义策略规范或指定了空的信任域,则使用默认值 public ,云计算该信任域用于在 TLS 证书中生成应用程序的身份。App Identity - Dapr 请求 sentry 服务为所有应用程序生成一个 SPIFFE id,这个 id 附加在 TLS 证书中 。SPIFFE id 的格式为:spiffe://<trustdomain>/ns/<namespace>/<appid>