Readit News logoReadit News
flyinprogrammer · 3 years ago
https://aws.amazon.com/controltower/

If we all started using Control Tower perhaps they'd get funded enough to continue to build it out and make it awesome.

wrnu · 3 years ago
https://github.com/aws-samples/aws-secure-environment-accele...

I've used the ASEA to get a number of organizations setup. I prefer it to Control Tower (it can be installed on top of CT). The ASEA is open source and written in AWS cdk so it can be forked and modified if needed.

thedougd · 3 years ago
The guy or gal that's been working on it the last two years has slowly been working through my bucket list.

If I can just get guardrails that configure the basic AWS security foundation stuff like password policies, I'll be satisfied. And oddly enough, the CloudFormation coverage for this stuff is abysmal. We don't even allow IAM users in the member accounts, but we really need to check off this compliance box.

rcrowley · 3 years ago
In the meantime, check out Substrate <https://src-bin.com/substrate/> and don’t worry about waiting for AWS to improve.
metadat · 3 years ago
Mr. Crowley, did you forget to mention / disclose your association and financial interest tied to this product?

For context, https://www.linkedin.com/in/richarddcrowley indicates he works there.

smcleod · 3 years ago
Far out - that website looks dodgy as. What on earth is going on with its fonts - it looks like a newspaper vomited onto the screen.
jcims · 3 years ago
If config can go this long with half-assed implementation I don’t see why control tower is going to fare better with more adoption. Most large enterprises are going to want to roll their own anyway.
dmak · 3 years ago
I looked at the landing page, but don't really understand when I would use this. Could you give a few examples of why this is useful?
TYPE_FASTER · 3 years ago
Centralized management and application of IAM policy with the goal of giving teams the freedom to manage their own account, including account security, while still protecting the organization as a whole.

When customers request single tenancy in the cloud, where single tenancy is referring to an AWS account, being able to automate account management will be important when trying to scale.

scarface74 · 3 years ago
> If you wish to provide access via SSH…

Don’t do this. I can’t think of a single reason that anyone ever needs to SSH directly into a server on AWS in 2022.

Use System Manager Session Manager

https://docs.aws.amazon.com/systems-manager/latest/userguide...

Short explanation: it allows you to access a Linux instance via SSH using SSM as an IAM controlled proxy or use RDP for Windows.

You don’t need ingress access to your instance or even egress internet access if your security policies mandate it as long as you set up the correct service endpoints.

Also, just use Control Tower and federate it with your IDP - Active Directory, Okta, etc.

datalopers · 3 years ago
A lot of us are busy solving business needs in smaller companies/startups and don't have the time nor expertise to learn every single AWS service and come up with a justification for utilizing it.
jacurtis · 3 years ago
A lot of these tools actually make your life easier and faster in the long run.

ControlTower for example. Takes about 30 mins to setup on normal AWS (on GovCloud it was much more complicated, took me half a day). But then setting up new accounts is one click and it’s preconfigured with correct restrictions and security measures, which individually would take several hours per account to do without controltower. So it’s an easy savings from the beginning. The only real cost is the cost of AWS config. So if you’re using that already (for SecurityHub for example) then it’s nothing additional.

IAM Identity Center makes user management not only more secure but faster and easier. It will take half a day to maybe a full day to setup the first time. But now every new user will be a few clicks with access across multiple AWS accounts. You can remove them in one click across all accounts. So these are just really simple additions to your workflow that save you time and improve security.

SSM is another example. It’s adding a policy to your instance role and checking a box (or adding a flag in Terraform or CLI) and it’s enabled. It’s no additional cost. It saves you time because you don’t need to manage user accounts on the server anymore (they are managed broadly through IAM or PermissionSets). No more copying around SSH keys or rotating them when people leave. It improves security and saves you time.

There’s little (if any at all) downside to any of these things. It’s all upside. For the most part, these don’t even have any significant costs associated with them. They are generally provided for free where you’re only cost is the underlying resources that you’re managing, which of course your paying for regardless.

raffraffraff · 3 years ago
I understand your frustrations with AWS, and I get that solutions for enterprises don't always work for smaller companies, but when someone describes a solution that reduces operational complexity while increasing security, they should get thanks. It's not their fault that AWS has too many services.
scarface74 · 3 years ago
Control Tower is literally a click once and it sets everything up for you.
cjcampbell · 3 years ago
I agree to an extent, though SSH may make sense for break-glass usage. SSM was unavailable during the large scale control plane outage last December, and I saw clients that would have been dead in the water without SSH as an alternative. That said, it's important to really think through how to provide that secondary layer without weakening the overall security posture. It's possible, but it does take work.
throwawaaarrgh · 3 years ago
Last I recall, SSMSM gives users root or ec2-user access on the instance? Or does it create new users?
scarface74 · 3 years ago
I haven’t thought about this. But I did find this.

https://medium.com/@unruly_mood/aws-ssm-sessions-root-non-ro...

tedk-42 · 3 years ago
These type of articles make me wanna quit doing anything in IT.

It's not a criticism of the author, more the current state of technology in AWS.

I'd really like to have just 1 AWS account where I can see and do everything there and not keep switching and think about account IDs or which account has what S3 bucket/server whatever.

manv1 · 3 years ago
It's always a tradeoff between blast radius and (in)convenience.

With everything in one account someone might accidentally destroy your production environment. That'll be awkward to explain. And with IAC, it could be as simple as one change to a VPC config that recreates instead of updates the VPC.

In normal IT (not Twitter) you usually have a production and test environment at least. The inconvenience more than makes up for accidentally destroying something in production. And before you say anything, if you haven't done that you haven't been in IT for long enough.

However, if you want to do it your way you should become the director and make it that way. You'll be sorry, but that'll be on your head.

I'm not sure if that's possible, but I haven't checked.

canucklady · 3 years ago
Same. My current company has the same problem, which is that they continually layer additional complexity onto their previous architectural mistakes to try and mitigate them. This results in a complicated system where different independent parts all interact with each other like a rube goldberg machine. The dynamics of the resulting system become sort of perilous and unknowable, and it paralyzes future changes because nobody can predict the nth order effects.
singlow · 3 years ago
Then do it. Why does your activity in IT depend on what someone on the internet says? For the rest of us, multi-account setups offer a large number of advantages that outweigh the inconveniences and we have built tooling to deal with most of those anyway.
deadbunny · 3 years ago
The really frustrating things is that while AWS make the "Account" their best isolation layer they make managing those accounts with their tooling absolutely awful.
garbagebin · 3 years ago
what kind of tooling are you looking for?
epberry · 3 years ago
Very nice write up. As a billing guy I especially liked the tip about using resource policies to enable cross-account access and save on KMS request costs.

There's one issue with companies using hundreds of AWS accounts if you're a vendor to them: integrating services. Some folks here may be interested in a technique called "CloudFormation StackSets" which can deploy bits of infrastructure to multiple AWS accounts in one command. Vantage uses this to setup our billing integration and we wrote up the method here, https://www.vantage.sh/blog/using-cloudformation-stacksets-t...

throwawaaarrgh · 3 years ago
For an IdP it seems like Dex combined with an LDAP server would be the simplest and most flexible solution. For reliability, I'm curious about throwing together a really simple LDAP server that stores records in AWS S3. That way your IdP can be trivially replicated with as much reliability as you want and nearly no maintenance. (Dex's storage can be Etcd, but I would also look to implement S3 storage)
raffraffraff · 3 years ago
> a really simple LDAP server that stores records in AWS S3

... Like glauth? https://github.com/glauth/glauth

medina · 3 years ago
Re-discovering Active Directory Enhanced Security Administrative Environment (ESAE) / Red Forest design, in cloud :-)
rcrowley · 3 years ago
Honestly, having lived a parallel life to the Windows ecosystem, TIL about “red forest.” I do think, though, that cross-account AWS actions are much more first-class than it sounds like jumping between forests ever was.
albert_e · 3 years ago
> Don’t do this! Any principal in your management account, by default, is able to assume the OrganizationAccountAccessRole in each and every one of the accounts created using the organizations:CreateAccount API.

I should note that if you use AWS Control Tower Account Factory to create the member accounts then this role does not get created.

The "Audit" account that is created by Control Tower is probably the best one to serve as the Administrative Access Account

jeremya · 3 years ago
> Any principal in your management account, by default, is able to assume the OrganizationAccountAccessRole in each and every one of the accounts created using the organizations:CreateAccount API.

This is an untrue statement. For a principal in the management account to assume OrganizationAccountAccessRole, they need to have a principal-based policy that gives sts:AssumeRole permissions for it. Otherwise, great article. We use this pattern at $DAYJOb

ManuelKiessling · 3 years ago
Very similar, but with visualizations of how things integrate with each other, and concrete code examples: https://manuel.kiessling.net/2020/12/29/single-sign-on-and-r...