An IAM principal represents an entity that is allowed or denied access to AWS resources. It can be any of the following:

  1. IAM User: A human user with AWS credentials.
  2. IAM Role: An identity that trusts another authenticated identity to assume its permissions.
  3. AWS Service: A service within AWS that interacts with resources.
  4. Anonymous User: In specific cases, access can be granted to anonymous users.

How It Works

Benefits:

  1. Granular Access Control: Fine-tune permissions for different entities.
  2. Cross-Account Access: Enable trusted accounts to assume roles.
  3. Temporary Permissions: Roles allow temporary access via session tokens.
  4. Least Privilege: Assign only necessary permissions to each principal.

Limitations:

  1. No User Groups as Principals: Groups relate to permissions, not authentication.
  2. No Wildcards in Principal Names: Cannot match part of a principal name or ARN.

Features:

  1. Role Trust Policies: Specify who can assume an IAM role.