Skip to main content

Overview

nOps AWS access is configured in two layers:
  1. Platform integration (Integration setup) — CUR delivery + a cross-account IAM role in your payer account. Choose Minimum Platform (Savings Analysis) or Full Platform (Inform & Operate) during IAM setup.
  2. Commitment Management (CM setup) — Optional. Three additional cross-account IAM roles (CloudFormation) for inventory reads and commitment purchasing.
Minimum Platform is a single allow-only customer-managed policy. Full Platform layers a smaller customer-managed allow-list and a customer-managed Deny policy on top of the AWS-managed ReadOnlyAccess policy, to match the broader read coverage of nOps’s legacy integration role.

Platform permission levels

Select the level in Step 3: IAM Policy Creation of the AWS integration wizard. Both levels also require nOpsBucketPolicy on the same role. Full Platform is a superset of Minimum, but it attaches more than a single swapped-in policy — see Customer-Managed Policies below for what each level actually requires.

Permissions — Platform integration

The platform integration uses a single cross-account IAM role in your payer (management) account. The policies attached to it depend on your selected permission level (see below).

IAM Role

Trust Policy

The role trusts a single nOps connector role with an integration-specific external ID:

Customer-Managed Policies

Minimum Platform attaches two customer-managed policies. Full Platform attaches four customer-managed policies (bucket, Deny list parts 1 and 2, and a trimmed allow-list) plus the AWS-managed ReadOnlyAccess policy.
Grants read and write access to the S3 bucket where AWS delivers your Cost and Usage Report.
Allow-only policy for Savings Analysis: CUR and Data Exports, Cost Explorer commitment reads, Organizations metadata, and support case creation.
Full Platform doesn’t use a single allow-only policy. It attaches four documents to the role instead:
Use Copy Policy in the nOps wizard for each document to get the current JSON — the Deny lists together cover 180+ entries and are best copied directly rather than retyped.

SA Child Roles

To extend read access to your AWS Organization’s member accounts, deploy a child role via CloudFormation StackSets from your payer account. This is optional and not required to finish onboarding. Each child role trusts only the payer integration role (passed as the PayerRoleArn CloudFormation parameter), and its permissions mirror the payer role’s own tier. A payer role can only assume the child role name matching its own tier — a Full Platform payer role can’t assume nops-sa-child-role-minimal, and vice versa.

Permissions — Commitment Management

Commitment Management uses three additional cross-account IAM roles deployed via CloudFormation. These are separate from the Savings Analysis role.

Role Summary

Role 1: NopsCMCrossAccountAssume (Central Role)

Deployed in any account in your AWS Organization (not required to be the payer / management account). This role’s only permission is to assume the child read role in member accounts.

Role 2: NopsCMReadEC2Instances (Child Read Role)

Deployed in every member account via CloudFormation StackSets. Provides read-only access to compute and commitment metadata.
The CentralRoleArn parameter in the CloudFormation template is set to the ARN of your NopsCMCrossAccountAssume role. Only that central role can assume this child read role.

Role 3: nops-sharesave-mgt (ShareSave Role)

Deployed in a dedicated child account within your AWS Organization. This role has the permissions needed to purchase and manage commitments. Purchased commitments automatically apply across the organization via RI/SP sharing.

Complete Role Summary


Resources Created

During the setup process, nOps CloudFormation templates create the following resources in your AWS environment.
All IAM roles use external IDs in their trust policies (where applicable) to prevent the confused deputy problem. External IDs are unique per integration and generated by nOps during onboarding.

CUR delivery bucket policy

When AWS creates a Cost and Usage Report, it checks that the destination bucket lets the billing service write to it. The Billing console adds that permission for you; CloudFormation does not. So when the integration stack creates the bucket, it also attaches this policy:
This grants AWS billing, and nobody else, the ability to deliver reports into the bucket. It does not grant nOps anything — nOps reads the CUR through nOpsBucketPolicy on the integration role.
nOps never writes a bucket policy on a bucket you already own. A bucket policy is one document, so attaching ours would replace everything already on your bucket. If you point the stack at an existing bucket (CreateCurBucket=false), that bucket must already allow billingreports.amazonaws.com — otherwise AWS rejects the export with “Failed to verify customer bucket permission”. The stack’s CurBucketPolicyManaged output tells you which case applies.

Cross-Account Role Chains

nOps uses two role-assumption chains to access your AWS resources. Each chain starts from an nOps-owned bridge role.

Commitment Inventory (read path)

Commitment Operations (purchase path)


Security Model


Network Requirements

nOps does not require any VPC peering, VPN connections, or network-level access to your AWS environment. All communication uses standard AWS API calls via cross-account role assumption over HTTPS.

AWS Integration Setup

Connect your payer account for Savings Analysis (CUR + IAM role).

AWS Commitment Management Setup

Step-by-step guide to deploy the three CM roles via CloudFormation.

Users and Roles

Manage team members and Admin/Owner roles for integration access.

Platform Integrations

Overview of all cloud integrations and setup entry points.