Understanding Araali Policies

Araali Policies

Discover

One of the most beneficial features of Araali is its policy paradigm. It automatically discovers policies for every namespace/app - no need to write declarative policies. Besides, Araali uses identity instead of IP and Port for policies. The identity paradigm is more relevant in the modern cloud-native environment where IPs are ephemeral. Araali’s identity is inspired by SPIFFE/SPIRE.

Araali k8s Support Matrix

When you run Araali assessment, it discovers the communication between services identities and automatically suggests those policies as a diagram. In the diagram, each box represents a process. It will have an identity if Araali is running or a DNS or IP address if there is no Araali. The lines between these boxes represent network communication - all the links will start their lifecycle as alerts as shown in the above diagram.

Review

Araali provides various ways of reviewing the links once we are done with the discovery step. We can verify the communication pattern of an application through our UI or our API. Links that were discovered can be transitioned to one of the following states.

1. Allowed

Links accepted as whitelist policy.

2. Snoozed

A snoozed link is forgotten. It will show up again if a new flow is observed. Typically links are snoozed when the underlying problem is addressed. It is snoozed so that there is a notification on subsequent occurrences.

We will be able to snooze erroneous whitelisted/denied policies as well.

3. Denied

A denied link is snoozed forever. You neither want to accept nor snooze because you are aware of it and don’t want to be bothered by it again.

Enforce

Once policies are reviewed, they are ready to be enforced. Creating guard rails and monitoring for deviations vs enforcing them upfront is a business decision that depends on the value of the resource being protected. Araali allows you to make these decisions at a very fine granularity - at a per app and per service level

Managing Policies in Araali UI

We drill down to the app page from the zone page selecting the zone we are interested in and from there we choose the app we are interested in and land on our policy page for that app.

Araali k8s Support Matrix

1. Accepting

  1. Choose the red line for each connection that you want to approve.

  2. Choose the check mark. The line turns green.

Validate and accept all approved connections. This converts them to policies.

That’s it—you have created allow-list policies for your app! No need to manually discover and write declarative policies.

2. Snoozing

  1. Choose the red line for each connection that you want to snooze.

  2. Choose the timer icon. The line turns blue and is hidden by default.

3. Denying

  1. Choose the red line connection you’d like to snooze forever.

  2. Choose the bell icon. The line turns yellow.

The snapshot below shows some of the transitions made on our UI.

Araali k8s Support Matrix

Managing Policies Araali API

The above data can be accessed as python objects as well using our API. We can set up python API as described here.

Templates

Araali baselines your application communication and presents them as an identity-based policy recommendation which can then be accepted and converted to policy. This means no handwriting policies, everything is automatically discovered. Once these policies are accepted, they can also be enforced, which means only whitelisted communication will be allowed and the rest will be dropped.

Policies can be accepted per application using Araali UI or APIs. This works well for small to medium-sized applications but might seem tedious for a very large app. Araali allows the option to automate the acceptance of policies by leveraging templates. Templates are generally repeating patterns of communication seen in an application. Some of the examples could be

  1. Backend talking to Databases

  2. K8s nodes talking to control plane service

  3. VMs in the cloud talking to metadata services and so on

These repeatable and known communication patterns can be translated into templates which helps with accepting the policies automatically without much user intervention.

Creating Templates

Templates can be created using APIs/UI. Users can choose to create declarative templates or convert an existing app’s policy links (suggested by Araali) to templates