FAQs
Is this the same as the initial AWS integration setup?
Is this the same as the initial AWS integration setup?
Does the central role have to be in the payer account?
Does the central role have to be in the payer account?
NopsCMCrossAccountAssume in any account in your AWS Organization. Many teams use the management (payer) account for convenience, but a dedicated member account works the same way. What does require payer access: launching StackSets for the child read role and deploying the payer read role directly in the management account (StackSets skip that account by default).What permissions does nOps get?
What permissions does nOps get?
Can I review the exact IAM policies before deploying?
Can I review the exact IAM policies before deploying?
Do I need Inform to view Commitment Inventory?
Do I need Inform to view Commitment Inventory?
Overview
You’re enabling Commitment Management for AWS — giving nOps the ability to view, quote, and purchase Reserved Instances and Savings Plans on your behalf across your AWS Organization. Open your active AWS integration card in Settings > Cloud Provider Integrations and choose Enable CM. You’ll complete four steps:- Central Role — Deploy the central role in any org account; deploy child read roles via StackSets from the management account; capture ARNs
- ShareSave Role — Dedicated child account: deploy ShareSave role for commitment purchasing
- Confirm Details — Save role ARNs and external IDs to nOps
- Verify Access — Platform checks assume-role chains and API access
Prerequisites
Before you start, make sure you can:- Access the payer (management) account for IAM, CloudFormation, and AWS Organizations
- Run CloudFormation StackSets from the payer account (or a delegated administrator) with trusted access enabled
- Have the Savings Analysis integration already active on the same payer account
CloudFormation templates
nOps uses three CloudFormation templates. Each creates a single IAM role with scoped permissions.Step 1: Central Role
The central role can be deployed in any account in your AWS Organization — it does not have to be the payer (management) account. Many teams use the management account for convenience, but a dedicated member account works the same way.Open Enable CM in nOps
Enter management (payer) account ID
Copy External ID (Central)
Deploy central role (single stack)
- NopsCMAssumerRoleArn — pre-filled with the nOps bridge role ARN (no changes needed)
- ExternalId — pre-filled with the External ID from nOps
NopsCMCrossAccountAssume has a single permission: sts:AssumeRole scoped to arn:aws:iam::*:role/NopsCMReadEC2Instances. It cannot access any other resources.Central role — trust policy
Central role — trust policy
Central role — permissions policy (NopsCMAssumeChildRoles)
Central role — permissions policy (NopsCMAssumeChildRoles)
Deploy child read role (StackSets)
Child read role — trust policy
Child read role — trust policy
Child read role — permissions policy (NopsCMReadEC2Policy)
Child read role — permissions policy (NopsCMReadEC2Policy)
Deploy payer read role (single stack)
NopsCMReadEC2Instances role directly in the payer account.This ensures nOps can also read commitment data from the management account itself, not just member accounts.Paste Central and Read role ARNs
- Central Role ARN — e.g.
arn:aws:iam::<central-account-id>:role/NopsCMCrossAccountAssume(from the account where you deployed Step 1) - Read Role ARN — e.g.
arn:aws:iam::<member-id>:role/NopsCMReadEC2Instances(from any StackSet instance)
Continue
Step 2: ShareSave Role
This step deploys the ShareSave purchasing role in a dedicated child account within your AWS Organization. This role grants nOps the permissions to purchase and manage commitments on your behalf.Create or identify the dedicated account
Deploy ShareSave role in the dedicated account
- NopsCrossAccountRoleArn — pre-filled with the nOps bridge role ARN (no changes needed)
- ExternalId — pre-filled with the ShareSave External ID from nOps
Paste ShareSave Role ARN and external ID
arn:aws:iam::<dedicated-account-id>:role/nops-sharesave-mgt) and confirm External ID (Sharesave) matches what nOps shows.Continue
Step 3: Confirm Details
Review and edit fields so they match what you deployed:- Central Role ARN —
NopsCMCrossAccountAssumein the account where you deployed the central role (any org account) - Read Role ARN —
NopsCMReadEC2Instancesin a member account reached by your StackSet - ShareSave Role ARN —
nops-sharesave-mgtin the dedicated child account - Child Role Name (optional) — defaults to
NopsCMReadEC2Instancesif unchanged - External ID (Central) and External ID (Sharesave) — must both be set and must not be identical
Step 4: Verify Access
Click Run Verification (or advance with Next from the prior step, which triggers the same check). nOps performs server-side checks that validate both role assumption chains and API-level permissions:- Trust policies — correct nOps bridge role ARN in the
Principal - External IDs — match what nOps shows (central and ShareSave must differ)
- StackSet deployment scope — ensure all target accounts/OUs are included
- Managed policies — all five AWS managed policies attached to the ShareSave role
Troubleshooting
Check fails: Assume central/child read role
Check fails: Assume central/child read role
- Verify
nops-cm-central-role.yamlwas deployed and note which account hostsNopsCMCrossAccountAssume(it does not have to be the payer account) - Confirm the Central Role ARN in nOps matches that account
- Confirm the
ExternalIdparameter matches the Central External ID shown in nOps - Ensure the StackSet for
nops-cm-child-role.yamldeployed successfully to the target member accounts - If testing with the payer account itself, ensure you also deployed the child read role directly in the payer account (StackSets skip the management account by default)
Verification passes but operations fail later
Verification passes but operations fail later
- Verification checks read permissions. If a purchase operation fails with
UnauthorizedOperation, check that all five AWS managed policies are attached to the ShareSave role (especiallyAWSSavingsPlansFullAccess) - If you see
AccessDeniedon a specific service (e.g., RDS), confirm the inline policyNopsSharesaveMgtPolicyis present on the role