How it works
CauseFlow assumes a read-only role in your cloud account at investigation time. For AWS this is STSAssumeRole, for Azure it is a Service Principal with a Reader role assignment, and for GCP it is a Service Account with Viewer permissions. CauseFlow never stores long-lived credentials — it requests temporary session credentials for each investigation and discards them when the investigation completes.
Required information
| Provider | What you provide |
|---|---|
| AWS | IAM Role ARN, external ID (generated by CauseFlow) |
| Azure | Tenant ID, Client ID, Client Secret |
| GCP | Service Account key (JSON) or Workload Identity configuration |
AWS
How AWS access works
CauseFlow uses AWS STSAssumeRole with an external ID to access your AWS account. You create an IAM role in your account, attach a trust policy that permits CauseFlow’s AWS account to assume it, and provide the role ARN in the dashboard. CauseFlow passes the external ID on every AssumeRole call — without it, the call is rejected.
The external ID is a unique token generated per CauseFlow tenant. It prevents the confused deputy problem: even if someone else knows your role ARN, they cannot assume it without your tenant’s external ID.
Required permissions
Attach the following permissions to the IAM role. All permissions are read-only.Trust policy
Attach this trust policy to the IAM role. Replace<your-causeflow-external-id> with the external ID shown in Dashboard > Integrations > AWS.
CauseFlow AWS account ID:
409171461008. Confirm the exact principal ARN in Dashboard > Integrations > AWS once you begin the connection flow. Do not share the external ID — it is a secret that proves the connection originated from your CauseFlow tenant.Steps to configure in CauseFlow
Copy your external ID
CauseFlow generates a unique external ID for your tenant. Copy it — you will need it in the trust policy.
Create the IAM role
In your AWS account, create a new IAM role with the permission policy and trust policy shown above. Use any name you like (for example,
CauseFlowRole).Copy the role ARN
After creating the role, copy its ARN. The format is
arn:aws:iam::<your-aws-account-id>:role/<role-name>.What this enables
- CloudWatch alarm ingestion via SNS webhook (see Monitoring for setup)
- Log retrieval from CloudWatch Logs during investigation
- EC2 and ECS instance state inspection
- Lambda function configuration review
Azure
How Azure access works
CauseFlow uses a Service Principal with a Reader role assignment scoped to your subscription or resource group. You register an app in Azure Entra ID, create a client secret, and grant the principal Reader access. CauseFlow authenticates as the service principal to read resource metadata during investigations.Required permissions
- Role: Reader (built-in) scoped to your subscription or target resource group
- API permissions: None required (Reader is sufficient for resource inspection)
Steps to obtain credentials
Register an application
In the Azure Portal, go to Microsoft Entra ID > App registrations > New registration. Give it a name (for example,
CauseFlow) and click Register.Create a client secret
Under Certificates & secrets, click New client secret. Set an expiry, click Add, and copy the secret value immediately — it is only shown once.
Note the IDs
From the app overview page, copy the Application (client) ID and the Directory (tenant) ID.
Steps to configure in CauseFlow
What this enables
- Azure resource inspection (VMs, AKS nodes, Azure Functions, App Services)
- Azure Monitor metrics and log retrieval during investigation
GCP
How GCP access works
CauseFlow authenticates using a GCP Service Account. You create a service account, grant it Viewer permissions on your project, and download a JSON key file (or configure Workload Identity for keyless authentication). CauseFlow uses the service account to read resource metadata and logs during investigations.Required permissions
- IAM roles:
roles/vieweron the target project (or a custom role with equivalent read-only permissions) - Optional:
roles/logging.viewerif you want CauseFlow to read Cloud Logging entries
Steps to obtain credentials
Create a service account
In the Google Cloud Console, go to IAM & Admin > Service Accounts > Create Service Account. Give it a name (for example,
causeflow-integration) and click Create.Steps to configure in CauseFlow
Upload the service account key
Upload the JSON key file you downloaded. CauseFlow stores it in its encrypted credential vault.
What this enables
- GCP resource inspection (Compute Engine instances, GKE nodes, Cloud Run services)
- Cloud Logging retrieval during investigation
Troubleshooting
AWS:AccessDenied on AssumeRole
Confirm that:
- The external ID in the trust policy exactly matches the one shown in CauseFlow
- The principal ARN in the trust policy matches what CauseFlow showed you during setup
- The role has no permission boundary blocking
AssumeRole
AccessDenied on CloudWatch / Logs
Confirm the permission policy attached to the role includes the CloudWatch and Logs actions listed above.
Azure: AuthorizationFailed
Confirm the Reader role assignment is scoped to the subscription or resource group containing the resources you want CauseFlow to inspect. Also confirm the client secret has not expired.
GCP: PERMISSION_DENIED
Confirm the service account has the Viewer role on the correct project. If using a custom role, ensure it includes resourcemanager.projects.get.
Monitoring integrations
Set up CloudWatch alarm forwarding via SNS webhook.
Security overview
Learn how CauseFlow stores and protects your cloud credentials.
Databases
Connect databases for deeper root-cause analysis.
API reference
Manage cloud integrations programmatically.