IAM is the center of AWS.
Root account should never be used or shared.
"Users" and "Groups" are for people, "Roles" are for machines.
"Permissions" are governed by "Policies" which are in JSON format.
An IAM group is a collection of IAM users. Groups let you specify permissions for multiple users, which can make it easier to manage the permissions for those users.
IAM comes with managed policies.
It's best to give users least amount of permissions they need to perform their job.
IAM Federation - Big enterprises have their own repo of users that can be integrated with IAM. This way, one can login into AWS using their company credentials (SAML).
One IAM user per physical person.
One IAM role per application.
IAM roles cannot make direct requests to AWS services; they are meant to be assumed by authorized entities, such as IAM users, applications, or AWS services such as EC2. Use IAM roles to delegate access within or between AWS accounts.
IAM credentials should never be shared.
Never use root account except for initial setup.
Always create an IAM user when setting up AWS!