Goal: To use all of AWS Control Tower's features except AWS SSO, because the organization I'm working with doesn't want to change any aspect of identity management and single-sign-on at this time.
Currently, this organization uses ADFS in their datacenter for SSO with MFA and has some automation and processes for setting up a new AWS account with that identity solution.
I do not care if this integration with ADFS is triggered to run automatically upon a new account creation, since the organization hasn't had that level of automation for identity yet and the goal is not to change that.
The AWS Control Tower FAQs recommend using the Landing Zones solution instead of Control Tower if you have want a more custom approach:
While Control Tower automates creation of a new landing zone with pre-configured blueprints (e.g., AWS SSO for directory and access), the AWS Landing Zone solution provides a configurable setup of a landing zone with rich customization options through custom add-ons (e.g., Active Directory, Okta Directory) and ongoing modifications through a code deployment and configuration pipeline.
The CloudFormation templates and guides for the landing zones approach is here:
- CloudFormation Landing Zone Initiation Template: https://s3.amazonaws.com/solutions-reference/aws-landing-zone/latest/aws-landing-zone-initiation.template
- AWS Landing Zone Developer Guide: https://s3.amazonaws.com/solutions-reference/aws-landing-zone/latest/aws-landing-zone-developer-guide.pdf
- AWS Landing Zone Implementation Guide: https://s3.amazonaws.com/solutions-reference/aws-landing-zone/latest/aws-landing-zone-implementation-guide.pdf
- AWS Landing Zone User Guide: https://s3.amazonaws.com/solutions-reference/aws-landing-zone/latest/aws-landing-zone-user-guide.pdf
But I want it all: the ease of Control Tower and using a custom identity approach. Also, the organization uses Terraform, so I don't want to introduce a bunch of CloudFormation templates, and the AWS Terraform Landing Zone Accelerator (TLZ) has not been released yet despite having been announced over a year ago.
AWS Control Tower's Account Factory requires you to enter an AWS SSO email address, so it seems like there's no way around some use of AWS SSO, at least during initial setup, or "account enrollment":
Another aspect of this: since the organization uses ADFS to get into AWS, I cannot access an account created by AWS Control Tower via a switch role to the AWSControlTowerExecution
which Control Tower creates, because I'm logged into the Control Tower (master) account via federation.
(The principal in the AWSControlTowerExecution
role's trust relationship is the master account number. When you're authenticated via federation, AWS doesn't see your principal as part of the account you have federated into, therefore the AWSControlTowerExecution
role doesn't trust me, the federated user, so to speak.)