Connect Your AWS Account
Link your AWS account so SOFE can scan your resources. Read-only access via IAM role — SOFE cannot modify anything.
How It Works
1. You deploy a CloudFormation stack in your AWS account 2. The stack creates an IAM role: "sofe-read-only" 3. SOFE assumes that role to scan your resources 4. Your ExternalId ensures only YOUR SOFE account can assume it
Step-by-Step
- 1. Go to platform.sofe.dev/accounts
- 2. Click "🚀 Launch Stack in AWS Console" — opens CloudFormation in your AWS
- 3. In AWS Console: accept defaults, check "I acknowledge that AWS CloudFormation might create IAM resources", click Create stack
- 4. Wait ~1 minute for stack to complete (status: CREATE_COMPLETE)
- 5. Go to Outputs tab → copy the RoleArn value
- 6. Back in SOFE: paste the Role ARN → click "Connect & Verify"
- 7. ✅ Connected! Run your first evaluation.
What Permissions Does SOFE Get?
ReadOnlyAccess — AWS managed policy (describe, list, get only)ce:GetCostAndUsage — Read cost data from Cost Explorerce:GetCostAndUsageWithResources — Per-resource cost breakdown ($/month per resource)ce:GetSavingsPlansUtilization / ce:GetSavingsPlansCoverage — Savings Plans coverage & utilization (commitments)ce:GetReservationUtilization — Reserved Instance utilizationcloudwatch:GetMetricStatistics — Read CPU/memory metricsbedrock:InvokeModel — For AI features (optional)⚡ If you connected before Sep 2026, re-deploy the stack (platform.sofe.dev/accounts) to pick up the Savings Plans / RI commitment permissions.
Optional: Per-Resource Cost Data
To see real $/month per resource (not just estimated savings), enable Resource-level data in Cost Explorer:
- 1. AWS Console → Cost Management → Cost Explorer → Settings
- 2.Under "Historical and granular data settings":☑️ Enable "Daily granularity"☑️ Enable "Resource-level data at daily granularity"→ Select ALL services (free, no additional cost)
- 3. Save → Data available in 24-48 hours
⚡ Daily granularity is FREE. Do NOT enable "Hourly" (paid feature). Each SOFE evaluation makes 1 Cost Explorer API call ($0.01). At 4 evals/day = ~$1.20/month.
Without this, SOFE still works — you just won't see per-resource cost metrics. The ce: permissions are optional.
Security: ExternalId
Each SOFE user gets a unique ExternalId (your Firebase UID). This prevents the "confused deputy" attack — even if someone knows your Role ARN, they cannot assume it without YOUR ExternalId.
Troubleshooting
arn:aws:iam::YOUR_ACCOUNT:role/sofe-read-only)