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

# Firewall Rules

> Configure and manage firewall rules to control network access for your Entegrata instance

## Overview

Firewall rules control which external services and resources your Entegrata instance can communicate with. Rules are organized by data source — making it easy to see exactly which policies apply to each integration — and by system-level rules for infrastructure-wide access.

This is a critical security feature that:

* Restricts outbound connections to only approved destinations
* Prevents unauthorized data exfiltration
* Ensures compliance with security policies
* Enables safe communication with data sources and third-party services

<Info>
  Firewall rules complement your network connection settings (S2S VPN or VNet Peering) by controlling what your Entegrata instance can access once connected to your infrastructure.
</Info>

## Navigating Firewall Settings

To access firewall settings, navigate to **Instance Settings** and click **Manage Firewall Rules** on the Firewall Settings card. The card displays a summary of your current application and network rule counts.

<Frame>
  <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/firewall-settings-card.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=dc8c90d1a5f75437ed3648a7dd9c072d" alt="Firewall Settings Card" width="334" height="204" data-path="administration/instance/images/firewall-settings-card.png" />
</Frame>

The firewall management interface is organized into two tabs:

<Frame>
  <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/firewall-overview.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=67d90321e2e8337e9f27987a4113452a" alt="Firewall Overview — Data Sources Tab" width="1200" height="762" data-path="administration/instance/images/firewall-overview.png" />
</Frame>

<Tabs>
  <Tab title="Data Sources">
    Lists all data sources that have firewall policies configured. Each data source appears as an expandable card showing:

    * **Data source icon and name** — identifies the integration
    * **Status badge** — **Active** (at least one policy configured) or **Inactive** (no policies yet)
    * **Expand/collapse arrow** — click to view individual policies

    Use the **Search data sources** field at the top to quickly filter the list.
  </Tab>

  <Tab title="System">
    Contains system-level firewall rules that apply to your Entegrata infrastructure rather than a specific data source. These include rules for services like Microsoft Fabric and other platform-wide dependencies.
  </Tab>
</Tabs>

## Understanding Firewall Policies

### Policy Types

Each firewall policy is one of two types:

<Tabs>
  <Tab title="Application Policies (FQDN)">
    **What they are**: Domain-based policies that match Fully Qualified Domain Names (FQDNs)

    **Use cases**:

    * Cloud APIs (e.g., `api.example.com`)
    * SaaS platforms (e.g., `app.salesforce.com`)
    * Services with dynamic IPs

    **Supported formats**:

    * Exact domains: `api.example.com`
    * Wildcard subdomains: `*.example.com`

    <Warning>
      Wildcard rules like `*.com` are not allowed. The wildcard can only replace one subdomain level, e.g., `*.example.com`.
    </Warning>
  </Tab>

  <Tab title="Network Policies (IP/CIDR)">
    **What they are**: IP address-based policies for specific network destinations

    **Use cases**:

    * On-premises servers with static IPs
    * Internal network resources
    * Database servers without domain names

    **Supported formats**:

    * Individual IPs: `192.168.1.100`
    * CIDR ranges: `10.0.0.0/24`
    * Single IP as CIDR: `203.0.113.50/32`

    <Tip>
      If you enter an IP without a CIDR suffix (e.g., `192.168.1.100`), the system automatically treats it as `/32` (single IP).
    </Tip>
  </Tab>
</Tabs>

### Policy Display

When you expand a data source or view the System tab, each policy row shows:

<Frame>
  <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/firewall-rules-interface.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=d7e966f606b9edc4ca9fce54a927ed52" alt="Expanded Data Source with Policies" width="1200" height="762" data-path="administration/instance/images/firewall-rules-interface.png" />
</Frame>

<ResponseField name="Policy Name" type="string">
  A descriptive label for the policy (e.g., "ADP OAuth", "Database Server", "Fabric").
</ResponseField>

<ResponseField name="Status" type="badge">
  Shows the current state of the policy:

  * **Pending** — The policy has been saved but not yet deployed. It will become active after you click **Apply Changes** and the infrastructure transition completes.
  * **Active** — The policy is deployed and enforced on your infrastructure.
</ResponseField>

<ResponseField name="Type" type="label">
  Shows **application** (FQDN-based) or **network** (IP/CIDR-based).
</ResponseField>

<ResponseField name="Value" type="string">
  The FQDN or IP address/CIDR range (e.g., `accounts.adp.com`, `1.2.3.4/32`).
</ResponseField>

<ResponseField name="Actions" type="menu">
  A three-dot menu with **Edit** and **Delete** options.
</ResponseField>

## Adding a Data Source

Use this workflow to add firewall policies for a new data source integration.

<Steps>
  <Step title="Open the Add Data Source Dialog">
    On the **Data Sources** tab, click **Add Data Source** in the top-right corner.

    A dialog appears showing all available data sources with icons. Use the search field to filter the list.

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/select-rule-type.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=3273653a221d48bcc66f1b7473f45fdd" alt="Add Data Source Dialog" width="1200" height="762" data-path="administration/instance/images/select-rule-type.png" />
    </Frame>
  </Step>

  <Step title="Select a Data Source">
    Click the data source you want to add (e.g., 3E, Aderant, Iridium).

    The data source is added to your list in an **Inactive** state and automatically expanded, showing the message: *"This data source requires at least 1 policy to activate."*
  </Step>

  <Step title="Add Policies">
    Click **Add Policies** to open the guided policy configuration dialog. This dialog is tailored to the selected data source and shows:

    **Required** — Policies that must be configured for the data source to function (e.g., a database server IP address).

    **Suggested** — Optional policies that may be needed depending on your configuration (e.g., a DNS server).

    For each policy:

    1. Enter the IP address/CIDR range or domain in the text field
    2. Click **Add** to save the policy
    3. Click **Done** when finished

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/enter-fqdn.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=0adb5d3ff18e0ff7618cbd32ecdf0c6b" alt="Guided Policy Configuration Dialog" width="1200" height="762" data-path="administration/instance/images/enter-fqdn.png" />
    </Frame>

    <Info>
      The policy type (network or application) is pre-selected based on what the data source requires. Placeholder text shows the expected format (e.g., `e.g. 10.0.0.1/32`).
    </Info>
  </Step>

  <Step title="Review Pending Policies">
    Once policies are added, they appear with a **Pending** status. The data source is now listed but the policies are not yet enforced on your infrastructure.

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/firewall-pending-policy.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=14e1ec6d6e4b96ec04f227e35babf57a" alt="Data Source and Policy in Pending State" width="1200" height="762" data-path="administration/instance/images/firewall-pending-policy.png" />
    </Frame>
  </Step>

  <Step title="Apply Changes">
    Click **Apply Changes** to deploy the new policies to your infrastructure. Once the infrastructure transition completes, the policy status changes from **Pending** to **Active** and the data source becomes fully operational.

    <Warning>
      Policies remain in **Pending** state until you click **Apply Changes** and the transition completes. They are not enforced on your infrastructure until they reach **Active** status.
    </Warning>
  </Step>
</Steps>

### Removing a Data Source

If a newly added data source is not needed, click **Remove** in the expanded data source card to remove it before applying changes.

## Adding a System Policy

Use this workflow to add custom system-level firewall policies.

<Steps>
  <Step title="Switch to the System Tab">
    Click the **System** tab at the top of the firewall settings page.

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/firewall-system-tab.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=494049244f3dc7946ee4cc3da0374599" alt="System Tab" width="1200" height="762" data-path="administration/instance/images/firewall-system-tab.png" />
    </Frame>
  </Step>

  <Step title="Open the Add Custom Policy Dialog">
    Click the **+ Add** button at the bottom of the System rules list.
  </Step>

  <Step title="Configure the Policy">
    Fill in the dialog fields:

    * **Type**: Select **Network** (for IP/CIDR) or **Application** (for FQDN)
    * **Name**: Enter a descriptive policy name
    * **Value**: Enter the IP address/CIDR range or domain name

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/add-rule-button.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=795cc457945584c27479c7210ba9337d" alt="Add Custom Policy Dialog" width="1200" height="762" data-path="administration/instance/images/add-rule-button.png" />
    </Frame>

    <Note>
      The placeholder text updates based on your type selection — `e.g. 10.0.0.1/32` for Network or a domain format for Application.
    </Note>
  </Step>

  <Step title="Save the Policy">
    Click **Save** to add the policy. It appears in the System rules list immediately with a **Pending** status.
  </Step>

  <Step title="Apply Changes">
    Click **Apply Changes** to deploy the policy to your infrastructure. Once the transition completes, the policy status changes from **Pending** to **Active**.
  </Step>
</Steps>

## Adding a Policy to an Existing Data Source

You can add additional policies to data sources that are already configured.

<Steps>
  <Step title="Expand the Data Source">
    On the **Data Sources** tab, click the data source card to expand it and view its current policies.
  </Step>

  <Step title="Click Add">
    Click the **+ Add** button at the bottom of the policy list within the expanded data source.
  </Step>

  <Step title="Configure and Save">
    The Add Custom Policy dialog opens. Select the policy type, enter a name and value, then click **Save**. The new policy appears with a **Pending** status.
  </Step>

  <Step title="Apply Changes">
    Click **Apply Changes** to deploy the updated configuration. The policy status changes to **Active** once the transition completes.
  </Step>
</Steps>

## Editing a Policy

<Steps>
  <Step title="Locate the Policy">
    Expand the relevant data source on the **Data Sources** tab, or navigate to the **System** tab.
  </Step>

  <Step title="Open the Edit Dialog">
    Click the three-dot menu (⋮) on the right side of the policy row and select **Edit**.

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/edit-rule-button.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=f50bc740306f4860d1ef6d27abb071fc" alt="Three-dot Menu with Edit and Delete" width="1200" height="762" data-path="administration/instance/images/edit-rule-button.png" />
    </Frame>
  </Step>

  <Step title="Update the Policy">
    Modify the policy details as needed. The same validation rules apply as when creating a new policy.

    <Frame>
      <img src="https://mintcdn.com/entegrata/AByPQ874v08a_HVl/administration/instance/images/edit-rule-dialog.png?fit=max&auto=format&n=AByPQ874v08a_HVl&q=85&s=5ef4655a029265ce1da6d195a77ef0af" alt="Edit Policy Dialog" width="1200" height="762" data-path="administration/instance/images/edit-rule-dialog.png" />
    </Frame>
  </Step>

  <Step title="Save and Apply">
    Click **Save**, then click **Apply Changes** to deploy the update to your infrastructure.
  </Step>
</Steps>

## Deleting a Policy

<Warning>
  Before deleting a policy, ensure it is not required for active data collection or critical integrations. Removing a policy may cause collectors or integrations to fail.
</Warning>

<Steps>
  <Step title="Locate the Policy">
    Expand the relevant data source or navigate to the **System** tab.
  </Step>

  <Step title="Delete the Policy">
    Click the three-dot menu (⋮) on the policy row and select **Delete**.
  </Step>

  <Step title="Apply Changes">
    Click **Apply Changes** to remove the policy from your infrastructure.

    <Info>
      The deletion is saved to your configuration immediately but the policy remains active on your infrastructure until you apply changes.
    </Info>
  </Step>
</Steps>

## Applying Firewall Changes

### Understanding the Save-Then-Apply Workflow

Firewall management uses a **save-then-apply** workflow. When you add or edit a policy, it is saved with a **Pending** status. Pending policies are not enforced on your infrastructure until you click **Apply Changes** and the transition completes, at which point they become **Active**.

<Steps>
  <Step title="Make Changes">
    Add, edit, or delete policies as needed. You can batch multiple changes together.
  </Step>

  <Step title="Apply Changes">
    Click the **Apply Changes** button to deploy all staged changes to Azure infrastructure.
  </Step>

  <Step title="Wait for Transition">
    The system triggers an infrastructure update:

    * Status changes to **Transitioning**
    * A loading screen displays progress
    * The system polls for completion every 30 seconds
    * Changes are deployed via Pulumi Infrastructure as Code
  </Step>

  <Step title="Changes Active">
    Once the transition completes:

    * Instance status returns to **Idle**
    * All **Pending** policies transition to **Active**
    * New firewall policies are now enforced
    * Your instance can access newly allowed destinations
    * Removed destinations are now blocked
  </Step>
</Steps>

### Why Save-Then-Apply?

<Card icon="check-circle">
  **Safety**: Review all changes before deploying to production

  **Efficiency**: Batch multiple policy changes into a single infrastructure update

  **Flexibility**: Experiment with policies without immediately affecting infrastructure

  **Transparency**: Clear separation between configuration and deployment
</Card>

### During Transition State

While your instance is in **Transitioning** state:

* Existing firewall policies remain active
* Data collection continues normally
* You cannot make additional firewall changes
* You cannot modify other instance settings
* You cannot apply new changes until transition completes

<Info>
  Firewall infrastructure transitions typically take 5-15 minutes depending on the complexity of changes being deployed.
</Info>

## Validation Rules

<AccordionGroup>
  <Accordion title="Valid FQDN Examples">
    **These will be accepted:**

    * `api.salesforce.com`
    * `*.azure.com`
    * `app.subdomain.example.com`
    * `service-123.cloud.provider.net`
    * `my-api.example.co.uk`
  </Accordion>

  <Accordion title="Invalid FQDN Examples">
    **These will be rejected:**

    * `*.com` (wildcard too broad)
    * `example` (missing TLD)
    * `http://api.example.com` (includes protocol)
    * `api.example.com:443` (includes port)
    * `api..example.com` (double dots)
  </Accordion>

  <Accordion title="Valid IP/CIDR Examples">
    **These will be accepted:**

    * `192.168.1.100`
    * `192.168.1.100/32`
    * `10.0.0.0/24`
    * `172.16.0.0/16`
    * `203.0.113.0/28`
  </Accordion>

  <Accordion title="Invalid IP/CIDR Examples">
    **These will be rejected:**

    * `256.1.1.1` (octet > 255)
    * `192.168.1.1/33` (CIDR > 32)
    * `192.168.1` (incomplete IP)
    * `2001:db8::1` (IPv6 not supported)
    * `192.168.1.1-192.168.1.10` (range notation not supported)
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Collector fails after adding firewall policy">
    **Symptoms**: Collector reports connection failures despite policy being added

    **Solutions**:

    * Check if the policy status is still **Pending** — policies are not enforced until they reach **Active** status after applying changes
    * Wait for any Transitioning state to complete
    * Double-check the policy value matches the collector's actual endpoint
    * Ensure the policy uses the correct type (application for domains, network for IPs)
    * Check collector logs for the actual connection target
  </Accordion>

  <Accordion title="Data source shows Inactive after adding policies">
    **Symptoms**: Data source remains Inactive even after adding policies

    **Solutions**:

    * Ensure at least one **Required** policy has been added
    * Verify the policy value passed validation (no error messages in the form)
    * Try removing and re-adding the data source
  </Accordion>

  <Accordion title="Cannot find a data source in the Add Data Source dialog">
    **Symptoms**: The data source you need is not listed

    **Solutions**:

    * Check the search field for typos
    * The data source may already be added — check the Data Sources tab
    * If the data source is not in the catalog, add rules manually via the **System** tab
  </Accordion>

  <Accordion title="Wildcard policy doesn't work as expected">
    **Symptoms**: Connection fails despite a wildcard rule that should match

    **Solutions**:

    * `*.example.com` matches `api.example.com` but NOT `api.sub.example.com`
    * For nested subdomains, add multiple rules or use exact domains
    * `*.example.com` does not match `example.com` itself — add both if needed
    * Verify the policy has been applied (not just saved)
  </Accordion>

  <Accordion title="Changes stuck in Transitioning state">
    **Symptoms**: Apply Changes triggered but state doesn't return to Idle

    **Solutions**:

    * Wait at least 15-20 minutes for infrastructure updates
    * Refresh the page to see current status
    * Check Azure portal for alerts in your subscription
    * If it persists beyond 30 minutes, contact Entegrata support
  </Accordion>
</AccordionGroup>

## Security Best Practices

<Card title="Firewall Security Recommendations" icon="shield-check">
  **Principle of Least Privilege**

  * Only allow access to services actively in use
  * Use specific FQDNs over wildcards when possible
  * Prefer /32 CIDR (single IP) over broad ranges
  * Use the guided policy setup when adding data sources — it recommends only what's needed

  **Regular Audits**

  * Review firewall policies quarterly
  * Remove data sources that are no longer in use
  * Verify policies match active collectors and integrations
  * Use the search feature to quickly audit specific data sources

  **Change Management**

  * Test policy changes in non-production environments first
  * Batch related changes and apply them together
  * Coordinate firewall changes with your security team
  * Plan changes during maintenance windows
</Card>

## Related Documentation

<CardGroup cols={2}>
  <Card title="Network Connections" icon="network-wired" href="/administration/instance/network-connections">
    Configure S2S VPN or VNet Peering for network connectivity
  </Card>

  <Card title="Instance Overview" icon="server" href="/administration/instance/overview">
    Learn about instance administration concepts
  </Card>

  <Card title="Collector Configuration" icon="database" href="/data/collector/overview">
    Set up data collectors that use firewall rules
  </Card>

  <Card title="Contact Support" icon="headset" href="https://mysupport.entegrata.com/portal/new">
    Get help with firewall configuration issues
  </Card>
</CardGroup>
