Policy Bundles

A policy bundle is a collection of Rego code placed within a location accessible by the Abbey Github app. Rego code is read from this location and then evaluated in our policy evaluator during the access request flow. If the policy evaluation step fails, then access will not be granted to a given resource.

In this example we'll be looking at the included policy bundle in the Quickstart Policy Bundle.

.manifest

Take a look at the .manifest file.

{"roots": ["common"]}

This specifies that the root package of the bundle is the common package.

common.rego

package common

import data.abbey.functions

allow[msg] {
    functions.expire_after("5m")
    msg := "granting access for 5 minutes"
}

common.rego contains the actual policy code that is being executed. In this case, we're using an Abbey provided function called expire_after (defined here) to say that this policy will revoke access after 5 minutes. Go ahead and change this to whatever value you like. If you want an Access Request to expire after 60 minutes, you can change the value in expire_after to "60m".

Using the Policy Bundle in a Grant Kit

You can refer to the Policy Bundle in your Grant Kit like so:

resource "abbey_grant_kit" "grant_kit_example" {
  ...

+  policies = [
+    { bundle = "github://replace-me-with-organization/replace-me-with-repo/policies" } # CHANGEME
+  ]
}

Make sure bundle points to a URI which points to the top of a bundle directory.

Last updated