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

# Microsoft Azure Storage

> Connect Azure Storage management APIs to Iru Compliance via OAuth to collect storage account and container configuration without reading blob or file contents.

### About Microsoft Azure Storage

The **Microsoft Azure Storage** source reads **storage account** settings, **blob container** metadata, **container access policies**, **lifecycle management** rules, and **network rules** through **Azure Resource Manager**. **Iru does not read blob contents, file share data, queue messages, or table rows**; it collects only configuration and container-level metadata the management API returns.

Authentication is **delegated OAuth 2.0** (Microsoft Entra ID) as the user who completes the wizard. Iru does **not** modify storage accounts, containers, or policies.

For a full **subscription** inventory, assign **Reader** at **subscription** scope. **Reader** scoped only to a **resource group** can hide accounts in other groups.

### How It Works

Iru uses Microsoft’s **OAuth 2.0 authorization code flow** against **Azure Resource Manager**. The requested scope is:

`https://management.azure.com/user_impersonation`

| Detail             | Value                                                  |
| ------------------ | ------------------------------------------------------ |
| **Category**       | Developer tools                                        |
| **Authentication** | OAuth 2.0 (Microsoft Entra ID, Azure Resource Manager) |
| **Vendor plan**    | Any Azure subscription with storage resources          |

#### What Iru collects

| Data type                     | Notes                                                                              |
| ----------------------------- | ---------------------------------------------------------------------------------- |
| Storage accounts              | Name, location, SKU (LRS, GRS, ZRS), kind, access tier, TLS version, network rules |
| Blob containers               | Container names, public access settings, metadata                                  |
| Container access policies     | Stored access policies and their permissions                                       |
| Lifecycle management policies | Tier transitions and deletion rules                                                |
| Network rules                 | Firewall rules, service endpoints, private endpoints                               |

**Reader** at subscription scope includes `Microsoft.Storage/*/read` for account and container metadata through ARM, **not** data-plane access to object contents.

Official references: [Azure Storage documentation](https://learn.microsoft.com/azure/storage/), [Storage Resource Provider REST API](https://learn.microsoft.com/rest/api/storagerp/), [Storage built-in roles](https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/storage), [Authorize access with Azure RBAC](https://learn.microsoft.com/azure/storage/blobs/authorize-access-azure-active-directory).

### Prerequisites

* **Microsoft Entra ID** sign-in to the [Azure portal](https://portal.azure.com).
* **Reader** (or higher) on the **subscription** you connect. Assign at **subscription** scope for complete visibility.
* Browser **pop-ups** allowed so the connector wizard can open when you enable the source.

Confirm access: **Subscriptions** → your subscription → **Access control (IAM)** → **View my access**.

Example role assignment (replace placeholders):

```bash theme={null}
az role assignment create \
  --assignee <your-user-principal-name> \
  --role "Reader" \
  --scope /subscriptions/<subscription-id>
```

### Connect Microsoft Azure Storage to Iru

Use **Microsoft Azure** first to confirm portal access and **Reader** coverage on the subscription, then complete OAuth in **Iru Compliance**. The wizard shows **Step 1 of 1: Perform OAuth Authentication**.

<Tabs>
  <Tab title="Microsoft Azure">
    <Note>
      Complete this tab before you start OAuth in **Iru Compliance**.
    </Note>

    <Steps>
      <Step title="Sign in to the Azure portal">
        Open [portal.azure.com](https://portal.azure.com) and sign in with the account you will use in the Iru wizard.
      </Step>

      <Step title="Open your target subscription">
        Search for **Subscriptions**, then open the subscription whose **storage accounts** and related ARM metadata Iru should read.
      </Step>

      <Step title="Verify Reader access">
        Open **Access control (IAM)** → **View my access**. Confirm **Reader** (or equivalent read) at subscription scope, per **Prerequisites**.
      </Step>

      <Step title="Allow pop-ups in your browser">
        Allow **pop-ups** for your **Iru** hostname so the Microsoft consent window can open.
      </Step>

      <Step title="Plan for the right Entra tenant">
        If you use multiple tenants, use a clean browser session so OAuth signs in to the tenant that owns the subscription.
      </Step>
    </Steps>

    <Note>
      Continue on the [**Iru Compliance**](#iru-compliance) tab.
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      Finish the [**Microsoft Azure**](#microsoft-azure) tab first.
    </Note>

    <Steps>
      <Step title="Open Sources">
        In Iru Compliance, on the left navigation bar, expand **Compliance** and select **Sources**.

        <Frame>
          <img src="https://mintcdn.com/iru/7HsGH7lnQ8GpVmI0/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=7HsGH7lnQ8GpVmI0&q=85&s=595982441fd777b333b3ecfea24adc24" alt="Left navigation: Compliance expanded, Sources selected" width="424" height="1056" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Turn on the integration">
        Find **Microsoft Azure Storage** (set **Category** to **Developer tools** or use **Search by name or description**). On that card, turn on the **toggle** to start the connector wizard.
      </Step>

      <Step title="Launch OAuth and sign in">
        Select **Launch OAuth Authentication**. When the Microsoft window opens, sign in with the same account you verified in the Azure portal and click **Accept** on the consent screen.
      </Step>

      <Step title="Finish the connection">
        When the OAuth window closes and Iru finishes the exchange, the wizard shows **Connection Configured**.
      </Step>

      <Step title="Confirm the source is Active">
        Close the **Iru is requesting access to external services** browser tab, then return to **Compliance** → **Sources** and confirm the **Microsoft Azure Storage** card is **Active**.
      </Step>
    </Steps>
  </Tab>
</Tabs>

### Troubleshooting

<AccordionGroup>
  <Accordion title="Nothing opens when you turn the source on">
    Check **pop-up blocker** settings for the Iru site and try again.
  </Accordion>

  <Accordion title="Storage accounts not listed">
    Confirm **Reader** at **subscription** scope if you expect accounts across the whole subscription. **Reader** scoped only to a **resource group** omits accounts elsewhere.
  </Accordion>

  <Accordion title="Wrong Microsoft Entra tenant">
    Sign **out** of the Microsoft pop-up and sign in with the account for the **correct** tenant.
  </Accordion>

  <Accordion title="Broken status">
    Turn **Microsoft Azure Storage** **off** and **on** in **Sources**, then complete OAuth again.
  </Accordion>
</AccordionGroup>

### Related Articles

<CardGroup cols={2}>
  <Card title="Sources Management" icon="plug" href="/en/compliance/sources-management">
    Browse and manage every Compliance source.
  </Card>

  <Card title="Getting Started With Compliance" icon="rocket" href="/en/compliance/getting-started-with-compliance">
    Frameworks, actions, and **Artifacts**.
  </Card>

  <Card title="Iru Overview" icon="layer-group" href="/en/iru/platform-overview/iru-overview">
    How Endpoint, Compliance, and Identity fit together.
  </Card>

  <Card title="Artifacts Management" icon="folder-open" href="/en/compliance/artifacts-management">
    Upload, review, and organize evidence from sources and actions.
  </Card>
</CardGroup>
