Skip to main content

Ripple – Permissions Granted During CloudFormation Setup

How CloudFormation Templates and IAM Permissions Work in Ripple

Written by Alphaus Support Team
Updated today

Overview

This guide walks you through the IAM permissions granted when running CloudFormation (CF) templates for Ripple.

Alphaus provides these CF templates to simplify the setup of Cost and Usage Reports (CUR) and to provide the API access and permissions required to accurately retrieve cost-related information such as Reserved Instances and Savings Plans.


Which Template Is Used

There are currently three active CF templates. The template that runs depends on the option selected in the Payer Account registration screen in Ripple:

Scenario

Template

Registering a new Payer Account with Setup CloudFormation using default configurations selected

Template 3 (all permissions below)

Updating a registered Payer Account — Allow API Access

Template 2

Updating a registered Payer Account — Verify CUR export settings

Template 3

Updating a registered Payer Account — Setup S3 bucket in a different region

Template 1


Template 1 — alphauscurexportbucket-v1.yml

Creates an S3 bucket for exporting CUR data.

  • Purpose: Required to export CUR to an S3 bucket

  • Target resource: CurS3BucketName (the target S3 bucket)

s3:GetBucketAcl 
s3:GetBucketPolicy
s3:PutObject

Template 2 — alphausdefaultcostaccess-v1.yml

Sets up an IAM role for Alphaus to access cost-related information in your account. Also includes permissions for other Ripple features.

Cost access permissions

  • Purpose: Retrieves cost and reservation-related data

  • Target resources: All

# Required to retrieve AWS Organizations information: 
organizations:List*
organizations:Describe*

# Required to access cost-related information: ec2:DescribeReservedInstances
ec2:GetCapacityReservationUsage
rds:DescribeReservedDBInstances
elasticache:DescribeReservedCacheNodes es:DescribeReservedElasticsearchInstances
redshift:DescribeReservedNodes
savingsplans:DescribeSavingsPlan*
cur:Describe*
budgets:Describe*
ce:Describe*
ce:Get*
ce:List*

# Required to create Billing Groups from AWS Billing Conductor and configure proforma CUR:
billingconductor:List*
cur:PutReportDefinition

Notes The Organizations permissions are not yet in use. They are included in preparation for a planned future feature to sync AWS Organizations with Ripple Billing Groups.

Role update permissions

  • Purpose: Required to update the AlphausCostAccessRole created above in the future, in response to new Ripple features or AWS specification changes

  • Target resource: AlphausCostAccessRole only

iam:GetRole* iam:PutRolePolicy

CF stack update permissions

  • Purpose: When additional API access is required for new features, Ripple will request the necessary changes via the Ripple UI — updates are only applied upon your approval. This eliminates the need to manually update the CF stack in the AWS Console

  • Target resource: AlphausCostAccess stack (this stack)

cloudformation:DescribeStack* 
cloudformation:UpdateStack*

Template 3 — alphauscurexportdef-v1.yml

Includes all permissions from Template 2, plus CUR export configuration.


Need More Help?

If any errors occur during the process or if you have any questions, please reach out to us:

Did this answer your question?