# Set up a storage integration with Azure

You can create a secure integration between Ango Hub and an Azure Blob Container (a.k.a bucket), to annotate your assets stored in Azure without ever having them leave the container.

Read more on what storage integrations are and how they work [here](/data/storages.md).

## Set up the integration

1. From your Azure dashboard, click on "Storage Accounts"

<figure><img src="/files/5flZzvIsBV9D2dPnxon1" alt=""><figcaption></figcaption></figure>

2. Click on the storage account you'd like to link to Hub

<figure><img src="/files/55OjXL9oJwPMLpAmB0Gx" alt=""><figcaption></figcaption></figure>

3. From the column on the left, click on "Access keys". Then, take note of the storage account name and of the "Key" under the "key1" heading. We will need them later.

<figure><img src="/files/NhiaJecLcX6a37NidD6K" alt=""><figcaption></figcaption></figure>

4. From the column on the left, click on "Overview". Then, take note of the "Location" string. We will need this later.

<figure><img src="/files/54rNmyWu8LQErdZTiYgP" alt=""><figcaption></figcaption></figure>

5. From Ango Hub, click on the *Organization* link in the bar at the top, then enter the *Storages* tab. Click on the *Add Storage* button. A dialog will appear:

<figure><img src="/files/Tdi3UrypWg3TOgOpBAse" alt=""><figcaption></figcaption></figure>

From the *Provider* dropdown, select *Azure Blob Storage*.

**Unique Name**: a name of your choosing to identify this storage integration.\
**Account Name**: the account name you took note of in step 3.\
**Region**: the location information you took note of in step 4.\
**Account Key**: the key you took note of in step 3.

Once you have entered all of the required information, click on *OK*. The integration has been created.

{% hint style="warning" %}
Ensure your Azure blob service CORS policy it set up to allow Ango Hub to display the assets. More information on setting up CORS can be found [here](/data/storages/set-up-cors.md).
{% endhint %}

You may now import assets from the private storage by providing their URL when importing them in a JSON. More information on uploading private assets can be found [here](/data/importing-assets/asset-cloud-import.md).

## Additional Security Steps (Optional)

1. Set your container to private by [disallowing anonymous access](https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure?tabs=portal#permissions-for-disallowing-anonymous-access).
2. You may further limit who can access your container by providing a whitelist of IP ranges. If you choose to do so, please come in contact with the Ango Hub team and we will provide you with the IP addresses you need to include in the whitelist.\
   \
   To do so, from your storage account, navigate to the *Networking* section. Under the "Public network access" heading, select "Enabled from selected virtual networks and IP addresses". Lastly, under the *Firewall* section, add the ranges provided to you by the Ango Hub team.


---

# 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.imerit.net/data/storages/set-up-a-storage-integration-with-azure.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.
