AWS Account Onboarding

#Last updated: 20 March 2026

Below the complete steps for the account onboarding process in CloudSPX:


1. Create a Cross-Account IAM Role in AWS Account

To begin, access the IAM console of the AWS account and follow the steps outlined below to create the cross-account IAM role:


a) Select IAM Role Creation

Trusted entity type: AWS account

AWS account type: Another AWS account

Account ID: XXXXXXXXXX

External ID: GDtfDCFYjL

Require MFA should remain unchecked.


b) Permissions Setup

On the permissions screen, click Create inline policy, and select the JSON tab. Paste the following JSON policy:

{

 "Version": "2012-10-17",

 "Statement": [

 {

  "Effect": "Allow",

  "Action": "sts:GetCallerIdentity",

  "Resource": "*"

 }

 ]

}


c) Review and create the policy, then attach it to the role.

d) Complete the role creation process by reviewing the settings, assigning a name, and creating the role.


2. Attach Required Policies to the IAM Role

After the IAM role has been created, attach the following permission policies:

a) AmazonEC2ReadOnlyAccess (AWS Managed)

b) ReadOnlyAccess (AWS Managed - job function)

c) CLOUDSPX-CSPM-min (Customer Managed) [Find below the policy JSON]

Policy JSON for CLOUDSPX-CSPM-min policy:

{

 "Version": "2012-10-17",

 "Statement": [

 {

  "Sid": "cloudspx-cspm-min",

  "Effect": "Allow",

  "Action": [

   "inspector:ListAssessmentTemplates",

   "athena:StartQueryExecution",

   "inspector2:ListFilters",

   "athena:GetQueryResults",

   "inspector2:UntagResource",

   "inspector2:SearchVulnerabilities",

   "inspector2:GetMember",

   "inspector2:BatchGetAccountStatus",

   "inspector2:ListCisScanResultsAggregatedByTargetResource",

   "inspector2:ListFindingAggregations",

   "inspector:GetTelemetryMetadata",

   "inspector2:ListCoverage",

   "inspector2:GetCisScanResultDetails",

   "inspector2:TagResource",

   "inspector2:ListCisScanConfigurations",

   "glue:GetTables",

   "inspector2:GetConfiguration",

   "athena:GetQueryExecutions",

   "inspector:GetAssessmentReport",

   "inspector2:GetClustersForImage",

   "inspector2:BatchGetFreeTrialInfo",

   "inspector2:ListUsageTotals",

   "inspector2:ListCoverageStatistics",

   "s3:PutObject",

   "s3:GetObject",

   "inspector2:ListFindings",

   "athena:ListDatabases",

   "inspector:DescribeAssessmentTargets",

   "inspector2:GetDelegatedAdminAccount",

   "glue:GetCatalog",

   "inspector2:GetEc2DeepInspectionConfiguration",

   "inspector:ListFindings",

   "inspector:DescribeAssessmentTemplates",

   "inspector:DescribeAssessmentRuns",

   "inspector2:ListAccountPermissions",

   "inspector:ListExclusions",

   "inspector:ListTagsForResource",

   "inspector2:BatchGetFindingDetails",

   "inspector:DescribeExclusions",

   "inspector:DescribeRulesPackages",

   "inspector2:BatchGetCodeSnippet",

   "inspector:SetTagsForResource",

   "inspector:ListAssessmentRunAgents",

   "inspector:DescribeCrossAccountAccessRole",

   "inspector2:ListDelegatedAdminAccounts",

   "inspector-scan:ScanSbom",

   "inspector2:ListTagsForResource",

   "inspector2:GetEncryptionKey",

   "inspector:ListRulesPackages",

   "inspector:DescribeFindings",

   "inspector:ListEventSubscriptions",

   "inspector:ListAssessmentTargets",

   "inspector2:ListCisScanResultsAggregatedByChecks",

   "inspector2:ListMembers",

   "inspector2:GetCisScanReport",

   "guardduty:UpdateDetector",

   "inspector:PreviewAgents",

   "inspector2:DescribeOrganizationConfiguration",

   "glue:GetDatabases",

   "inspector:ListAssessmentRuns",

   "inspector2:ListCisScans",

   "glue:GetTable",

   "glue:GetDatabase",

   "s3:ListAllMyBuckets",

   "athena:GetQueryExecution",

   "inspector2:GetFindingsReportStatus",

   "inspector:GetExclusionsPreview",

   "inspector:DescribeResourceGroups",

   "securitylake:GetDataLakeSources",

   "inspector2:BatchGetMemberEc2DeepInspectionStatus",

   "s3:GetBucketLocation",

   "inspector2:GetSbomExport"

  ],

  "Resource": "*"

 }

 ]

}