Docs / Building infrastructure

Policy

The rules that read every plan before anyone is asked to approve it.

Policy runs with Open Policy Agent on the machine-readable plan, in the same run that produced it, on create, change and destroy plans alike. Each finding has a severity.

SeverityEffect
BlockThe plan cannot be approved. The service refuses an approval even if one is sent.
WarnAllowed, but worth reading before you approve.
InfoRecorded for the reviewer. No action needed.

The rules

AreaRuleSeverity
NetworkA security group admits every protocol from the internetBlock
NetworkA security group opens an administrative port to the internetBlock
NetworkA security group opens a wide port range to the internetBlock
NetworkA security group is reachable from the internetWarn
NetworkThe Kubernetes API is reachable from the whole internetWarn
NetworkThe Kubernetes API is public and the plan does not say who may reach itWarn
NetworkThe Kubernetes API is publicInfo
DataA bucket’s public-access guard is being switched offBlock
DataA bucket is being given a public ACLBlock
DataA disk, or the disks nodes launch with, would be unencryptedBlock
DataA database is being created unencryptedBlock
DataA database is being given a public addressBlock
DataInstance metadata can be read without a session tokenWarn
IdentityA policy grants every action on every resourceBlock
IdentityA policy allows everything except a named listBlock
IdentityA policy grants a whole service on every resourceWarn
IdentityA role can be assumed by any AWS accountBlock
IdentityA bucket policy grants access to everyoneBlock
ClusterThe plan moves Kubernetes to an earlier versionBlock
ClusterThe plan skips a Kubernetes minor versionBlock

When policy cannot run

If the policy step produced nothing SysJ can read, the plan carries a blocking finding saying it has not been checked. An unchecked plan is never approvable. Ask for the plan again.