> ## Documentation Index
> Fetch the complete documentation index at: https://anaconda.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Policy management

export const DefinitionDescription = ({children}) => <dd className="definition-description">{children}</dd>;

export const DefinitionTerm = ({children}) => <dt className="definition-term">{children}</dt>;

export const DefinitionList = ({children}) => <dl className="definition-list">{children}</dl>;

export const GCell = ({children, className}) => <div className={`grid-table-cell ${className || ""}`} role="cell">
    {children}
  </div>;

export const GTH = ({children, className}) => <div className={`grid-table-th ${className || ""}`} role="columnheader">
    {children}
  </div>;

export const GRow = ({children}) => <div className="grid-table-row" role="row">{children}</div>;

export const GBody = ({children}) => <div className="grid-table-body" role="rowgroup">{children}</div>;

export const GHead = ({children}) => <div className="grid-table-head" role="rowgroup">{children}</div>;

export const GTable = ({children, className, cols}) => <div className={`grid-table not-prose overflow-hidden rounded-2xl ${className || ""}`} style={{
  "--grid-table-cols": cols
}} role="table">
    {children}
  </div>;

<Badge shape="pill" stroke color="yellow" icon="triangle-exclamation">Business or Custom plans only</Badge>

Policies let you define and enforce security and compliance standards across your organization. There are two types of policies:

* **Channel policies** restrict which packages are available from a channel based on criteria like CVE score, license, or platform.
* **Environment policies** enforce compliance rules across all logged conda environments in your organization, with automated warning and blocking based on service level agreement (SLA) timelines.

## Channel policies

A channel policy is an additional security measure you can apply to a <Tooltip tip="A location (URL or file path) in a repository where conda looks for packages.">channel</Tooltip> to restrict the available <Tooltip tip="Software files and information about the software, such as its name, version, and description, bundled into a file that can be installed and managed by a package manager.">packages</Tooltip> that can be sourced from it. Once configured, channel policies automatically ensure that only packages that meet your organization's security requirements are available from a given channel, eliminating the need for administrators to manually review or re-approve packages when new <Tooltip tip="A public identifier for a known security flaw in software, used to track and assess vulnerabilities.">CVEs</Tooltip> are reported.

<Note>
  Channel policies are currently managed from the **Channels** page. In a future release, channel policy management will move to the **Policies** page in the Platform UI.
</Note>

<Accordion title="Channel policy parameters">
  <AccordionGroup>
    <Accordion title="License Family">
      Excludes packages with the specified license family.

      <GTable cols="25% 75%">
        <GHead>
          <GRow>
            <GTH>Comparators</GTH>
            <GTH>Options</GTH>
          </GRow>
        </GHead>

        <GBody>
          <GRow>
            <GCell>`is`<br />`is not`</GCell>
            <GCell>`AGPL`, `APACHE`, `BSD`, `CC`, `GPL`, `GPL2`, `GPL3`, `LGPL`, `MIT`, `MOZILLA`, `None`, `OTHER`, `PSF`, `Public-Domain`</GCell>
          </GRow>
        </GBody>
      </GTable>
    </Accordion>

    <Accordion title="CVE Score">
      Excludes packages with CVE scores in the specified range. For more information, see [CVE scores](/docs/anaconda-platform/admin/cve/#cve-scores).

      <GTable cols="40% 60%">
        <GHead>
          <GRow>
            <GTH>Comparators</GTH>
            <GTH>Options</GTH>
          </GRow>
        </GHead>

        <GBody>
          <GRow>
            <GCell>`Greater than`<br />`Greater than or equal to`</GCell>
            <GCell>`1`-`10`</GCell>
          </GRow>
        </GBody>
      </GTable>
    </Accordion>

    <Accordion title="CVE Status">
      Excludes packages that are associated with a CVE that has the specified status.

      <GTable cols="25% 75%">
        <GHead>
          <GRow>
            <GTH>Comparators</GTH>
            <GTH>Options</GTH>
          </GRow>
        </GHead>

        <GBody>
          <GRow>
            <GCell>`is`<br />`is not`</GCell>
            <GCell>`Active`, `Reported`, `Mitigated`, `Cleared`, `Disputed`</GCell>
          </GRow>
        </GBody>
      </GTable>

      <Note>Keep in mind that packages can be associated with multiple CVEs.</Note>
    </Accordion>

    <Accordion title="Package Age">
      Excludes packages with the specified package age.

      <Note>
        The package age is calculated based on the date the package was last updated.
      </Note>

      <GTable cols="40% 60%">
        <GHead>
          <GRow>
            <GTH>Comparators</GTH>
            <GTH>Options</GTH>
          </GRow>
        </GHead>

        <GBody>
          <GRow>
            <GCell>`Greater than`<br />`Greater than or equal to`</GCell>
            <GCell>**Value:** Enter a number<br />**Unit:** `days`, `months`, or `years`</GCell>
          </GRow>
        </GBody>
      </GTable>
    </Accordion>

    <Accordion title="Platform">
      Excludes packages with the specified platform.

      <GTable cols="25% 75%">
        <GHead>
          <GRow>
            <GTH>Comparators</GTH>
            <GTH>Options</GTH>
          </GRow>
        </GHead>

        <GBody>
          <GRow>
            <GCell>`is`<br />`is not`</GCell>
            <GCell>`linux-32`, `linux-64`, `linux-armv6l`, `linux-armv7l`, `linux-ppc64`, `linux-ppc64le`, `linux-s390x`, `noarch`, `osx-64`, `win-32`, `win-64`, `zos-z`</GCell>
          </GRow>
        </GBody>
      </GTable>
    </Accordion>

    <Accordion title="Conda Spec">
      Excludes packages with the specified [conda spec](https://docs.conda.io/projects/conda-build/en/latest/resources/package-spec.html#package-match-specifications).
    </Accordion>
  </AccordionGroup>
</Accordion>

### Creating a channel policy

1. From the <Icon icon="network-wired" iconType="regular" /> **Channels** page, click **Create** <Icon icon="plus" iconType="regular" /> under **POLICIES**.

2. Provide a unique name for your policy. Anaconda recommends naming it something descriptive.

3. In the **Exclude package if** section, click <Icon icon="filter" iconType="solid" /> **Add filter**.

4. In the **FILTER GROUP** section that appears, set filter parameters for packages you want to *exclude*.

5. Click <Icon icon="filter" iconType="solid" /> **Add Filter to Group** to include additional parameters for this filter group, or click <Icon icon="filter" iconType="solid" /> **Add filter** to add a separate filter for this policy.

   <Note>
     Filters can be applied using either `and` or `or` logic. Click the operator to toggle between the two options.

     <Frame>
       <img src="https://mintcdn.com/anaconda-29683c67/6tejmKOgBEue4gFz/images/ap_policy_filter_and_or_operators.png?fit=max&auto=format&n=6tejmKOgBEue4gFz&q=85&s=2dc9d85653155be49d610671f8041bee" alt="Policy filter and or operators" width="1922" height="1082" data-path="images/ap_policy_filter_and_or_operators.png" />
     </Frame>

     This operator can greatly impact which packages are excluded:

     * `and`: All filter parameters must be met by a package for it to be excluded.
     * `or`: Only one filter parameter needs to be met by a package for it to be excluded.

     For example, setting a filter to exclude packages with a CVE score greater than 7 `and` a Platform of linux-64 excludes linux-64 packages that have a CVE score greater than 7.

     However, a filter that excludes packages with a CVE score greater than 7 `or` a Platform of linux-64 excludes:

     * All packages that have a CVE score greater than 7
     * All linux-64 packages
   </Note>

6. Repeat this process to apply further package filtering preferences.

7. If necessary, in the **Override exclusions and include a package if** section, click <Icon icon="filter" iconType="solid" /> **Add filter**.

   <Note>
     In some cases, the exclusion parameters of a policy filter might inadvertently remove packages (or dependencies) that are critical for production projects. The *override* filter allows administrators to add these specific packages back to the channel.

     You can apply overrides using [conda spec](https://docs.conda.io/projects/conda-build/en/latest/resources/package-spec.html#package-match-specifications) and CVE Status.
   </Note>

   <Warning>
     Be cautious when using overrides based on CVE Status! Packages contain multiple files, and each file can be associated with different CVEs. For example, let's say you've set up a policy that excludes packages with a CVE Score of 8 or higher, or that have an Active CVE Status.

     Now, suppose that there is a package that contains a file that's associated with an active CVE that has a score of 9.0, while another file in the same package is associated with a different CVE that has been cleared.

     If you override the policy to allow packages with a cleared CVE status to be pulled back into the channel, *all* files for that package are added back to the channel, even though one of the files is associated with an active CVE and the score exceeds the CVE score threshold you set for the policy. Because most packages contain files that are associated with CVEs that have been cleared, this can result in files that are not compliant with your security policy being added back to the channel.
   </Warning>

   <Accordion title="Example channel policy">
     Let's say you want to exclude packages that have a CVE score greater than 8, unless the package file is associated with a CVE that has a **Cleared** status. Your policy filter would look like this:

     <Frame>
       <img src="https://mintcdn.com/anaconda-29683c67/6tejmKOgBEue4gFz/images/ap_policy_filter_example.png?fit=max&auto=format&n=6tejmKOgBEue4gFz&q=85&s=98814aa9b80334c1734492b994774264" alt="Example policy filter" width="1922" height="1082" data-path="images/ap_policy_filter_example.png" />
     </Frame>
   </Accordion>

### Applying a channel policy

Applying a channel policy to a channel restricts the packages that are able to be sourced from it.

1. From the <Icon icon="network-wired" iconType="regular" /> **Channels** page, click **Apply** <Icon icon="plus" iconType="regular" /> beside a channel's name.
2. Select a policy to apply to the channel.
3. Click **Apply** to confirm.

Once the policy is applied, the status beneath the policy transitions through the following phases:

* In Queue
* In Progress
* Completed
* Scheduled

The **Scheduled** status indicates the channel is set to auto-update. This means the filter will be reapplied to the channel every four hours and will update the channel's contents accordingly.

<Note>
  Remove the policy filter by clicking <Icon icon="xmark" iconType="regular" /> **Remove Policy** beside the policy name in the channel list.
</Note>

Package files that have been removed from a channel due to a policy filter display the specific reasons they were excluded.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/38V1XTpdo_dUNFXe/images/ap_channel_artifacts_removed.png?fit=max&auto=format&n=38V1XTpdo_dUNFXe&q=85&s=af3db351fdd23ec5b614a9666dfdb39f" alt="Channel artifacts removed" width="1922" height="1082" data-path="images/ap_channel_artifacts_removed.png" />
</Frame>

<Note>
  Removed files are not grouped, and some packages have multiple pages of files. For packages with many files, it is best to use the search box to narrow results.
</Note>

### Editing a channel policy

<Warning>
  Policies that are currently in use cannot be edited.
</Warning>

1. Select the policy name from the **POLICIES** list.
2. Change the parameters of the filter as if you were creating a policy.
3. Click **Save**.

<Note>
  A <Icon icon="triangle-exclamation" iconType="solid" /> warning displayed beside your filter indicates that it has become deprecated. Deprecated filters still work, but Anaconda recommends you update your policies to no longer use these filters.
</Note>

### Viewing the policy report

Once you have applied a channel policy to a channel, view the **Policy Report** to see a breakdown of the number of package files across various platforms that have been removed, and how many remain.

From the <Icon icon="filter" iconType="solid" /> **Channels** page, click the **POLICY RESULTS** for any channel to open the **Policy Report**.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/38V1XTpdo_dUNFXe/images/ap_artifacts_removed.png?fit=max&auto=format&n=38V1XTpdo_dUNFXe&q=85&s=c1ebd329c80ac4bcab817fba6f631405" alt="Policy report dialog" width="1922" height="1082" data-path="images/ap_artifacts_removed.png" />
</Frame>

<Note>
  From here, you can download the policy report or the [policy report delta](#policy-deltas) in `.csv` format.
</Note>

### Policy deltas

Sometimes, due to newly reported CVEs or an updated CVE score or status, the contents of your channel will change when the filter performs its scheduled run. A package may become available that was not available previously, or you could find that a package you've been using is removed from your channel!

From the channel details page, click **View Policy Deltas** to view a list of deltas. Deltas are the recorded changes to your channel's contents. Policy delta history begins from the first change that occurs after you start tracking the channel. Once the policy is removed from the channel (if you need to edit it, for example) the policy delta history is lost. A new policy delta history is established once the policy is reapplied to the channel. Use the **Start** and **End** date filters to narrow your timeline to locate a specific delta, if necessary. Click the count under either **FILES ADDED** or **FILES REMOVED** to see a list of package files from a specific run.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/6tejmKOgBEue4gFz/images/ap_policy_deltas_view.gif?s=d90424434e1decd0b6f6f6c2957359fe" alt="Policy deltas UI navigation" width="1276" height="718" data-path="images/ap_policy_deltas_view.gif" />
</Frame>

<Tip>
  Click the arrow <Icon icon="arrow-left" iconType="regular" /> at the top of the file list to return to your channel policy deltas.
</Tip>

## Environment policy

<Badge shape="pill" stroke color="green">Closed Beta - Contact your CSM to participate</Badge>

An environment policy defines compliance rules that are automatically enforced across all conda environments that are logged in your organization. Environments that violate the policy receive a warning and enter a remediation period where members have time to remediate per your organization's established Service Level Agreement (SLA). If violations remain unresolved past the SLA period, the environment is blocked from use.

<Note>
  Only one environment policy can be active per organization.
</Note>

### Compliance lifecycle

Environments are evaluated against the policy each time they are logged. This means compliance is checked whenever a member performs a `create`, `install`, `remove`, `rename`, or `update` action with conda.

The compliance lifecycle follows this sequence:

```mermaid theme={null}
graph LR
    A[Compliant] -->|Violation detected| B[Warning]
    B -->|SLA expires| C[Blocked]
    B -->|Violation resolved| A
    C -->|Violation resolved| A
```

### What members experience

When a member attempts to activate an environment in a warning or blocked state, they are notified of the compliance status with guidance:

<DefinitionList>
  <DefinitionTerm>
    Warning
  </DefinitionTerm>

  <DefinitionDescription>
    The member sees a warning indicating the violation and how much time remains before the environment is blocked. They can still proceed with activation.
  </DefinitionDescription>

  <DefinitionTerm>
    Blocked
  </DefinitionTerm>

  <DefinitionDescription>
    The member cannot activate the environment. They see a message indicating which policy rules are violated and what needs to be resolved.
  </DefinitionDescription>
</DefinitionList>

### Creating an environment policy

The policy wizard provides a step-by-step process to building a policy for your organization's environments. To create an environment policy, select <Icon icon="filter" iconType="regular" /> **Policies**, then click **Create Policy**.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_create_env_policy.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=99a0609b6583aa361841d6aeb8374a8b" alt="The environment policy creation wizard" width="1922" height="767" data-path="images/ap_create_env_policy.png" />
</Frame>

<Steps>
  <Step title="Set details">
    Provide a name and optional description for your policy.

    <Frame>
      <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_details_step.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=6a3d9c6f297059eef739d1f51b2e14bb" alt="Policy Details step showing name and description fields" width="1922" height="1082" data-path="images/ap_env_policy_details_step.png" />
    </Frame>
  </Step>

  <Step title="Set rules">
    Rules define what makes an environment non-compliant. You can configure any combination of the three rule types below. Each rule is independently optional, but you must configure at least one to enable the policy.

    <Tabs>
      <Tab title="Vulnerability threshold">
        Use this rule to flag environments containing packages with known security vulnerabilities. This is typically the most impactful rule, as it directly addresses your organization's exposure to exploitable software.

        <Frame>
          <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_vulnerability_rule.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=ad43220c819ab074a0e1e8db96a25756" alt="Vulnerability rule configuration showing CVSS slider and CVE Status checkboxes" width="1922" height="1082" data-path="images/ap_env_policy_vulnerability_rule.png" />
        </Frame>

        Set a minimum CVSS score and select one or more vulnerability statuses.

        <Note>
          A common starting configuration is a CVSS threshold of `7.0` with `Active` and `Reported` statuses selected. This catches confirmed high-severity vulnerabilities without generating excessive noise from lower-risk or already-resolved issues.

          ***

          Packages must meet both parameters to trigger a warning for an environment. For example, a package with a CVSS score of `9.0` and a `Cleared` status would not trigger a violation for the policy configuration above.
        </Note>

        <DefinitionList>
          <DefinitionTerm>
            CVSS score threshold
          </DefinitionTerm>

          <DefinitionDescription>
            Set the minimum severity score (1.0 to 10.0) that triggers a violation. Any package with a CVE at or above this score is considered a violation.
          </DefinitionDescription>
        </DefinitionList>

        <Accordion title="CVSS severity scale reference">
          <GTable cols="15% 20% 65%">
            <GHead>
              <GRow>
                <GTH>Severity</GTH>
                <GTH>Score range</GTH>
                <GTH>Guidance</GTH>
              </GRow>
            </GHead>

            <GBody>
              <GRow>
                <GCell>Low</GCell>
                <GCell>0.1 - 3.9</GCell>
                <GCell>Minimal risk. Flagging at this level generates many violations and is best suited for high-security environments.</GCell>
              </GRow>

              <GRow>
                <GCell>Medium</GCell>
                <GCell>4.0 - 6.9</GCell>
                <GCell>Moderate risk. A common starting point for organizations beginning to enforce vulnerability policies.</GCell>
              </GRow>

              <GRow>
                <GCell>High</GCell>
                <GCell>7.0 - 8.9</GCell>
                <GCell>Significant risk. Recommended for most organizations as a balance between security and workflow disruption.</GCell>
              </GRow>

              <GRow>
                <GCell>Critical</GCell>
                <GCell>9.0 - 10.0</GCell>
                <GCell>Severe risk. Only flags the most dangerous vulnerabilities. Use this if you want minimal disruption while still catching the worst exposures.</GCell>
              </GRow>
            </GBody>
          </GTable>
        </Accordion>

        <DefinitionList>
          <DefinitionTerm>
            CVE status
          </DefinitionTerm>

          <DefinitionDescription>
            Select which vulnerability statuses count as violations. This lets you control whether your policy reacts to all reported vulnerabilities or only those that have been confirmed.
          </DefinitionDescription>
        </DefinitionList>

        <Accordion title="CVE status reference">
          <GTable cols="15% 85%">
            <GHead>
              <GRow>
                <GTH>Status</GTH>
                <GTH>What it means</GTH>
              </GRow>
            </GHead>

            <GBody>
              <GRow>
                <GCell>**Active**</GCell>
                <GCell>The vulnerability is confirmed and unresolved. Most organizations should include this status.</GCell>
              </GRow>

              <GRow>
                <GCell>**Reported**</GCell>
                <GCell>The vulnerability has been reported but not yet confirmed by Anaconda's curation team. Include this for a more cautious posture.</GCell>
              </GRow>

              <GRow>
                <GCell>**Mitigated**</GCell>
                <GCell>A workaround or partial fix is available. Typically excluded from policies since the risk is reduced.</GCell>
              </GRow>

              <GRow>
                <GCell>**Cleared**</GCell>
                <GCell>The vulnerability has been fully resolved or determined not to affect this package. Typically excluded.</GCell>
              </GRow>

              <GRow>
                <GCell>**Disputed**</GCell>
                <GCell>The validity of the vulnerability is contested. Include this only if your organization requires strict precautionary enforcement.</GCell>
              </GRow>
            </GBody>
          </GTable>
        </Accordion>
      </Tab>

      <Tab title="Python version">
        Use this rule to enforce a standard Python version range across your organization. This helps prevent compatibility issues and ensures teams are running supported versions.

        <Note>
          Python version violations always produce a **Warning** and never escalate to a **Block**, regardless of the SLA period.
        </Note>

        <Frame>
          <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_python_version_rule.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=3022d2ba643b9d8cb7af498d3c1887a3" alt="Python Version rule configuration showing comparator dropdown and version input" width="1923" height="1082" data-path="images/ap_env_policy_python_version_rule.png" />
        </Frame>

        Select a comparator and specify a version number:

        <GTable cols="20% 30% 50%">
          <GHead>
            <GRow>
              <GTH>Comparator</GTH>
              <GTH>Example</GTH>
              <GTH>Effect</GTH>
            </GRow>
          </GHead>

          <GBody>
            <GRow>
              <GCell>**At least**</GCell>
              <GCell>At least 3.10</GCell>
              <GCell>Flags environments running Python below 3.10</GCell>
            </GRow>

            <GRow>
              <GCell>**No more than**</GCell>
              <GCell>No more than 3.12</GCell>
              <GCell>Flags environments running Python above 3.12</GCell>
            </GRow>

            <GRow>
              <GCell>**Exactly**</GCell>
              <GCell>Exactly 3.11.4</GCell>
              <GCell>Flags any environment not running Python at 3.11.4</GCell>
            </GRow>

            <GRow>
              <GCell>**Between**</GCell>
              <GCell>Between 3.12 and 3.14</GCell>
              <GCell>Flags environments running Python below 3.12 or above 3.14</GCell>
            </GRow>
          </GBody>
        </GTable>

        <Tip>
          Use the **At least** comparator to set a minimum supported version (for example, **At least 3.10**) rather than pinning to an exact version. This gives teams flexibility while ensuring no one is running end-of-life Python releases.
        </Tip>
      </Tab>

      <Tab title="Denied licenses">
        Use this rule to prevent environments from containing packages with license types that conflict with your organization's legal or compliance requirements.

        <Frame>
          <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_denied_licenses_rule.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=c6a3e756eba10fa7db55f9128673f990" alt="Denied Licenses rule configuration showing the license family multiselect dropdown" width="1922" height="1082" data-path="images/ap_env_policy_denied_licenses_rule.png" />
        </Frame>

        Select one or more license families to deny. Any environment containing a package associated with a denied license family is flagged as non-compliant.

        Available license families:

        `AGPL`, `APACHE`, `BSD`, `CC`, `GPL`, `GPL2`, `GPL3`, `LGPL`, `MIT`, `MOZILLA`, `None`, `OTHER`, `PSF`, `Public-Domain`

        <Note>
          Consult your legal team before configuring this rule. Common restrictions include denying **AGPL** (requires source disclosure for network use) and **GPL** families (copyleft requirements may conflict with proprietary distribution).

          ***

          Packages with a license of **None** have no declared license, which may also pose a compliance risk.
        </Note>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Set SLA period">
    The SLA period is the remediation window between when a violation is detected and when the environment is blocked.

    <Frame>
      <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_sla_step.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=16acb9ec4a60e72e1ea218b05e60e127" alt="SLA Period configuration showing toggle, duration input, and days or hours selection" width="1922" height="1082" data-path="images/ap_env_policy_sla_step.png" />
    </Frame>

    <GTable cols="25% 75%">
      <GHead>
        <GRow>
          <GTH>Setting</GTH>
          <GTH>Description</GTH>
        </GRow>
      </GHead>

      <GBody>
        <GRow>
          <GCell>**SLA enforcement**</GCell>
          <GCell>Toggle the SLA period on or off.<br /><Note>When off, the policy operates in warn-only mode: violations generate warnings but environments are never blocked.</Note></GCell>
        </GRow>

        <GRow>
          <GCell>**Duration**</GCell>
          <GCell>The remediation window before the environment is blocked. The default SLA period duration is 14 days.<br /><br />**Days:** 1-365<br />**Hours:** 1-23</GCell>
        </GRow>
      </GBody>
    </GTable>
  </Step>

  <Step title="Review and enable">
    The review step displays a summary of your policy configuration. *Verify your settings before enabling.* If you need to make changes, click the <Icon icon="pencil" iconType="regular" /> icon beside any section to return to that step. When ready, click **Enable Policy** to save and activate the policy.

    <Frame>
      <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_review_and_enable.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=0c33a7f5939f9a6db9572dc4019aabff" alt="Review step showing policy summary with Details, Rules, and SLA Period sections" width="1922" height="1082" data-path="images/ap_env_policy_review_and_enable.png" />
    </Frame>
  </Step>
</Steps>

### Enabling and disabling an environment policy

Disabling a policy pauses enforcement but retains existing compliance states. Your existing environment policy configurations are preserved, and you can re-enable the policy at any time. When re-enabled, environments are re-evaluated against the policy and compliance states are updated accordingly.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/B3a8UE1bZoYixyV7/images/ap_env_policy_enable_disable.png?fit=max&auto=format&n=B3a8UE1bZoYixyV7&q=85&s=a36dd3335631677bb4a6a3a6e43675db" alt="Toggle for enabling and disabling an environment policy" width="1922" height="667" data-path="images/ap_env_policy_enable_disable.png" />
</Frame>

### Editing an environment policy

To edit an existing policy, select <Icon icon="filter" iconType="regular" /> **Policies** from the left-hand navigation, then click <Icon icon="pencil" iconType="regular" /> **Edit Policy**.

The wizard opens your current environment policy configurations. Make changes as necessary, then go to **Review** and click **Save** to update and apply your new environment policy.

<Warning>
  Editing a policy can change the compliance state of environments across your organization. For example, lowering the CVSS threshold may cause previously compliant environments to enter a warning state on their next audit. Communicate with your teams and review the potential impact before tightening policy thresholds.
</Warning>

### Recommended rollout approach

For organizations enabling a policy for the first time, consider a phased approach:

<DefinitionList>
  <DefinitionTerm>
    Warn-only mode
  </DefinitionTerm>

  <DefinitionDescription>
    Create the policy with the SLA period turned off. This lets you observe which environments would be affected without blocking anyone.
  </DefinitionDescription>

  <DefinitionTerm>
    Review impact
  </DefinitionTerm>

  <DefinitionDescription>
    Use the [environment dashboard](/docs/anaconda-platform/admin/environments#environment-dashboard) to understand how many environments are non-compliant and communicate with affected teams.
  </DefinitionDescription>

  <DefinitionTerm>
    Enable SLA enforcement
  </DefinitionTerm>

  <DefinitionDescription>
    Once teams are aware and have had time to begin remediation, edit the policy to turn on the SLA period with a generous duration (for example, 14 days or longer).
  </DefinitionDescription>

  <DefinitionTerm>
    Tighten over time
  </DefinitionTerm>

  <DefinitionDescription>
    As your organization's compliance posture improves, consider adjusting thresholds or shortening the SLA period.
  </DefinitionDescription>
</DefinitionList>
