AWS OpenSearch角色映射中backend_roles与and_backend_roles的区别
OpenSearch角色映射:and_backend_roles与backend_roles的区别
在OpenSearch的角色映射配置中,backend_roles和and_backend_roles都是用来匹配用户外部后端角色(比如LDAP、SAML提供的角色)的属性,但两者的匹配逻辑完全不同:
backend_roles:逻辑「或」
backend_roles是任意匹配规则——用户只要拥有列表里的任意一个后端角色,就能触发这个映射,被赋予对应的OpenSearch内部角色。
比如你给出的示例里,只要用户有kibanauser这个后端角色,不管有没有其他角色,都会被映射到kibana_user角色。
and_backend_roles:逻辑「与」
and_backend_roles是全匹配规则——用户必须同时拥有这个列表里的所有后端角色,再结合backend_roles的匹配结果(如果backend_roles非空,用户还得满足backend_roles的「或」条件),才能触发映射。
举个实际配置的例子:
kibana_admin: reserved: false hidden: false backend_roles: - "kibana_user" and_backend_roles: - "internal_admin" users: [] hosts: [] description: "仅映射同时拥有kibana_user和internal_admin后端角色的用户到kibana_admin"
这个规则下,只有同时具备kibana_user和internal_admin两个后端角色的用户,才会被赋予kibana_admin角色。如果用户只拥有其中一个角色,就不会触发这个映射。
核心区别总结
backend_roles是「或」逻辑:满足任意一个条目即可匹配and_backend_roles是「与」逻辑:必须满足所有条目,且需要配合backend_roles的条件(若backend_roles非空)
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

