基于角色的访问控制(RBAC)过滤器¶
RBAC 过滤器被用来对可识别的下游客户端(主体)做授权操作。这对于显式管理应用程序的调用者及保护它们免受非期望或禁止客户端的影响来说是非常有用的。过滤器支持基于连接属性(IP、端口、SSL 主题)以及传入请求的 HTTP 头部的 safe-list(允许)或者 block-list(拒绝)策略配置。此过滤器还支持在强制模式和影子模式下的策略,影子模式并不会影响真实的用户,它被用来对上生产之前的一系列新策略进行测试。
当请求被拒绝时,在 RESPONSE_CODE_DETAILS 中会包含以 rbac_access_denied_matched_policy[policy_name] 为格式的,与引起请求拒绝相匹配的策略的名称(如果没有匹配到任何策略,policy_name 的值将会是 none),这有助于区分该拒绝行为是来自于 Envoy RBAC 过滤器还是上游后端。
此过滤器的名称应该被配置为 envoy.filters.http.rbac。
Per-Route 配置¶
通过在虚拟主机、路由或权重集群上提供 RBACPerRoute 配置,RBAC 过滤器的配置可以在 per-route 的基础上被覆盖或者禁用。