AWS IAM Users, Groups, and Roles
3 min readJul 5, 2021
Users — Objects are created to represent an identity
- A user can represent a real person who requires access to operate and maintain your AWS environment
- Or it can be an account used by an application that requires permissions to access your AWS resources programmatically
- Permission can be assigned to the user or inherited from a group
Creating Users
- Users can be created via AWS Management console or programmatically(AWS CLI, IAM HTTP API, Tools for Windows Powershell)
Groups — IAM Groups are object
- IAM Groups are object like user objects
- Groups are not used in the authentication process
- They are used to authorize access through AWS Policies
- IAM Groups contains Users and have IAM policies associated
Creating Groups
- AWS has a default maximum limit of a hundred groups
- A user can only be associated with 10 groups
Roles — IAM Roles allow you to adopt a set of temporary IAM Permissions
The benefit of using IAM Role
- Roles don’t have any access keys or credentials associated with them. The credentials are dynamically assigned by AWS
- You can alter the permissions assigned to the Role and all the EC2 instances associated will have the correct access
There are currently 4 different types of Roles
- AWS Service Role(eg. Amazon EC2, AWS Lambda)
- AWS Service-Linked Role — there are predefined by AWS and the permissions can’t be altered in any way as they are set to perform a specific function. eg Amazon Lex Bots and Amazon Lex Channels)
- A role for Cross-Account Access — Thie role type offers two options. Providing access between AWS accounts that you own and providing access between an account that you own with a third-party AWS account. This access is managed by policies that establish trusting and trusted accounts that explicitly allow a trusted principal to access specific resources.
- A role for Identity Provider Access — this role offer 3 different options.
4.1 Grants access to web identity providers — Creates a trust for Users using Amazon Cognito, Amazon, Face, Google, or other provider
4.2 Grant Web Single Sign-On to SAML Providers — Allow access for users coming from a Security Assertion Markup Language(SAML) provider
4.3 Grant API Access to SAML Providers — Allows access from SAML provider via the AWS CLI, SDKs, or API calls
Roles and Users
- There are circumstances where you need to grant temporary access to a resource for a particular user