• Easy to understand • Easy to author correct policy • Brittle, hard to model everything (role explosion!) Attribute Based Access Control (ABAC) • Hard to understand • Hard to author correct policy • (Infinitely) flexible, easy to model anything
(RBAC) • Easy to understand • Easy to author correct policy • Brittle, hard to model everything (role explosion!) Attribute Based Access Control (ABAC) • Hard to understand • Hard to author correct policy • (Infinitely) flexible, easy to model anything NGAC has the flexibility of ABAC, but has a set of guardrails that keep it structured and understandable like RBAC.
multiple classes of policy (eg RBAC, LBAC, DAC, domain) in the same decision • scalable in terms of user and object attributes • as expressive as ABAC: can model any XACML/ABAC policy
directly in NGAC • policies live in the same graph as user-policies • first-class delegation => uniform access control over resources as well as admin data => we can write policy that governs federation Why NGAC?
◦ roughly, O(|user attributes| + |object attributes| + |associations|) or, the size of the subgraph for the user and object in question • efficient (linear time) algorithms to produce ACLs ◦ have your cake and eat it too: optimal runtime enforcement and great policy introspection (see next slide)
are (will be) affected by a policy • Explain: understand why a particular access was allowed, in human-readable terms; eg: “Nic was allowed access because: ◦ he is a member of group A which has RBAC policy B (authored by Zack on Sep 1, 2021) granting permissions X,Y,Z on container C, which contains the target resource Foo ◦ he is a member of group F which was granted a location based policy G (authored by Varun on August 27, 2021) which grants permission X on container H, which contains the target resource Foo ◦ Only location and RBAC policies applied, therefore Nic is able to take action X on target resource Foo.”
you to monitor, secure, connect and manage services consistently. It can be used to implement Identity Based Segmentation at runtime, among other use cases.
to every application instance, which intercepts all traffic in and out to achieve: • L7 application identity & encryption in transit • Per request policy and controls • Service discovery, load balancing, and resiliency • Operational telemetry: metrics, logs, and traces And control them centrally with declarative configuration.
detection, circuit breaking, timeouts, etc. • Load Balancing (Client side) • Fine-grained traffic control L7, not L4! Route by headers, destination or source, etc. • Policy on requests Authentication, rate limiting, arbitrary policy based on L7 metadata • Workload identity (L7) • Service-to-service authorization • Metrics, Logs, and Tracing
detection, circuit breaking, timeouts, etc. • Load Balancing (Client side) • Fine-grained traffic control L7, not L4! Route by headers, destination or source, etc. • Policy on requests Authentication, rate limiting, arbitrary policy based on L7 metadata • Workload identity (L7) • Service-to-service authorization • Metrics, Logs, and Tracing • Consistency across the fleet • Centralized control • Ease of change
time Runtime encryption, authentication, and authorization reduce the attack surface exposed that’s exposed by our applications. Like we saw earlier today, it can help us achieve runtime controls for a ZTA.