0

I am trying to create the appropriate AWS IAM Groups to implement Least Privilege. Is it best to create groups explicitly denying specific actions and allowing everything else, or creating groups that allow only the specific actions needed? AWS's Policy evaluation logic is a little bit different than I'm used too.

For Instance, say I want the following affect.

  1. Some Admins can do anything except access IAM (Powerusers) or makes changes to CloudFormation.
  2. Some Admins can do anything except access IAM.
  3. Some Admins can do anything.

Would it be best to design this way:

Admins: Can do anything. AdminsNoIAM: Can do anything with explicit deny to IAM. AdminsNoCloudFormation: Can do anything with explicit deny to CloudFormation.

OR

Admins: Can do anything. AdminsLimited: Can do anything explicitly listed, cloudformation and IAM not listed. CloudFormationAdmins: Explicitly allows CloudFormation access.

It seems like the first option would be the simplest to implement, but it feels like it might get a bit clunky. I may just not be used to the way AWS handles explicit denies. Thanks!

2
  • 2
    If you're asking the question you need to go re-research what "least privilege" is and why it's important. Least privilege would dictate that IAM users start with nothing and receive only what they explicitly need. AWS adds new features weekly so attempting to cover your bases with denies will fail long-term.
    – ceejayoz
    May 5, 2017 at 16:55
  • I've read alot of their guides/whitepapers on the topic, and I realize no one is allowed to do anything by default. I'm fairly new to AWS am have been tasked with cleaning up a structure that is already in place. The current structure is setup how I previously mentioned, with explicit denies as opposed to allows; so basically most people have explicit allows to everything, then a few groups with explicit denies. May 8, 2017 at 18:38

1 Answer 1

2

IAM users have no permissions by default, you have to add them to a group or grant them permissions before they can do anything. This shows AWS IAM denies by default, unless explicitly allowed.

You're best off only adding permissions that an individual user or group requires. Everything else will be denied by default by IAM. If you wanted to grant everything the deny you'd be going against best practice and the way AWS has set up IAM.

Also, as ceejayoz pointed out, new features are regularly added, so you'd be continually updating policies if you allow by default.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .