package envoy.config.rbac.v2

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message Permission

rbac.proto:108

Permission defines an action (or actions) that a principal can take. [#next-free-field: 11]

Used in: Permission.Set, Policy

message Permission.Set

rbac.proto:111

Used in the `and_rules` and `or_rules` fields in the `rule` oneof. Depending on the context, each are applied with the associated behavior.

Used in: Permission

message Policy

rbac.proto:89

Policy specifies a role and the principals that are assigned/denied the role. A policy matches if and only if at least one of its permissions match the action taking place AND at least one of its principals match the downstream AND the condition is true if specified.

Used in: RBAC

message Principal

rbac.proto:175

Principal defines an identity or a group of identities for a downstream subject. [#next-free-field: 12]

Used in: Policy, Principal.Set

message Principal.Authenticated

rbac.proto:183

Authentication attributes for a downstream.

Used in: Principal

message Principal.Set

rbac.proto:178

Used in the `and_ids` and `or_ids` fields in the `identifier` oneof. Depending on the context, each are applied with the associated behavior.

Used in: Principal

message RBAC

rbac.proto:64

Role Based Access Control (RBAC) provides service-level and method-level access control for a service. RBAC policies are additive. The policies are examined in order. A request is allowed once a matching policy is found (suppose the `action` is ALLOW). Here is an example of RBAC configuration. It has two policies: * Service account "cluster.local/ns/default/sa/admin" has full access to the service, and so does "cluster.local/ns/default/sa/superuser". * Any user can read ("GET") the service at paths with prefix "/products", so long as the destination port is either 80 or 443. .. code-block:: yaml action: ALLOW policies: "service-admin": permissions: - any: true principals: - authenticated: principal_name: exact: "cluster.local/ns/default/sa/admin" - authenticated: principal_name: exact: "cluster.local/ns/default/sa/superuser" "product-viewer": permissions: - and_rules: rules: - header: { name: ":method", exact_match: "GET" } - url_path: path: { prefix: "/products" } - or_rules: rules: - destination_port: 80 - destination_port: 443 principals: - any: true

Used in: filter.http.rbac.v2.RBAC, filter.network.rbac.v2.RBAC

enum RBAC.Action

rbac.proto:66

Should we do safe-list or block-list style access control?

Used in: RBAC