Skip to content

Commit 8843c32

Browse files
committed
WIP
1 parent b0f2abc commit 8843c32

1 file changed

Lines changed: 50 additions & 15 deletions

File tree

cloud-access/aws-cf-role-stack.mdx

Lines changed: 50 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,64 @@
11
---
2-
title: 'OpenOpsApp AWS Role Stack'
3-
description: 'How to set up the OpenOpssApp on AWS CloudFormation'
4-
icon: 'aws'
2+
title: AWS CloudFormation Role Stacks’
3+
description: How to set up AWS roles for OpenOps using CloudFormation
4+
icon: aws
55
---
66

7-
import JoinCommunity from '/snippets/join-community.mdx'
7+
import JoinCommunity from /snippets/join-community.mdx
88

9-
The OpenOpsApp role stack for [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) is used to create the `OpenOpsApp` role in your AWS account. This will in turn provide the OpenOps platform with the necessary permissions to connect to your AWS resources.
9+
OpenOps provides [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) templates to create IAM roles in your AWS account with the necessary permissions to connect to your AWS resources.
10+
11+
## OpenOpsApp Role Stack
12+
13+
The OpenOpsApp role stack creates the `OpenOpsApp` role with permissions to run workflows from the OpenOps template catalog.
1014

1115
When creating the stack, you have the option to enable or disable certain permission sets. While the read-only permission set is mandatory, the rest are completely optional. The sets can also be enabled or disabled later by updating the stack.
1216

13-
## Installation
17+
### Installation
1418

15-
1. Navigate to CloudFormation on your AWS account, in the North Virginia (`us-east-1`) region. You can do so [by clicking here](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1). The stack **must** be created in the `us-east-1` region.
16-
2. Click **Create stack**, then select **With new resources**:
17-
![Creating a new stack](/images/cloud-cf-roles-create-stack.png)
18-
3. In the **Amazon S3 URL** field, insert the following URL: `https://openops.s3.us-east-2.amazonaws.com/OpenOpsAppRoleStack.yml`, then click **Next**.
19-
![Specifying a template](/images/cloud-cf-roles-template.png)
20-
4. Give a name to the stack, such as `OpenOpsApp`. Enter an AWS account ID that you want OpenOps to use. Modify the permission sets if you like, then click **Next**.
21-
5. Scroll down to the **Capabilities** section, acknowledge the creation of the necessary IAM roles, then click **Next**:
19+
1. **[Click here to create the stack](https://console.aws.amazon.com/cloudformation/home#/stacks/new?stackName=OpenOpsApp&templateURL=https://openops.s3.us-east-2.amazonaws.com/OpenOpsAppRoleStack.yml)** in the North Virginia (`us-east-1`) region. The stack **must** be created in the `us-east-1` region.
20+
2. On the **Specify stack details** page, enter an AWS account ID that you want OpenOps to use. Modify the permission sets if you like, then click **Next**.
21+
3. On the **Configure stack options** page, click **Next**.
22+
4. On the **Review and create** page, scroll down to the **Capabilities** section and acknowledge the creation of IAM roles:
2223
![Capabilities](/images/cloud-cf-roles-capabilities.png)
23-
6. In the **Review and create** view, scroll down and click **Submit**. The stack will be created, including the `OpenOpsApp` role and the requested permissions.
24+
5. Click **Submit**. The stack will be created, including the `OpenOpsApp` role and the requested permissions.
2425

25-
## Modification
26+
### Modification
2627

2728
You’re welcome to [download the stack](https://openops.s3.us-east-2.amazonaws.com/OpenOpsAppRoleStack.yml) and modify specific permissions according to your needs. Notice that some AWS components in the OpenOps workflows may not function properly as a result.
2829

30+
## Benchmark Role Stack
31+
32+
The Benchmark role stack creates a read-only `OpenOpsBenchmarkRole` specifically for running AWS cost optimization benchmarks. This stack includes:
33+
34+
- **Compute Optimizer permissions** - Access to EC2, EBS, RDS, Lambda, ECS, and Auto Scaling Group recommendations
35+
- **Resource read access** - Read-only access to EC2, RDS, ELB, DynamoDB, CloudWatch, Cost Explorer, and CloudTrail
36+
- **Pricing API access** - Access to AWS pricing information
37+
38+
### Installation
39+
40+
1. **[Click here to create the stack](https://console.aws.amazon.com/cloudformation/home#/stacks/new?stackName=OpenOpsBenchmark&templateURL=https://openops.s3.us-east-2.amazonaws.com/OpenOpsBenchmarkRoleStack.yml)** in the North Virginia (`us-east-1`) region.
41+
2. On the **Specify stack details** page, enter the required parameters:
42+
- **TrustedAccountId** - AWS Account ID that will assume this role
43+
- **ExternalId** - (Optional but recommended) A unique identifier for security
44+
3. Click **Next** twice to reach the **Review and create** page.
45+
4. Scroll down to the **Capabilities** section and acknowledge the creation of IAM roles.
46+
5. Click **Submit**. The stack will create the `OpenOpsBenchmarkRole` with read-only permissions.
47+
48+
### Usage with OpenOps
49+
50+
After deploying the stack:
51+
1. Get the Role ARN from the CloudFormation outputs
52+
2. In OpenOps, go to Settings → Connections
53+
3. Create or edit an AWS connection and configure it to assume the role
54+
4. Run benchmark workflows from the template catalog
55+
56+
### Security Considerations
57+
58+
- This stack provides **read-only access only** - no write, modify, or delete permissions
59+
- An External ID is highly recommended to prevent the "confused deputy problem"
60+
- Follows the principle of least privilege, scoped only to services needed for benchmarking
61+
62+
You can [download the Benchmark stack](https://openops.s3.us-east-2.amazonaws.com/OpenOpsBenchmarkRoleStack.yml) to review or modify the permissions. See the [CloudFormation example](https://github.com/openops-cloud/cloudformation-examples/tree/main/aws-benchmark-permissions) for more details.
63+
2964
<JoinCommunity />

0 commit comments

Comments
 (0)