Connect a Provider#
Connecting a cloud provider is the single most important setup action — it unlocks Discovery, FinOps, Provisioning, Automation, and Monitoring across all three providers.
Reply CMP connects via read-only API calls using a dedicated service principal (Azure), IAM user (AWS), or service account (GCP). No changes are made to your existing infrastructure.
Note
Read-only vs read-write — By default, Reply CMP only requires read-only permissions. You only need write permissions if you plan to use Automation (start/stop VMs, enforce tags). The connection wizard lets you choose the permission level.
Before you start#
Open Tenant → Connections → Add Connection and select your provider. You will need the credentials created in the steps below.
Provider setup#
Prerequisites
Azure Portal access (Global Administrator or Application Administrator)
Your Subscription ID
Steps
Go to Azure Portal → Azure Active Directory → App registrations → New registration
Name: e.g.
reply-cmp-readonly; Supported account types: This directory only; no redirect URIRecord: Application (client) ID and Directory (tenant) ID
Go to Certificates & secrets → New client secret → set expiry → copy the secret value immediately (shown only once)
Go to Subscriptions → {your subscription} → Access control (IAM) → Add role assignment
For read-only: assign the Reader role to the app registration
For read-write (Automation): assign Contributor instead
Enter all values in Reply CMP
Required fields in Reply CMP
Field |
Where to find it |
|---|---|
Connection name |
Your choice |
App ID |
Application (client) ID from step 3 |
Subscription ID |
From the Subscriptions blade |
Tenant ID |
Directory (tenant) ID from step 3 |
Client Secret |
Value from step 4 |
Permission level |
ReadOnly / ReadWrite |
Common errors
Error code |
Cause |
Fix |
|---|---|---|
|
Client secret expired or invalid |
Rotate the secret in Azure AD and update the connection |
|
Wrong App ID or Tenant ID |
Check that the values exactly match the app registration |
|
IAM role not assigned |
Assign the Reader role on the subscription to the app registration |
Prerequisites
AWS Console access (administrator)
Your Account ID (12-digit number, visible in the top-right of the AWS Console)
Steps
Go to IAM → Users → Create user → name e.g.
reply-cmp-readonlyAttach policies:
For read-only:
ReadOnlyAccess+AWSResourceExplorer2FullAccess(needed for Discovery)For read-write (Automation):
PowerUserAccess+AWSResourceExplorer2FullAccess
Open Security credentials → Create access key → Application running outside AWS → copy Access Key ID and Secret Access Key
Enter all values in Reply CMP
Required fields in Reply CMP
Field |
Where to find it |
|---|---|
Connection name |
Your choice |
Account ID |
12-digit account number |
Access Key ID |
From step 3 |
Secret Access Key |
From step 3 |
Default Region |
e.g. |
Permission level |
ReadOnly / ReadWrite |
Common errors
Error code |
Cause |
Fix |
|---|---|---|
|
Key ID does not exist or has been deleted |
Recreate access key in IAM |
|
Secret Access Key is incorrect |
Check for copy-paste errors; recreate the key |
|
Key is in a different account |
Confirm Account ID matches the IAM user |
|
Missing required policy |
Ensure |
Prerequisites
GCP Console access (Project Owner or IAM Admin)
BigQuery billing export configured (needed for cost data — GCP documentation)
Steps
Go to IAM & Admin → Service Accounts → Create service account → name e.g.
reply-cmp-viewerGrant roles:
roles/viewerroles/cloudasset.viewerroles/bigquery.dataViewer
Enable APIs: Cloud Asset Inventory API and Cloud Resource Manager API
Open Keys → Add key → JSON → download the key file
Note your Project ID and BigQuery billing configuration (dataset name, table name)
Enter all values in Reply CMP — upload the JSON key file when prompted
Required fields in Reply CMP
Field |
Where to find it |
|---|---|
Connection name |
Your choice |
Project ID |
Shown in the GCP Console header |
Billing Dataset |
BigQuery export dataset name |
Billing Table |
BigQuery export table name |
Billing Project ID |
(Optional) defaults to Project ID |
JSON Key File |
Downloaded in step 4 |
Permission level |
ReadOnly / ReadWrite |
Common errors
Error code |
Cause |
Fix |
|---|---|---|
|
JSON key is invalid or corrupted |
Re-download the key file from GCP Console |
|
Missing IAM role |
Verify all three roles are granted to the service account |
|
BigQuery dataset or table does not exist |
Check dataset name and confirm billing export is enabled |
What happens after connecting#
Tip
After saving the connection, Reply CMP runs an initial discovery scan. This takes 1–10 minutes depending on provider and account size. Cost data takes up to 24 hours to appear on first sync — the billing export must accumulate at least one day of data.
Secrets are stored in Azure Key Vault, encrypted with AES-256. Secret values cannot be retrieved after saving — if you need to rotate credentials, update the connection with the new value.
Validating your connection#
The connection wizard runs a live credential test before saving. If validation fails, the connection is not saved. Fix the credential issue shown and retry.
Managing connections#
After connecting, go to Tenant → Connections to see:
Column |
Meaning |
|---|---|
Last discovery |
Timestamp of the most recent resource scan |
Last cost refresh |
Timestamp of the most recent billing data pull |
Expiry chip |
Red = expired; action needed |
Actions |
Manual Launch Discovery and Refresh Cost Data buttons |