> For the complete documentation index, see [llms.txt](https://docs.p0.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.p0.dev/integrations/resource-integrations/microsoft-azure.md).

# Microsoft Azure

P0's Azure integration is **Generally Available** and provides comprehensive access management for your Azure resources.

## Overview

This guide walks you through installing and configuring P0's Azure integrations:

* IAM Management for Just‑in‑Time (JIT) access
* SSH access for Azure Virtual Machines via a Bastion host or custom jump host

## Installation summary

Complete the following steps **in order**. Each step depends on the one before it.

{% hint style="info" %}
Steps 3 and 4 are only required if you need SSH access for Azure Virtual Machines. If you only need IAM management for JIT access, complete steps 1 and 2.
{% endhint %}

| Step | Page                                                                                                                            | Purpose                                                                          | Depends on                 |
| ---- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------- |
| 1    | [Azure app registration](/integrations/resource-integrations/microsoft-azure/azure-app-registration.md)                         | Create the service identity P0 uses in your tenant                               | —                          |
| 2    | [IAM management](/integrations/resource-integrations/microsoft-azure/iam-management.md)                                         | Enable Just‑in‑Time access to Azure resources                                    | App registration           |
| 3    | [Configure bastion host integration](/integrations/resource-integrations/microsoft-azure/configure-bastion-host-integration.md) | Set up how P0 connects to your VMs — an Azure Bastion host or a custom jump host | IAM management             |
| 4    | [Install SSH access](/integrations/resource-integrations/microsoft-azure/install-ssh-access.md)                                 | Connect P0 to your Azure VMs for SSH access                                      | Bastion host configuration |

{% hint style="warning" %}
These steps have strict dependencies. You cannot configure a Bastion host without first completing the app registration and IAM management, and you cannot install SSH access without first configuring a Bastion host.
{% endhint %}

## Before you begin

* Choose one Entra ID directory on which you want to install P0
* Choose at least one subscription on which to install P0.
* Make sure you have the ability to create new app registrations as well as new roles and role assignments. You can do this if you have the [Owner](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/privileged#owner) role attached to your user.

## Get started

Navigate to "Integrations" on [p0.app](https://p0.app), then select "Azure". You will be prompted to enter the ID of the [Entra Tenant](https://techcommunity.microsoft.com/blog/startupsatmicrosoftblog/demystifying-microsoft-entra-id-tenants-and-azure-subscriptions/4155261) you want to install P0 on.

<figure><img src="/files/fEGjI2NRkVeIr1BEpcoL" alt="P0 Security Azure Directory Field" width="563"><figcaption></figcaption></figure>

Then proceed to [Step 1 — Azure app registration](/integrations/resource-integrations/microsoft-azure/azure-app-registration.md).

### IAM assessment (beta)

IAM assessment is available in beta. It lets P0 assess and analyze Azure role assignments, permissions, and resource access for security compliance. Install it from the **IAM assessment** component in the Azure integration on [p0.app](https://p0.app).

### Jump host management (beta)

Jump host management is available in beta. It lets P0 send privileged commands, such as terminating a live SSH session, to jump host VMs in your tenant through a connector Function App. See [Jump host management](/integrations/resource-integrations/microsoft-azure/jump-host-management.md) to configure it.
