AWS IAM (Identity & Access Management)¶
IAM Users & Groups¶
Groups let us specify permission for multiple users. Identity based policies can be attached to a group
- Users are people in AWS & can be grouped.
- User don't have to belong to a group, & they can also belong to multiple groups
- IAM user group is a collection of IAM users.
- User groups cannot be nested & logged into.
- Users or Groups can be assigned JSON documents called policies. These documents define permissions.
- IAM Groups have no user limits. All 5000 users can be part of the IAM group. Also, there is no built in all user group in IAM.
Groups are not a true identity. Groups cannot be referenced as a principal in a policy. A resource policy cannot grant access to a IAM group.
Used when AWS services need to perform action on users behalf. Permissions to AWS Services are assigned with IAM Roles. Policies are attached to one principal, however, Roles can be asssumed by anyone.
Roles can be used by:
- IAM user in the same AWS account as the role
- IAM user in a different AWS account
- A web service offered by AWS like EC2
- An external user authenticated by an external identity provider
- EC2 instance roles
- Lambda function roles
- Cloudformation roles
Policies are used to manage access in AWS. Policies can be attached to IAM Identities (User, Group or roles). Policies are evaluated when an IAM Principle (user / role) makes a request.
Policies that are added to single user, group or role. Maintain a strict one-to-one relationship between a policy & entity. They are deleted when you delete the idenitity.
- Only attached to a user
AWS Managed Policies: Created & managed by AWS
Customer managed policies: Created and managed by AWS account
- Attached to resources
Eg IAM Policy
IAM Policy Priorites¶
If policy json contains same permissions for the resources, this comes into effect. Lower the number higher the priority.
- Explicit Deny
- Explicit Allow
- Default DENY (Implicit)
IAM Security Tools¶
Credential Report: Account Level¶
- A report that lists all account users & status of their credentials
Access Advisor: User-level¶
- Shows service permissions granted to a user and when those services were last accessed
Service Control Policies¶
- SCPs can be applied to the organization, to OU's or to individual accounts.
- Policies inherit down a tree (Eg: Root > OU > AWS Accounts)
- These policies limit what the account (including root user) can do. The root user cannot be restricted. But, by restricting an account, the root user is also restricted.
- SCPs DON'T GIVE permission - they just control what an account CAN and CANNOT grant via identity policies.
Management account is never impacted by Service Control Policies.