Integrating your AWS account with CloudSpend provides a comprehensive view of your cloud spending.
CloudSpend reads your AWS billing data and turns it into cost reports, budgets, anomaly alerts, and optimization recommendations. To do that, it needs two things from your AWS account:
The Integrate Account page is a step-by-step wizard with a toggle at the top offering two ways to set this up:
This page documents each one end-to-end, so you only need to read the section for the path you choose.
New to CloudSpend? Start at Get started with CloudSpend for a product overview, then come back here.
Have these ready before you open the wizard.
| What you need | Why | Where to get it |
|---|---|---|
| A CloudSpend account with permission to add integrations | The Integrate Account wizard is admin-only. | User Management - Access Control |
| Sign-in to the correct AWS account | For an AWS Organization, sign in to the management (payer) account. For a standalone account, sign in to that account. | AWS Management Console |
| Permission to create IAM roles and policies in AWS | Both paths create a cross-account IAM role. | Your AWS administrator |
| Permission to create CloudFormation stacks | Required for Automated integration, and for the CloudFormation access type under Manual integration method. | Your AWS administrator |
| Permission to create Data Exports and S3 buckets | Required for Manual integration method. | AWS Billing and Cost Management |
| The month you want billing to start from | Sets how far back CloudSpend loads your past bills. | Your own reporting requirement. |
The Choose Policy Options section on the Access & Credentials page has three preselected options: Default Permissions, IT Automations, and Recommendations. These options grant permissions for executable actions, such as starting, stopping, and rebooting resources.
At the top of the Integrate Account page there is a toggle with two options: Automated and Manual. Choose the method based on how you want to configure access and the AWS resources required for the integration.
| Integration aspect | Automated integration | Manual integration |
|---|---|---|
| How access is created | A CloudFormation stack creates the IAM role for you | You create the IAM role by hand in the IAM console, or run the CloudFormation stack yourself |
| How the export is created | The same stack can create the S3 bucket and the Cost and Usage Report. | You create the Data Export yourself in AWS Billing and Cost Management |
| Access types offered | Management Account, Delegated Admin | CloudFormation, IAM Role, IAM User (deprecated), Site24x7 Account |
| Choose this when | You can run CloudFormation in the account, and you want the fastest setup | Your organization restricts CloudFormation, you already publish a CUR to S3, or your security team requires the role to be reviewed before creation |
| Go to | Automated integration | Manual integration |
The automated integration setup takes four steps:
With this integration method, CloudSpend generates an AWS CloudFormation template based on your account details. Run the template in the AWS console to create the required read only IAM role. You can also choose to let the CloudFormation stack create the S3 bucket and Cost and Usage Report for you.
After the stack is successfully created, it sends the IAM role ARN back to CloudSpend. The wizard then automatically populates the relevant fields, so you can continue with the remaining configuration.
Ensure that:
| Provider | Access method | View |
|---|---|---|
| AWS | CloudFormation or IAM role access | This page |
| Azure | App registration + exports | Connect Azure Account |
| GCP | BigQuery billing export | Connect GCP Account |
Choose your access type
| Access type | Choose this when |
|---|---|
| Management Account: Automated, from the management account | You are signed in to the management (payer) account of your AWS Organization, or to a standalone AWS account. Most common choice. |
| Delegated Admin: Automated, from a delegated admin Delegated Admin prerequisite: The account must already be registered as a delegated administrator for AWS Billing and Cost Management in your Organization. If it is not, the stack will fail with a permissions error. Register it from the management account, or use Management Account instead. | Billing administration has been delegated to a member account and you are signed in to that account. |
The panel shows a three stage progress bar. Stage 2 is where CloudSpend waits for the CloudFormation stack to complete.
| Stage | What is happening | Where it happens |
|---|---|---|
| Step 1: CloudFormation Stack Creation | CloudSpend generates a CloudFormation template for your account and hands you a link to it | CloudSpend |
| Step 2: Waiting for RoleARN | You create the stack in AWS; the stack creates the IAM role and calls back to CloudSpend with the role’s ARN | AWS, then back to CloudSpend |
| Step 3: Integrate Role ARN | CloudSpend stores the ARN and fills in the remaining fields for you | CloudSpend |
If you chose No for report creation
If the Cost and Usage Report creation needed option is set to No then, CloudSpend creates only the role ARN via Lambda function. Once the role ARN details are fetched, the Role ARN field is auto-filled. You will have to enter the report name in the Report field manually.
The final step summarizes everything you have configured. Each card has an Edit link that takes you back to that step with your values intact.
| Card | Fields shown |
|---|---|
| Account basics | Display Name, Provider, Environment |
| Access & credentials | Choose Onboarding Type (Automated), Access type, Status, Account scope, Existing export, Report |
| Processing date | Bill processing month, Notify Alerts Via, Contacts, Add Label |
Click Submit once you have verified all the details.
If you encounter any issues, see Troubleshooting for possible causes and solutions.
The manual integration method has five steps:
In this method you do the AWS side work yourself. The extra Billing data step is where you create the Cost and Usage Report export, optionally enable AWS Cost Optimization Recommendations, and tell CloudSpend whether you are reporting on a whole organization or a single linked account.
| Provider | Access method | View |
|---|---|---|
| AWS | CloudFormation or IAM role access | This page |
| Azure | App registration + exports | Connect Azure Account |
| GCP | BigQuery billing export | Connect GCP Account |
Choose your access type. The manual method offers four ways to give CloudSpend access.
| Access type | Description | Choose this when |
|---|---|---|
| CloudFormation | Recommended, approximately 3 minutes | You can run CloudFormation and want the role created for you |
| IAM Role | Create the role manually | You want to create the role by hand, or CloudFormation is restricted in your organization. |
| IAM User | Use an IAM user’s access keys | Deprecated. Only for existing setups that already rely on access keys. |
| Site24x7 Account | Reuse an existing connection | You already monitor this AWS account on Site24x7 and want to reuse that connection instead of creating new credentials. |
The steps you need to complete depend on the access type you select. Complete the required setup for your selected option, then click Next to continue to Step 3: Billing data.
The Create the CloudFormation stack panel is the same as on the Automated path. It has the same three stage progress bar, region and report creation controls, and Create CloudFormation Template button.
Follow Run the automated setup mentioned in the Automated integration method, then return here and click Next to continue to Step 3: Billing data.
Selecting IAM Role opens the Create the IAM role panel, which displays the full procedure inline with a screenshot carousel beside each stage. Delegate access to your AWS resources through the IAM role by following the steps and screenshots in the panel. Make sure you have the required policies for CloudSpend. If not, create your own policy before creating the IAM role.
The IAM Role access type is recommended as there is no sharing of security credentials. Also when you delegate permissions using Roles, you can designate the AWS accounts that are allowed to assume the role, thereby safeguarding your account from unauthorized access.
Note:
We've deprecated the IAM user-based access to new users. So if you're existing users, you can switch to IAM role based access.
Why an IAM role rather than access keys?
A role is assumed temporarily and there are no long lived credentials to store, rotate, or leak. The trust policy names exactly one AWS account, CloudSpend’s, and requires a matching External ID, so the role cannot be assumed by anyone else.
The following section will walk you through the IAM Role creation process.


Click Copy Policy in the CloudSpend wizard, then paste the custom cost policy into the JSON tab. Alternatively, you can copy the JSON policy given below.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"organizations:ListRoots",
"s3:GetObjectVersionTagging",
"organizations:DescribeAccount",
"organizations:ListChildren",
"s3:GetObjectAcl",
"organizations:DescribeOrganization",
"s3:GetObjectVersionAcl",
"organizations:DescribeHandshake",
"s3:GetBucketWebsite",
"s3:GetBucketNotification",
"s3:GetReplicationConfiguration",
"s3:ListMultipartUploadParts",
"organizations:ListAccountsForParent",
"organizations:ListHandshakesForAccount",
"s3:GetObject",
"iam:GetUserPolicy",
"s3:GetAnalyticsConfiguration",
"organizations:ListOrganizationalUnitsForParent",
"s3:GetObjectVersionForReplication",
"cur:DescribeReportDefinitions",
"s3:GetLifecycleConfiguration",
"s3:GetBucketTagging",
"s3:GetInventoryConfiguration",
"s3:ListBucketVersions",
"s3:GetBucketLogging",
"s3:ListBucket",
"s3:GetAccelerateConfiguration",
"s3:GetBucketPolicy",
"organizations:DescribePolicy",
"s3:GetObjectVersionTorrent",
"s3:GetEncryptionConfiguration",
"organizations:ListCreateAccountStatus",
"s3:GetBucketRequestPayment",
"organizations:DescribeOrganizationalUnit",
"s3:GetObjectTagging",
"s3:GetMetricsConfiguration",
"organizations:DescribeCreateAccountStatus",
"organizations:ListPoliciesForTarget",
"s3:ListBucketMultipartUploads",
"organizations:ListTargetsForPolicy",
"s3:GetBucketVersioning",
"organizations:ListAWSServiceAccessForOrganization",
"s3:GetBucketAcl",
"organizations:ListPolicies",
"organizations:ListHandshakesForOrganization",
"organizations:ListAccounts",
"s3:GetObjectTorrent",
"s3:ListAllMyBuckets",
"s3:GetBucketCORS",
"organizations:ListParents",
"iam:GetUser",
"s3:GetBucketLocation",
"s3:GetObjectVersion",
"bcm-data-exports:ListExports",
"bcm-data-exports:GetExport"
],
"Resource": "*"
}
]
}
Follow the steps mentioned in the Select trusted entity, Add permissions, and Name, review, and create sections below for creating a cross-account IAM role.


The External ID is regenerated every time the page reloads. It is an alphanumeric key unique to your integration. If you refresh the Integrate Account page, navigate away and back, or leave the tab idle long enough to re-render, you will get a new External ID and the one you already pasted into AWS becomes invalid.
Always copy it immediately before you create the role, and do not refresh the CloudSpend tab until the role exists.
Add permissions
Site24x7 requires ReadOnly access to your AWS services and resources.

Name, review, and create

Copy Role ARN

The following section will walk you through the AWS IAM user creation process.
Select Access Type


Assign permissions

Choose the JSON tab. Click Copy Policy in the wizard, then paste the custom cost policy into the JSON tab. Alternatively, copy the custom policy shown below and paste it in the editor.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"organizations:ListRoots",
"s3:GetObjectVersionTagging",
"organizations:DescribeAccount",
"organizations:ListChildren",
"s3:GetObjectAcl",
"organizations:DescribeOrganization",
"s3:GetObjectVersionAcl",
"organizations:DescribeHandshake",
"s3:GetBucketWebsite",
"s3:GetBucketNotification",
"s3:GetReplicationConfiguration",
"s3:ListMultipartUploadParts",
"organizations:ListAccountsForParent",
"organizations:ListHandshakesForAccount",
"s3:GetObject",
"iam:GetUserPolicy",
"s3:GetAnalyticsConfiguration",
"organizations:ListOrganizationalUnitsForParent",
"s3:GetObjectVersionForReplication",
"cur:DescribeReportDefinitions",
"s3:GetLifecycleConfiguration",
"s3:GetBucketTagging",
"s3:GetInventoryConfiguration",
"s3:ListBucketVersions",
"s3:GetBucketLogging",
"s3:ListBucket",
"s3:GetAccelerateConfiguration",
"s3:GetBucketPolicy",
"organizations:DescribePolicy",
"s3:GetObjectVersionTorrent",
"s3:GetEncryptionConfiguration",
"organizations:ListCreateAccountStatus",
"s3:GetBucketRequestPayment",
"organizations:DescribeOrganizationalUnit",
"s3:GetObjectTagging",
"s3:GetMetricsConfiguration",
"organizations:DescribeCreateAccountStatus",
"organizations:ListPoliciesForTarget",
"s3:ListBucketMultipartUploads",
"organizations:ListTargetsForPolicy",
"s3:GetBucketVersioning",
"organizations:ListAWSServiceAccessForOrganization",
"s3:GetBucketAcl",
"organizations:ListPolicies",
"organizations:ListHandshakesForOrganization",
"organizations:ListAccounts",
"s3:GetObjectTorrent",
"s3:ListAllMyBuckets",
"s3:GetBucketCORS",
"organizations:ListParents",
"iam:GetUser",
"s3:GetBucketLocation",
"s3:GetObjectVersion",
"bcm-data-exports:ListExports",
"bcm-data-exports:GetExport"
],
"Resource": "*"
}
]
}


Download credentials


After you enter the Access Key ID and Secret Access Key and click Next, proceed to Step 3: Billing data.
Choose this if you already monitor this AWS account in Site24x7. CloudSpend reuses the IAM role or user that connection already has. You only need to attach a cost policy to it.
Link your Site24x7 account
Under Link your Site24x7 account, select the account to integrate from the Choose Site24x7 Account drop-down menu. The drop-down lists the AWS accounts already connected to your Site24x7 account.
Attach new cost policy
The Attach new cost policy panel explains how to delegate access to your AWS resources through a Site24x7 account.
Create policy
Attach cost policy
Whether your Site24x7 account has an IAM role or an IAM user associated with it, follow the respective set of instructions to delegate access.
If your Site24x7 account uses an IAM Role:
If your Site24x7 account uses an IAM User:
After you select the Site24x7 account and attach the required cost policy, click Next to proceed to Step 3: Billing data.
MSP accounts: If you are working in a Site24x7 MSP account, choose the MSP customer first, then pick the AWS account associated with that customer. See Connecting an MSP account.
This step has three parts: the billing data export, the cost optimization recommendations export, and the account scope.
The Billing data panel asks whether you already deliver AWS cost data to an S3 bucket. Select Yes or No.
AWS Data Exports enables you to create exports of the Cost and Usage Report (CUR) 2.0 or Legacy Cost and Usage Reports.
CloudSpend supports master and linked accounts. If you're using the consolidated billing feature in AWS Organizations, then create the data export at master account level. However, if you wish to view the cost and usage details at the linked account level, you have to create the data export for the respective linked account.
Exports are delivered on a recurring basis to an Amazon S3 bucket. To deliver the exports to an existing or new S3 bucket, follow the steps mentioned below.
To create an AWS data export in an S3 bucket, follow the steps below to get started.








This optional export powers AWS native rightsizing and savings guidance inside CloudSpend, including the AWS Recommendations report and the AWS entries in Native Recommendations. Your cost reporting works without it.
The panel asks whether you already have the required export. Select Yes or No.
To create the recommendation export in AWS:
Note: The IAM role CloudSpend uses for this account also needs:
| Account type | What it means | What you must provide |
|---|---|---|
| Organization | The export covers an AWS Organization’s consolidated bill. The default. | Export Name |
| Linked Account | The export covers a single member account within an Organization | Export Name, S3 bucket name and S3 path prefix you saved earlier |
This step has four sections: Observability, Processing window, Notifications, and Labels. Only the processing window is required.
In the Observability section, select the Site24x7 account you wish to link to this CloudSpend account, from the Choose Site24x7 Account drop-down menu. You can select multiple Site24x7 accounts.
Linking the accounts allows you to view CloudSpend account details in the Cloud tab, view budget related alarms raised by CloudSpend in the Alarms tab, and let Site24x7 users acknowledge alarms and assign technicians.
This Site24x7 link is separate from the Site24x7 Account access type in Step 2. The access type is used to provide CloudSpend with AWS access, while this setting determines where CloudSpend alerts are shown.
Leave this field empty if you do not use Site24x7 or do not want to link the CloudSpend account to Site24x7.
Under Start Date for Bill Processing, select the month from which CloudSpend should begin processing your bills.
All historical bills from the selected date will be processed and charged. See Pricing Details before selecting an earlier date.
On an evaluation account, you can view two months of data regardless of the start date selected.
Choose how CloudSpend should send notifications.
The final step displays the details you entered in the previous steps. Review the details you entered in the previous steps before submitting the integration. Use Edit to return to any step and make changes.
What happens next:
If you already monitor the AWS account in Site24x7, you can reuse that connection instead of creating new credentials. CloudSpend uses the IAM role or user associated with the Site24x7 connection. You only need to attach the required cost policy.
This is an access type within the Manual path:
If your account does not appear in the dropdown, it is not connected to your Site24x7 account yet. Connect it in Site24x7 first, or use IAM Role access type instead.
For Site24x7 MSP accounts, the flow is the same, with one additional selection:
See Customer Portal Overview and Managing Customer Portals for information about how MSP integrated accounts map to portals.
The CloudSpend AWS cost supports Parquet and GZIP file formats. For cost accounts parsed from the Parquet format report, the user-defined tags with camel case, colon, and hyphen will be replaced with an underscore and follow lower casing.
| Tag name in GZIP | Tag name in Parquet |
|---|---|
| autoscaling:groupName | autoscaling_group_name |
| cloudformation:id | cloudformation_id |
| CreatedBy | created_by |
| Environment type | environment_type |
The system-generated tags will not have any changes.
Configuration Error Accounts
You can now easily view the errors in configuring your CloudSpend account, like Invalid report name or Expired roles in the Configuration Error Account(s) section. Choose to either edit or delete the configuration error and rectify the errors for all accounts from a single view.
Common issues
| Issue | Likely cause | Fix |
|---|---|---|
| Report Name is required on activation | The Export Name field is empty, usually because Cost And Usage Report Creation needed was set to No and the field was not filled in. | Click Edit on the relevant card and enter the export name exactly as it appears in AWS. |
| Invalid report name after activation | The export name does not match, usually because of a typo or capitalization difference. | Compare it with Billing andCost Management > Data Exports in AWS and correct it under Accounts. |
| Role assumption fails / Expired role | The External ID changed after the role was created, the trust policy names the wrong account, Require MFA is enabled, or the role was deleted. | Reopen the wizard, copy the current External ID, and update the role's trust policy. Verify the trusted account ID and MFA is not required. |
| CloudFormation stack never calls back / stuck on Waiting for RoleARN | The CloudSpend tab was closed or refreshed, or the stack failed. | Check the stack's Events tab in AWS for the failure. If the tab was lost, delete the stack and restart the Access & credentials step. |
| Stack fails with a permissions error | The signed in AWS identity cannot create IAM resources, or the account is not a registered delegated administrator. | Use an identity with IAM permissions, or switch to the Management Account access type. |
| Integration activates but reports are empty | AWS has not written the first export yet. | Wait up to 24 hours after creating the export. Confirm that objects exist under the S3 path prefix. |
| Costs appear but no resource level detail | Include resource IDs was not selected on the export. | Edit the export in AWS to include resource IDs. New data will carry them; historical data will not. |
| Anomaly detection or hourly trends unavailable | Export granularity is Daily rather than Hourly. | Change the granularity in AWS. Data written before the change stays daily. |
| Recommendations reports are empty | The recommendations export is missing, misnamed, or the cost optimization hub permissions were not added. | Verify that the export is named CostRecommendationsReports with the recommendations prefix, and add the required permissions. |
| Tag based cost centers match nothing | Parquet tag name normalization. | Use the normalized name described in Parquet and GZIP tag naming. |
| Only two months of data visible | The account is on an evaluation plan. | Two months is the evaluation limit regardless of the start date. See Pricing Details. |
If you are still stuck, email cloudspend-support@site24x7.com or ask in the community forum.