Required AWS Permissions
Noros follows the principle of least privilege. We request only the minimum permissions necessary to provide cost visibility and cloud spending insights for your AWS environment.
What Noros Cannot Do
Noros cannot:
Read sensitive workload data
Edit network rules or security groups
Create, stop, or terminate instances
Change, copy, or delete your data
The Noros roles can make one kind of change to your AWS account: NorthCostAndUsageRolePremium can enroll your organization in AWS Compute Optimizer. To remove that permission, see Removing Write Permissions from the Premium Role.
Permissions
During onboarding, you deploy the Noros CloudFormation stack, north-all-features.yaml, in your AWS management account. The stack creates these resources:
NorthCostAndUsageRole. Reads cost, billing, and reservation data.NorthCostAndUsageRolePremium. Reads Compute Optimizer recommendations, resource inventory, and CloudWatch statistics. It can also enroll your organization in Compute Optimizer.NorthCloudWatchCrossAccountAccessRole. Reads your Cost and Usage Report files, and assumes the sharing role in each account to read CloudWatch metrics.NorthCloudWatchCrossAccountSharingRole. Grantscloudwatch:GetMetricDataonly. The stack creates it in your management account, and a StackSet creates it in every account in the organizational unit you select.A Cost and Usage Report bucket. The bucket is
north-cur-bucket-<account-id>, with SSE-S3 encryption. When you deploy the stack inus-east-1, it also creates the Cost and Usage Report that AWS delivers to this bucket.
Cost & Billing Data
NorthCostAndUsageRole carries these permissions:
ce:Get*, ce:Describe*, ce:List*
Cost Explorer read access
ce:Start*
Generate Savings Plans purchase recommendations
cur:Get*, cur:Validate*
Cost and Usage Report access
billing:Get*
Billing data access
payments:List*, payments:Get*
Payment information
tax:List*, tax:Get*
Tax information
consolidatedbilling:Get*, consolidatedbilling:List*
Consolidated billing information
invoicing:List*, invoicing:Get*
Invoice information
freetier:Get*
Free Tier usage
account:GetAccountInformation
Account metadata
ec2:DescribeCapacity*
EC2 capacity reservation information
ec2:DescribeReservedInstances*
Reserved Instance information
ec2:DescribeSpot*
Spot Instance information
rds:DescribeReserved*
RDS Reserved Instance information
rds:DescribeDBRecommendations, rds:DescribeAccountAttributes
RDS recommendations and account quotas
ecs:DescribeCapacityProviders
ECS and Fargate capacity providers
es:DescribeReserved*
OpenSearch reserved instance information
CUR Data Access
For advanced data querying, Noros needs access to your Cost and Usage Report files. NorthCloudWatchCrossAccountAccessRole carries these permissions:
s3:GetObject
CUR report file access
s3:ListBucket
CUR report bucket listing
s3:GetBucketLocation
CUR report bucket region
Compute Optimizer and Resource Data
NorthCostAndUsageRolePremium carries these permissions:
compute-optimizer:*
Read Compute Optimizer recommendations, and enroll your organization in Compute Optimizer
iam:CreateServiceLinkedRole, iam:PutRolePolicy
Let AWS create the service-linked role that Compute Optimizer requires
organizations:EnableAWSServiceAccess
Turn on trusted access for Compute Optimizer in AWS Organizations
organizations:ListAccounts
List the accounts in your organization
ec2:DescribeInstances, ec2:DescribeVolumes, ecs:List*, autoscaling:DescribeAutoScalingGroups, lambda:ListFunctions, lambda:ListProvisionedConcurrencyConfigs
Resource inventory
cloudwatch:GetMetricStatistics
Aggregated CloudWatch metrics
rds:DescribeDBRecommendations, rds:DescribeReservedDBInstances*
RDS recommendations and reservations
The two iam: permissions apply only to the Compute Optimizer service-linked role. organizations:EnableAWSServiceAccess applies only to Compute Optimizer.
CloudWatch Metrics
NorthCloudWatchCrossAccountAccessRole and NorthCloudWatchCrossAccountSharingRole carry these permissions:
sts:AssumeRole on NorthCloudWatchCrossAccountSharingRole
Reach the sharing role in each account
cloudwatch:GetMetricData
Read CloudWatch metrics
Optional: External ID
During onboarding, you can configure an External ID for the cross-account IAM role. This is an AWS security best practice that adds an additional layer of protection against confused deputy attacks.
To get an External ID, contact support@noros.ai. The External ID on your role must match the value Noros holds for your account. If the two values differ, the daily verification check fails, and your cost data pauses until they match.
Supported Customizations
Some organizations change the roles in north-all-features.yaml to meet their own security policies. The table lists the changes Noros supports. For any other change, contact support@noros.ai before you deploy it.
Remove the cloudwatch-crossaccount.amazonaws.com trust statement from NorthCloudWatchCrossAccountAccessRole
Yes
Keep the statement that trusts NorthCURReadOnly. Noros uses that statement to read your Cost and Usage Reports.
Add an aws:ResourceOrgID condition so that NorthCloudWatchCrossAccountAccessRole can assume sharing roles only in your organization
Yes
-
Remove the :root principal from the NorthCloudWatchCrossAccountSharingRole trust policy, in your management account and in the StackSet
Yes
Keep NorthCloudWatchCrossAccountAccessRole as the trusted principal. Noros assumes the sharing roles only through that role.
Remove the write permissions from NorthCostAndUsageRolePremium
Yes
Enroll in Compute Optimizer first. See Removing Write Permissions from the Premium Role.
Use a different name for the Cost and Usage Report bucket
Yes
Send the bucket name to support@noros.ai, and Noros configures your account with it. The default name, north-cur-bucket-<account-id>, is preferred.
Encrypt the Cost and Usage Report bucket with your own KMS key
No
Keep the default SSE-S3 encryption (AES256). If Noros cannot decrypt your reports, your cost data stops arriving.
Trust named roles in account 480850768557 instead of the account root, in NorthCostAndUsageRole and NorthCostAndUsageRolePremium
No
Keep the account root as the principal, with an External ID if you use one. The roles in that account that assume these roles change as new features are released.
Deploy NorthCostAndUsageRolePremium in a member account, such as a Compute Optimizer delegated administrator
No
Deploy it in your management account, with the rest of the stack.
Removing Write Permissions from the Premium Role
NorthCostAndUsageRolePremium includes permissions that enroll your organization in Compute Optimizer. After your organization is enrolled, you can remove them and keep a read-only role. Do these steps in this order. If you remove the permissions before you enroll, the enrollment does not happen, and Compute Optimizer data covers your management account only.
Enroll your organization in Compute Optimizer, with member accounts included.
Turn on trusted access for Compute Optimizer in AWS Organizations.
Remove
iam:CreateServiceLinkedRole,iam:PutRolePolicy, andorganizations:EnableAWSServiceAccessfrom the role.Replace
compute-optimizer:*withcompute-optimizer:Get*.
Keep the read-only Describe and List actions and organizations:ListAccounts in the role. AWS enrolls member accounts that you add to your organization later.
Transparency
Noros is committed to transparency in the permissions it uses. This page lists every permission in the Noros stack and the one change those permissions can make in your account. If you have specific security requirements or need customized permissions, contact support@noros.ai.
Last updated

