Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124


Azure Arc is a powerful hybrid and multicloud management platform from Microsoft. It allows organizations to project on-premises, edge, and multi-cloud resources into Azure and manage them as if they were native Azure resources.
With Azure Arc, you can manage :
It is an essential component of Azure Local, allowing centralized governance and operations across all environments , local or remote, connected or disconnected.
| Azure Arc Feature | Pricing |
|---|---|
| Arc-enabled servers | Free for resource projection & inventory |
| Azure Policy, Monitoring, Defender | Pay-as-you-go per service |
| Arc-enabled SQL Server | Billed per vCore/month |
| Arc-enabled Kubernetes | Free for connect; paid for GitOps, Policy, Defender |

Azure Arc-enabled servers depends on the following Azure resource providers in your subscription in order to use this service. Registration is an asynchronous process, and registration may take approximately 10 minutes.
You can do this step from Azure Portal or Azure PowerShell CLI :

Register-AzResourceProvider -ProviderNamespace Microsoft.HybridCompute
Register-AzResourceProvider -ProviderNamespace Microsoft.GuestConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.HybridConnectivity
Azure CLI execution result :


To connect a server to Azure Arc, an Azure service principal (Entra ID application) assigned with the “Contributor” role is required. To create it, login to your Azure account run the below command directly from Azure CLI :
subscriptionId=$(az account show --query id --output tsv)
az ad sp create-for-rbac -n "AzureArcService" --role "Contributor" --scopes /subscriptions/$subscriptionId
here is the result :

{
"appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"displayName": "AzureArcService",
"password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Here is the Entra ID App :

Create a new Azure resource group where you want your machine(s) to show up.


Here is the PowerShell Code to use :
# <--- Change the following environment variables according to your Azure service principal name --->
$env:subscriptionId='<Your Azure subscription ID>'
$env:appId='<Your Azure service principal name>'
$env:password='<Your Azure service principal password>'
$env:tenantId='<Your Azure tenant ID>'
$env:resourceGroup='<Azure resource group name>'
$env:location='<Azure Region>'
# Download the package
function download() {$ProgressPreference="SilentlyContinue"; Invoke-WebRequest -Uri https://aka.ms/AzureConnectedMachineAgent -OutFile AzureConnectedMachineAgent.msi}
download
# Install the package
msiexec /i AzureConnectedMachineAgent.msi /l*v installationlog.txt /qn | Out-String
# Run connect command
& "$env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe" connect `
--service-principal-id $env:appId `
--service-principal-secret $env:password `
--resource-group $env:resourceGroup `
--tenant-id $env:tenantId `
--location $env:location `
--subscription-id $env:subscriptionId `
--correlation-id "d009f5dd-dba8-4ac7-bac9-b54ef3a6671a"
here is PowerShell code is ISE after replacing environment variables :

After executing the script, the new server will appear automatically in new ressource groupe “Azure_Arc_Servers“


Once resources are connected, you can now:
Azure Arc is a game-changer for organizations embracing hybrid or multicloud strategies. It enables IT teams to manage everything , regardless of where it runs using Azure-native tools and best practices.
Whether you’re modernizing legacy infrastructure, enforcing compliance at scale, or centralizing security, Azure Arc is the glue between your cloud and your on-prem world.
Thanks