CloudFix — Core Architecture

How CloudFix connects to your AWS environment, what it reads, and how approved fixes are executed — without any third-party ITSM integration.

CloudFix Platform AWS us-east-1 CloudFix App & API REST API · HTTPS/TLS 1.2+ AWS Cognito User auth CloudFront CDN / HTTPS Analysis Engine 75+ cost finders · recommendations DB Athena / Glue CUR query engine Lambda Events & automation CloudFix Dashboard Approve/reject recommendations Customer AWS Account(s) Deployed via CloudFormation StackSet · all changes audited in CloudTrail CloudFormation StackSet Deploys IAM roles · fully auditable IaC cloudfix-finder-role Read: CUR · CloudWatch · resource metadata Tagging (cloudfix: prefix) · CloudWatch Logs CUR + S3 Cost & Usage Reports bucket CloudWatch Usage metrics for finders CloudTrail All CloudFix API calls logged annotated with CloudFix role ── Customer approval required before any changes execute ── AWS Systems Manager Automation runbooks Orchestrates approved runbooks cloudfix-ssm-assumed-role Executes approved fixes Cannot be assumed by CloudFix directly Customer AWS Resources EC2 · RDS · EBS · ECS · EKS ElastiCache · EFS · Lambda Redshift · OpenSearch · S3 Modified only after explicit approval via SSM No broad data access Browser Deploy Metadata Change request Execute

Figure 1 — CloudFix core architecture. Data flows left (CloudFix platform) ↔ right (customer AWS account). CloudFix reads primarily infrastructure metadata; see the security page for the finder role's full permission model.

CloudFix Platform (AWS us-east-1)
Customer AWS Account
Approval boundary — customer must approve before fixes execute
Role detail behind the approval boundary. Three roles participate in remediation. cloudfix-ssm-update-role is assumable by the CloudFix platform and is what authors the SSM document and raises the change request — it cannot modify your resources beyond tagging. cloudfix-fixer-approver-role, which approves change templates, trusts your account root only in the default deployment (opting into centralized approval additionally trusts CloudFix under an sts:ExternalId condition). cloudfix-ssm-assumed-role, which performs the change, is invoked by AWS Systems Manager and is not assumable by CloudFix. Full trust policies and action lists are in the IAM Role Architecture section and the published CloudFormation templates.

CloudFix + ITSM Integration

How CloudFix integrates with service desk and ITSM platforms via webhooks and the CloudFix REST API.

Service Desk Jira · ServiceDesk · etc. Inbound Integration Receives webhook events Change / Incident Ticket Created automatically resource ID · savings · status Approval Workflow Human review & approval Outbound API Call HTTPS POST → CloudFix API Data received Resource IDs · savings status · account name No app/business data CloudFix Platform AWS us-east-1 CloudFix API Bearer token auth · HTTPS/TLS 1.2+ Webhook Engine Sends HTTPS POST on events Cognito User auth CloudFront CDN / HTTPS Analysis Engine 75+ finders · recommendations DB Dashboard Approve / review (web UI) API authentication Bearer token (API key) scoped to account generated in dashboard Customer AWS Account(s) All activity audited in CloudTrail CloudFormation StackSet Deploys IAM roles cloudfix-finder-role Read CUR · CloudWatch Tagging · CloudWatch Logs CUR + S3 Usage reports CloudWatch Metrics CloudTrail Independent audit log ── Approval required (ITSM or Dashboard) before changes execute ── AWS Systems Manager Automation runbooks Orchestrates runbooks cloudfix-ssm-assumed-role Executes approved fixes Not directly assumable by CloudFix Customer AWS Resources EC2 · RDS · EBS · ECS ElastiCache · S3 · Lambda… Modified only after approved changes No broad data access Webhook HTTPS POST Approval signal Deploy Metadata Change request Execute

Figure 2 — CloudFix + ITSM integration. CloudFix raises a webhook to your service desk when a recommendation is ready. The service desk routes approval through its own workflow, then calls the CloudFix API to signal approval. CloudFix then triggers execution via AWS Systems Manager.

Service desk / ITSM platform
CloudFix Platform (AWS us-east-1)
Customer AWS Account
Approval boundary
No customer AWS data passes through the service desk platform. Webhook payloads contain only CloudFix recommendation metadata: AWS resource IDs, estimated savings amounts, service type, and approval status. No S3 contents, database records, application data, or credentials are ever included.

RightSpend — Core Architecture

How CloudFix RightSpend connects to your AWS Organization, what it reads, and the narrow boundary within which it writes. RightSpend is a separate product from CloudFix, with its own IAM roles, its own platform stack, and no shared permissions.

RightSpend Platform CloudFix AWS account · us-east-1 EventBridge Schedules Hourly loop · daily seed / prices / reports Step Functions — Main Loop Collect → Merge → Solve → Choose → Execute Lambda Python 3.12 arm64 Solver Lambda OR-Tools / SCIP linear optimisation S3 Usage snapshots Pricing data DynamoDB Operation state cRI tracking AWS Secrets Manager External IDs · no customer credentials stored AWS Pricing API Public rate card · no customer data AWS Marketplace Metering Daily record · fee on realised savings Customer AWS Organization Roles deployed via CloudFormation StackSet · every API call logged in your CloudTrail Management (payer) account CloudFix-RightSpend-ReadOnly-Master-Role organizations:ListAccounts · ListRoots ce:Get* — coverage, utilisation, usage cloudformation: scoped to RightSpend StackSets Cost Explorer · Organizations Aggregate historical usage Account list for collection Read only All member accounts CloudFix-RightSpend-ReadOnly-Role ec2:Describe — instances, hosts, regions, capacity reservations, reserved instances savingsplans:DescribeSavingsPlans EC2 · Hosts · Capacity Resource metadata only No instance, volume or application data accessed ── Write access exists only below this line: Reserved Instance APIs, in designated cRI accounts only ── Designated cRI account(s) CloudFix-RightSpend-Write-Role ec2: purchase · modify · exchange Reserved Instances only Assumed under sts:ExternalId condition = your management account ID Convertible Reserved Instances (cRIs) Purchased, split, exchanged The only objects RightSpend modifies CloudTrail Every RightSpend API call is logged in your own account, attributed to the assuming role Read Read Write Usage data

Figure 3 — RightSpend core architecture. Three separate IAM roles serve three distinct access patterns, and each is deployed only where it is needed. Read access spans the Organization; write access is confined to Reserved Instance APIs in the designated cRI accounts.

RightSpend Platform (CloudFix AWS account)
Customer AWS Organization
Write boundary — Reserved Instance APIs only
What RightSpend never has. RightSpend has no write access to EC2 instances, EBS volumes, S3 buckets, databases, or any other AWS resource — the only objects it can modify are Reserved Instances, and only in the accounts you designate for that purpose. It reads resource metadata and Cost Explorer aggregates; it does not read the contents of any customer workload or data store. Full action lists per role and the published CloudFormation templates are on the RightSpend page.

RightSpend — Hourly Optimisation Loop

RightSpend runs a closed loop once an hour. Every stage before Execute is read-only; Execute is the single stage that calls a write API, and it can only act on Reserved Instances.

Read-only stages Write stage EventBridge Hourly trigger Check No overlapping run in flight Get Creds AssumeRole, short-lived STS Collect Parallel per account · region Merge Usage snapshot written to S3 Solve OR-Tools ILP no AWS calls Choose Rank options apply limits Execute Modify / exchange cRIs Poll until AWS confirms the exchange No customer resource is modified at any stage in this band. Credentials are short-lived STS sessions obtained per run — nothing long-lived is stored.

Figure 4 — RightSpend hourly optimisation loop, as orchestrated by AWS Step Functions. Seeding, pricing refresh, reporting and AWS Marketplace metering run on their own daily schedules outside this loop.

Read-only stages
Write stage — Reserved Instance APIs only

Need the diagrams in another format?

Request a Visio, draw.io, or high-resolution PNG version for your security review pack.