aws-samples / aws-get-started-workshop

Workshop to Get Started with AWS for Production Workloads
https://getstarted.awsworkshop.io
Other
64 stars 32 forks source link

AWSPowerUserAccess permission set is insufficient for dev team members #19

Closed ckamps closed 4 years ago

ckamps commented 4 years ago

We initially directed the customer to use the AWSPowerUserAccess permission set when associating their development team groups in AWS SSO with the development team AWS accounts.

However, since the underlying AWS-managed permission PowerUser doesn't allow for IAM access, it's not sufficient to meet the requirements.

Background

See where the doc currently suggests using this AWS-managed permission set:

https://github.com/ckamps/aws-foundation-journey/blob/master/1-dev-environments/2-8-onboard-dev-teams.md

For example, it does not enable dev team members to create IAM roles associated with typical application level deployments.

Reproduce

As a dev team member, access your team AWS account. In the AWS Management Console attempt to view IAM resources and create an IAM role.

Requirements

Requirements have been moved to a reference doc:

https://github.com/ckamps/aws-foundation-journey/blob/master/1-dev-environments/3-3-controlling-dev-team-access.md

ckamps commented 4 years ago

A walkthrough of the early draft sample policy has been created. As we rapidly iterate on the sample policy, we'll need to keep the walkthrough doc in sync.

https://github.com/ckamps/aws-foundation-journey/blob/master/1-dev-environments/3-3-iam-policy-infra-dev-team.md#policy-walkthrough

ckamps commented 4 years ago

OK, so an initial rough customer permission set has been added and incorporated in the guide to align with most of the requirements listed here in this issue. The remaining task is to address the privilege escalation gap via IAM boundary permissions.

ckamps commented 4 years ago

We moved to a NotAction approach in both the SAML and PB policies to make it more of a least privileged approach where access to specific IAM permissions needs to be explicitly allowed.

ckamps commented 4 years ago

Out of the many resources/examples for permissions boundaries, this one has stood out in my mind:

https://identity-round-robin.awssecworkshops.com/permission-boundaries/build/

Demo using with Lambda:

https://www.youtube.com/watch?v=eVNvjQ0wr84&feature=youtu.be

ckamps commented 4 years ago

The initial draft form of the SAML policy and Permissions Boundary (PB) policy have been integrated and are undergoing initial testing and review.

ckamps commented 4 years ago

Our next step is to move the VPC deny permissions that are currently both the SAML and PB policies up to SCPs that get applied to the Development OU so that:

ckamps commented 4 years ago

A few considerations based on initial review and testing:

ckamps commented 4 years ago

Sample SCPs have been merged along with updated docs and IAM policy samples.