# Policies

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2F3JBRVjnlyomRjKWrA2ev%2FGetting%20Started%20-%20Policy%20Details.png?alt=media&#x26;token=361805f7-c977-4c81-b8a6-428d701245ad" alt=""><figcaption></figcaption></figure>

This section goes deeper into **policy types**, **status**, **controls**, and **filters** so you can design policies that match your security and compliance goals.

## Policy Types

Each policy has a **type** that determines what kind of action it controls.

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="173">Type</th><th width="264.3333740234375">What it controls</th><th>Typical use</th></tr></thead><tbody><tr><td><strong>Privilege Elevation</strong></td><td>When users can run as administrator (or elevate privileges).</td><td>Require MFA, approval, or justification before elevation; allow or block specific apps.</td></tr><tr><td><strong>File Access</strong></td><td>Access to files and folders.</td><td>Block or allow access to sensitive paths; require justification or approval for certain files.</td></tr><tr><td><strong>Command Line</strong></td><td>Execution of commands (e.g., PowerShell, shell, scripts).</td><td>Block dangerous commands; require approval for sensitive scripts.</td></tr><tr><td><strong>Least Privilege</strong></td><td>Whether a user keeps or loses local administrator rights.</td><td>Remove standing admin from most users; allow exceptions for specific roles or machines.</td></tr><tr><td><p><strong>Advanced Mode:</strong></p><p><strong>Update Settings</strong></p></td><td>Pushing configuration to the agent (e.g., plugin or global settings).</td><td>Roll out settings from the dashboard without touching each endpoint.</td></tr><tr><td><p><strong>Advanced Mode:</strong></p><p><strong>Update Jobs</strong></p></td><td>Deploying or updating job definitions on the agent.</td><td>Deploy automation and enforcement jobs from a central place.</td></tr></tbody></table>

When a user (or process) triggers an action, the agent figures out the **event type** (e.g., privilege elevation, file access) and evaluates only the policies of that type. So a Privilege Elevation policy never blocks file access; a File Access policy never blocks elevation. You can combine multiple policy types to get full coverage.

### File Access Approval Duration

When approval is required under a file access policy, the requester is granted a four-hour window to access the approved file once authorization is provided. During the four-hour window, the requestor may open, edit, save, and close the file that they have been granted access to.

### MFA Access Duration

After an MFA challenge has been issued and successfully completed, the requester is granted a five-minute window to use the authorized privilege. If the privilege is not exercised within this time frame, a new MFA request must be submitted.

**Reference:** [Configuring the Approval Duration](/keeperpam/endpoint-privilege-manager/user-guides/configuring-the-approval-duration.md)

## Policy Status

Each policy has a **status** that controls whether it actually enforces or only observes.

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="163">Status</th><th width="124.333251953125">Evaluated?</th><th width="121.3333740234375">Enforced?</th><th>What happens</th></tr></thead><tbody><tr><td><strong>Off</strong></td><td>No</td><td>No</td><td>Policy is ignored. Use this to disable a policy without deleting it.</td></tr><tr><td><strong>Enforce</strong></td><td>Yes</td><td>Yes</td><td>Policy is evaluated and controls (Allow, Deny, MFA, Approval, etc.) are applied.</td></tr><tr><td><strong>Monitor</strong></td><td>Yes</td><td>No</td><td>Policy is evaluated and logged, but no control is applied—actions are allowed. Use to see impact before enforcing.</td></tr><tr><td><strong>Monitor &#x26; Notify</strong></td><td>Yes</td><td>No</td><td>Same as Monitor, but users or admins can be notified when the policy would have matched. Good for training and gradual rollout.</td></tr></tbody></table>

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FlvnPeSyZM0MzyaBEQkMh%2Fimage.png?alt=media&#x26;token=17407375-b8a0-4aad-8d05-228a8417d0c0" alt="" width="375"><figcaption></figcaption></figure>

Start with **Monitor** or **Monitor & Notify** for new policies, confirm behavior in reports and logs, then switch to **Enforce** when you’re ready.

## Controls

**Controls** define what happens when a policy **matches** a request: allow, deny, or require an extra step (MFA, justification, approval).

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="205.3333740234375">Control</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Require MFA</strong></td><td>Require multi-factor authentication before the action proceeds. Adds a strong auth step for sensitive actions.</td></tr><tr><td><strong>Require Justification</strong></td><td>Require the user to enter a reason (business justification) before the action proceeds. Good for audit and compliance.</td></tr><tr><td><strong>Require Approval</strong></td><td>Send the request to an approver; the action proceeds only if approved. Use for high-risk or sensitive elevation or access.</td></tr><tr><td><strong>Advanced: Allow</strong></td><td>Explicitly allow the action. Useful for whitelisting specific apps or users.</td></tr><tr><td><strong>Advanced: Audit</strong></td><td>Log the action but don’t block or require any step. Use for visibility without changing behavior.</td></tr><tr><td><strong>Advanced: Deny</strong></td><td>Block the action. Highest priority; overrides other controls. Use for apps or commands you never want to allow.</td></tr></tbody></table>

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2Foe83gILKahCfJKzJSyBl%2Fimage.png?alt=media&#x26;token=e40d662c-196f-4105-9712-ffba9277f0f0" alt="" width="375"><figcaption></figcaption></figure>

In **Advanced** options you can often configure **Auto-Approve** or **Auto-Deny** for specific cases (e.g., allow list of commands or apps that always succeed or always fail without going through the full approval flow). Check your dashboard for where these are set.

You can combine controls (e.g., Require MFA **and** Approval) so that high-risk actions get multiple checks. The product applies precedence rules (e.g., Deny overrides Allow) so the final outcome is clear.

## Advanced Mode & Filters

**Filters** define **who** and **what** a policy applies to. Typically all of the following must match for the policy to apply:

* **Users:** Which users or groups (e.g., by collection or wildcard).
* **Machines:** Which endpoints or deployment groups.
* **Applications:** Which executables, paths, or patterns (often with variables and wildcards).
* **Optional:** Time of day, day of week, or date range.

More **specific** filters (e.g., a single app and a single group) usually take precedence over **broad** ones (e.g., “all users” and “all machines”). So you can have a default policy for everyone and override it with a more specific policy for a subset.

**Advanced** **Mode** options may include:

* **Auto-Approve / Auto-Deny:** For allow lists or deny lists of commands or apps.
* **Custom rules:** Extra conditions (e.g., risk score, location) if your deployment supports them.
* **Extension / AllowCommands:** In some setups, an explicit list of allowed commands (e.g., for time sync or specific admin tools). If a command isn’t in the list, it may be denied when using an allow-list model.

Design policies so that the most specific cases are defined first, then use broader policies for defaults. Use [Reference: Variables & Wildcards](/keeperpam/endpoint-privilege-manager/policies/policy-examples/advanced-examples/variables-and-wildcards.md) to keep filters manageable with variables and wildcards.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/endpoint-privilege-manager/setup/policies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
