Skip to main content
Monk needs a service principal to provision and manage infrastructure in your Azure subscription. This page walks you through creating one with the right permissions.

What You Need

  • Client ID (Application ID)
  • Client Secret
  • Tenant ID
  • Subscription ID
  • Resource Group name

Create Credentials

1

Copy your Subscription ID

Log into Azure Portal → Subscriptions and copy the Subscription ID you want Monk to use.
2

Register an application

Go to Azure Active Directory → App registrationsNew registration. Name it something like monk-deployment and click Register.
3

Copy IDs

On the app overview page, copy the Application (client) ID and Directory (tenant) ID.
4

Create a client secret

Go to Certificates & secretsNew client secret. Set an expiry and copy the Value immediately — it is shown only once.
5

Assign a role

Go to your subscription → Access control (IAM)Add role assignment. Assign the Contributor role (or the custom role below) to the application you just registered.
6

Provide to Monk

When you deploy to Azure, Monk requests credentials through a secure form. You can provide them as individual fields or as an SDK auth JSON file. You can also tell your agent:

Required Permissions

The built-in Contributor role works for a quick start. For production, use the minimum custom role below. Scope summary: Compute (VMs, disks, snapshots, availability sets). Networking (VNet/subnets, NICs, public IPs, NSGs). Load balancing (load balancers and application gateways). Resource groups and subscription metadata. Marketplace agreements (for some images).

How Credentials Are Stored

Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider’s KMS — so your infrastructure can manage itself autonomously. They are never sent to Monk servers and never exposed to the LLM. See Security for full details.

Troubleshooting

Client secret expired — create a new secret in App registrations → Certificates & secrets, then update credentials in Monk. Wrong tenant ID — double-check the Directory (tenant) ID on the app overview page. Missing Contributor role — verify the role assignment in your subscription’s Access control (IAM). Ask your agent for help:

Deploy your first app

Credentials ready — now deploy