Skip to main content
Cloud accounts in InfraAudit are called providers. Each provider stores your encrypted credentials, a display name, and sync metadata. You can connect multiple providers at the same time — for example, three AWS accounts, one GCP project, and two Kubernetes clusters all running concurrently.

Adding a provider

1

Open Cloud Providers

In the sidebar, click Cloud Providers.
2

Choose your cloud

Click Connect provider and select the provider type.
3

Fill in credentials

Complete the credential form. Details for each provider type are below.
4

Connect

Click Connect. InfraAudit validates the credentials and starts the initial resource sync. The provider card shows Syncing while this runs.

AWS

You need an IAM user or role with read access. The minimum required policy:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets",
        "rds:Describe*",
        "lambda:ListFunctions",
        "lambda:GetFunctionConfiguration",
        "cloudfront:ListDistributions",
        "ce:GetCostAndUsage",
        "ce:GetCostForecast",
        "ce:GetDimensionValues"
      ],
      "Resource": "*"
    }
  ]
}
Credential form fields:
FieldDescription
Access Key IDFrom an IAM user or assumed role
Secret Access KeyThe corresponding secret
Default regione.g. us-east-1
Display nameA label for this account in InfraAudit
Credentials are encrypted at rest using AES-GCM with the server’s ENCRYPTION_KEY. InfraAudit never stores plaintext credentials.

GCP

You need a GCP service account with the following roles:
  • roles/viewer — basic read access across the project
  • roles/bigquery.dataViewer — needed for BigQuery billing export
1

Create a service account

In the GCP console, go to IAM & Admin → Service Accounts. Create a new service account and assign the two roles above.
2

Download the JSON key

On the service account, create a key in JSON format and download it.
3

Paste into InfraAudit

In the InfraAudit credential form, paste the full JSON key file contents into the Service Account JSON field.
Credential form fields:
FieldDescription
Service Account JSONThe full contents of the downloaded key file
Project IDYour GCP project ID
Display nameA label for this project in InfraAudit

Azure

You need a service principal with the Reader role on your subscription. Create the service principal using the Azure CLI:
az ad sp create-for-rbac \
  --name infraudit-reader \
  --role Reader \
  --scopes /subscriptions/<subscription-id>
The command output includes clientId, clientSecret, tenantId, and subscriptionId. Copy all four. Credential form fields:
FieldDescription
Client IDclientId from the service principal output
Client SecretclientSecret
Tenant IDtenantId
Subscription IDsubscriptionId
Display nameA label for this subscription in InfraAudit

Kubernetes

Connect a Kubernetes cluster by uploading a kubeconfig file or pasting its contents directly. Minimum RBAC permissions:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: infraudit-reader
rules:
  - apiGroups: ["", "apps", "batch"]
    resources:
      - deployments
      - pods
      - services
      - namespaces
      - replicasets
      - daemonsets
      - statefulsets
      - jobs
      - cronjobs
    verbs: ["get", "list", "watch"]
The service account or user in the kubeconfig should be read-only. Credential form fields:
FieldDescription
KubeconfigFile upload or paste the kubeconfig contents
Cluster display nameA label for this cluster in InfraAudit
InfraAudit reads the active context in the kubeconfig and connects to that cluster.

Sync status

After connecting, the provider card shows one of the following statuses:
StatusMeaning
SyncingInitial or recurring sync in progress
SyncedLast sync completed successfully
ErrorLast sync failed — hover to see the error message
DisconnectedProvider is paused; credentials have been removed
Resources sync every 6 hours by default; billing data syncs daily. To trigger an immediate sync:
infraudit provider sync <provider-id>
Or click Sync now on the provider card in the UI.

Disconnecting a provider

Click the provider card, then Disconnect. This removes the stored credentials but keeps all historical scan data — resources, drifts, costs, and compliance results. Historical data is only deleted if you explicitly delete the provider record.

Next steps