What you need
- An Azure service principal with least-privilege access to the resource groups you want to evaluate
- The following values:
- client ID
- client secret
- tenant ID
- subscription ID
CloudEval Live Sync Reader role. Normal Cloud sync does not need Contributor.
Create the connection
- Open Connections in CloudEval.
- Choose Add connection.
- Select Azure as the provider.
- Choose Cloud sync as the source type.
- Confirm that the service principal has the least-privilege role on the target scope.
- Enter the service principal credentials.
- Add target resource groups that match the role assignment scope.
- Create the connection. CloudEval validates the credentials during creation.
Create a project from the connection
After the connection is saved:- Create a new project.
- Select the Azure connection you just created.
- Start the sync.
Create it from the CLI
Use the CLI when you want connection and project creation in one repeatable command. The same least-privilege role and resource-group scope still apply:--resource-group for each scoped group the service principal can read.
The CLI also reads AZURE_TENANT_ID, AZURE_CLIENT_ID,
AZURE_CLIENT_SECRET, and AZURE_SUBSCRIPTION_ID from the environment when
the matching flags are omitted.
What success looks like
- Connection test passes.
- Project shows synced infrastructure data.
- Cost and architecture reports can run from the project or the Reports page.
- Network relationships are richer when the role also has
Microsoft.Network/networkWatchers/topology/actionon the Network Watcher scope.
Common failure points
- Wrong tenant or subscription ID
- Expired client secret
- Service principal access that does not match the subscription or resource group scope
- Missing
Microsoft.Resources/deployments/exportTemplate/action, which can make report inputs incomplete - Missing Network Watcher topology access, which can make relationship enrichment sparse