Cloud Synchronization & Missing Data Troubleshooting
This guide provides targeted troubleshooting steps when cloud accounts in AWS, Azure, or GCP are missing billing data, showing incomplete resource inventories, or failing cross-account synchronization.
1. Diagnostic Decision Tree for Cloud Synchronization
2. Troubleshooting Missing Spends & Billing Data
A. AWS Cost & Usage Report (CUR) Missing or Unread
- Symptom: Cloud Account details show resources and events, but the Spends chart shows
$0orNo Spends Data Available. - Root Causes:
- S3 Bucket Policy: The S3 bucket storing CUR CSV files lacks read permissions for the NudgeBee Cloud Collector IAM role.
- CUR Compression / Format: The collector selects daily CSV (
textORcsv) reports and supports GZIP and ZIP-compressed CSV input. Parquet reports are not supported by this ingestion path.
- Remediation:
- In AWS Billing Console $\rightarrow$ Cost and Usage Reports, ensure report format is CSV and time granularity is Daily.
- Verify that the role configured for the cloud account has
s3:ListBucketon the report bucket ands3:GetObjecton its report objects. For cross-account access, review the bucket policy against the actual configured principal rather than copying a fixed NudgeBee role ARN.
B. GCP BigQuery Billing Export Permission Error
- Symptom: GCP account sync log displays
bigquery.tables.getData: Access Denied. - Root Cause: The Service Account has
Vieweron the GCP project, but lacks the specificBigQuery Data Viewerrole on the Billing Export Dataset. - Remediation:
In Google Cloud Console $\rightarrow$ BigQuery, locate the
gcp_billing_export_v1_*dataset and grantroles/bigquery.dataViewerto the NudgeBee Service Account email.
3. Troubleshooting Cross-Account IAM & Role Assumption
AWS: sts:AssumeRole Failed
- Symptom: Account status shows
Disconnectedwith messageThe role cannot be assumed or does not exist. - Root Causes:
- External ID Mismatch: If an
ExternalIdcondition was specified during onboarding, it must match the account's registered secret in NudgeBee. - Trust Policy Condition: The IAM Role's trust policy restricts access to an outdated NudgeBee backend ARN.
- External ID Mismatch: If an
- Verification Command (run using the same caller identity as the collector; an unrelated administrator identity does not test the collector's trust relationship):
aws sts assume-role \
--role-arn "arn:aws:iam::<TARGET_ACCOUNT_ID>:role/NudgeBeeCrossAccountRole" \
--role-session-name "NudgeBeeTestSession" \
--external-id "<CONFIGURED_EXTERNAL_ID>" \
--query 'AssumedRoleUser.Arn' --output text
Omit --external-id only if the configured role does not require one. The query prints the assumed role ARN without printing temporary credentials.
4. NuBi Documentation Search
Ask NuBi in chat for guided troubleshooting steps:
- "How do I fix missing AWS CUR billing data in NudgeBee?"
- "What IAM permissions are required for GCP BigQuery billing export?"