How IAM is used to securely manage access
Managing user identities with long term credentials in IAM
Managing access using IAM user groups & roles
Using IAM policies to define and manage permissions
Key Management Service (KMS)
AWS Web Application Firewall
AWS Firewall Manager
Using AWS Network Firewalls to Secure Your VPCs
AWS Security Hub Overview
Other AWS Security Services
AWS Secrets Manager
The course is part of this learning path
This section of the AWS Certified Solutions Architect - Professional learning path introduces the key identity management, security, and encryption services within AWS relevant to the AWS Certified Solutions Architect - Professional exam. Core to security is AWS Identity & Access Management commonly referred to as IAM. This service manages identities and their permissions that can access your AWS resources, so understanding how this service works and what you can do with it will help you to maintain a secure AWS environment. IAM is an important service in ensuring your resources are secure.
Want more? Try a Lab Playground or do a Lab Challenge!
- Learn about identity and access management on AWS, including users, groups & roles, IAM policies, MFA, identity federation, and cross-account access
- Learn the fundamentals of AWS Web Application Firewall (WAF), including what it is, when to use it, how it works, and why use it
- Understand how to configure and monitor AWS WAF
- Learn about AWS Firewall Manager and its components
- Learn how to configure AWS Shield
- Learn the fundamentals of AWS Cognito
Alrighty, now let’s take a look at how authentication works with Identity pools.
The first part we should already be familiar with. Your application needs to have the user sign in with Cognito user pools and that can take place using either the user pool itself, a social sign-in, your SAML-backed authentication service or something of that ilk.
At this stage, an Identity Token is sent by the IDP back to the Cognito user Pool. Now Cognito does not store the credentials by the IDP or forward this to your mobile app, instead, the IDP token will be normalized into a standard token, called a Cognito User Pool Token, or CUP token and this will be used and stored by Cognito. This essentially means that it doesn’t matter if the user authenticated via an account in the User Pool, or federated access, all tokens will be standardized that are sent back to your app.
The actions carried out by the user on your app might also need to access back-end services or APIs that you have created, for example, you might be using API Gateway or Lambda - which accepts these CUP tokens, so Cognito will use the same CUP token to authenticate and authorize you to use those APIs with API Gateway, etc.
Now some services do not allow you to use the CUP tokens for authentication. If your mobile app requires access to services such as S3 or DynamoDB on the user’s behalf, then you will need to use the Identity Pool to authenticate.
The CUP Token can be sent to the Identity Pool, where an STS Token (Security Token Service) will be created based off of your CUP token, and this will be sent back to your application.
With these AWS credentials, your application will now be allowed to call upon those other AWS services.
These credentials will be linked to an AWS role you have associated with your users within the identity pool.
Danny has over 20 years of IT experience as a software developer, cloud engineer, and technical trainer. After attending a conference on cloud computing in 2009, he knew he wanted to build his career around what was still a very new, emerging technology at the time — and share this transformational knowledge with others. He has spoken to IT professional audiences at local, regional, and national user groups and conferences. He has delivered in-person classroom and virtual training, interactive webinars, and authored video training courses covering many different technologies, including Amazon Web Services. He currently has six active AWS certifications, including certifications at the Professional and Specialty level.