agent's savings-plan recommendation run failed - "ce:GetSavingsPlansUtilization" not authorized
Fixes an unauthorized ce:GetSavingsPlansUtilization call by granting the agent's role the Cost Explorer savings-plan read permissions. Use when a savings-plan recommendation run fails because the role lacks ce:GetSavingsPlansUtilization. Not for empty utilization data.
TL;DR
The agent's role can read general cost data but lacks the specific savings-plan utilization permission, so the recommendation run dies when it queries utilization. Add ce:GetSavingsPlansUtilization (and ce:GetSavingsPlansPurchaseRecommendation for the recommendation call) to the role policy. Cost Explorer permissions are granular; general cost access does not imply savings-plan access.
Error
agent's savings-plan recommendation run failed - "ce:GetSavingsPlansUtilization" not authorizedSteps
- Confirm the denied action in the agent log: ce:GetSavingsPlansUtilization. Expected: the error names the specific action.
- Open the role policy and check the Cost Explorer grants. Expected: general ce:GetCostAndUsage is present but the savings-plan actions are missing.
- Add ce:GetSavingsPlansUtilization and ce:GetSavingsPlansPurchaseRecommendation. Expected: the policy covers the recommendation workflow.
- Re-run the savings-plan recommendation. Expected: the utilization query succeeds and recommendations generate.
- Document the full permission set the agent needs so the next new role gets it complete. Expected: the runbook lists every required action.
When to use
- A savings-plan run fails on ce:GetSavingsPlansUtilization authorization.
- The role reads cost data but not savings-plan data.
- Building the permission set for a FinOps agent.
When not to use
- Utilization returns empty (no savings plans exist, not a permission issue).
- The recommendation API returns no recommendations (a data issue).
- The role cannot assume into the payer account (a trust-policy issue).
Tool compatibility
AWS Cost Explorer API, IAM (current 2026 releases).
Variant phrasings
"not authorized" on savings plan utilization
Grant the specific savings-plan actions.
recommendation run dies after cost queries succeed
The savings-plan actions are separate grants. Add them.
payer-account savings plan data inaccessible
The role needs the actions in the payer account's policy.
Why it happens
AWS Cost Explorer splits permissions by data type: GetCostAndUsage, reservation utilization, and savings-plan utilization are separate actions. A role built for cost reporting gets the first and misses the others, and the failure only appears when the agent reaches the savings-plan stage. FinOps agents need the full set enumerated up front, because each stage of the analysis touches a different action.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_pSCE3LtK87VnbNw1UN8Ekg