CloudFormation Setup
We recommend using the Wut.Dev-provided CloudFormation templates, which will configure the correct roles, policies, and trust relationships for Wut.Dev to work properly and securely.
1. Deploy the Management Template
This step will create an IAM role in your management account, called WutDotDev-Mgmt
and give it the permissions necessary to assume other Wut.Dev roles deployed in your member accounts, as well as call read-only organizations
APIs.
- Click the link below to open the CloudFormation Stack creation wizard
- The following parameters are required:
AssumeRolePrincipalArn
- The
WutDotDev-Mgmt
role needs to be assumed by (human) engineers in your organization. Because every company manages AWS access differently, we can’t pre-populate this for you. - You should set this to the role name associated with human engineers that you want to grant access to Wut.Dev.
- You can use wildcards if engineers in multiple accounts should be granted access. Example:
arn:aws:iam::*:role/engineers
. - Security Note: the template already includes a condition statement that limits assume role access to entities in your organization only (see the next parameter).
- The
OrganizationUnitId
- The trust policy for the
WutDotDev-Mgmt
is configured to only trust IAM entities that match the pattern defined inAssumeRolePrincipalArn
. Because this can include wildcards, theOrganizationUnitId
is used to provide an added layer of security. - You can find your Organization ID in the Organizations AWS console. It should look like
o-abcdef1234
.
- The trust policy for the
IncludeSecurityAudit
- Whether the
SecurityAudit
policy should be attached to theWutDotDev-Mgmt
role. This is useful if you’re debugging access issues in the management account but otherwise can be set tofalse
if you’re only debugging member accounts.
- Whether the
2. Use the Role
When you’re done, the IAM entities defined in AssumeRolePrincipalArn
can now assume and use this role in Wut.Dev by running:
aws sts assume-role --role-arn arn:aws:iam::{AccountId}:role/WutDotDev-Mgmt --role-session-name WutDotDev
The access key ID, secret ID, and session token can then be copied into Wut.Dev.
You’ll need to provide the above command/instructions to your engineers to whom you want to grant access to the Wut.Dev interface. We recommend creating an alias, like wut
on the CLI to do so.
3. Deploy the Member Templates
If you haven’t used CloudFormation StackSets in your Organization you may need to configure the initial access.
This step will create an IAM role in each of your member accounts, called WutDotDev-Member
and give it the permissions necessary to call read-only APIs required for debugging and policy management (using the SecurityAudit
policy). Its trust relationship will be configured to trust the WutDotDev-Mgmt
role we created above.
- Open the CloudFormation StackSet creation wizard
- Use the following options:
- Permissions: Service-managed permissions
- Prerequisite - Prepare template: Template is ready
- Specify template: Amazon S3 URL
- Paste the following URL:
https://wut-dev-templates.s3.amazonaws.com/cfn-wut-dot-dev-member-role.json
- Paste the following URL:
- StackSet name:
WutDotDev-Members
- StackSet description:
Member account access for Wut.Dev
- Parameters: OrganizationMgmtAccountId: Enter the AWS account ID of your AWS Organization management account
- Execution configuration: Inactive
- Add stacks to stack set: Deploy new stacks
- Deployment targets: Deploy to organization
- Note: If you prefer to only enable Wut.Dev on certain OUs, you can specify those here instead
- Auto-deployment options:
- Automatic deployment: Activated
- Account removal behavior: Delete stacks
- Specify regions:
us-east-1
(or your choice; only specify a single region) - Deployment options
- Maximum concurrent accounts - optional: 1
- Failure tolerance - optional: 0
- Region concurrency: Sequential
- Concurrency mode: Strict failure tolerance
- Review and deploy the template