Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

AWS Tutorials: IAM – Difference of inline policies and assume role policies (also known as trust policies)

In AWS IAM (Identity and Access Management), inline policies and assume role policies (also known as trust policies) serve different purposes within the lifecycle of IAM roles. Here’s a breakdown of the key differences between the two:

1. Inline Policy:

  • Purpose: An inline policy is a permission policy that is embedded directly into an IAM role, user, or group. It defines what actions the role can perform on AWS resources.
  • Function: Controls what actions the role can take and on which resources.
  • Policy Type: These are permission policies. They grant permissions to the entity (role, user, or group) they are attached to.
  • Example Use Case: An inline policy for an IAM role might allow it to perform specific actions, such as listing all S3 buckets or launching EC2 instances.

Where It’s Stored: Inline policies are stored directly in the IAM role, user, or group they are attached to.

Control: Fine-grained control for individual users, roles, or groups.

2. Assume Role Policy (Trust Policy):

  • Purpose: The assume role policy (or trust policy) defines who or what entity (user, service, or another AWS account) can assume the IAM role. This policy grants permission to another entity to assume the role and temporarily gain its permissions.
  • Function: Controls who can assume the role and under what conditions.
  • Policy Type: These are trust policies. They define the relationship between the role and the principal (like an IAM user, another role, or AWS service) that can assume it.
  • Example Use Case: An EC2 instance might assume an IAM role that has permissions to write to an S3 bucket, but only if the trust policy allows the EC2 service to assume the role.

Where It’s Stored: The assume role policy is stored in the IAM role itself and determines who can assume the role.

Control: Controls who can assume the role, typically allowing a user or service (like EC2, Lambda, etc.) to use the role’s permissions.

Summary of Differences:

FeatureInline PolicyAssume Role Policy (Trust Policy)
PurposeGrants permissions for actions on AWS resourcesDefines who (user, service, AWS account) can assume the role
TypePermission policyTrust policy
ControlsWhat actions the role can performWho can assume the role
Attached ToRoles, users, or groupsIAM roles
Example UsageAllow a role to list S3 buckets or start EC2 instancesAllow EC2 instances to assume a role and access its policies
Policy Example"Action": "s3:ListBucket""Principal": "ec2.amazonaws.com"
Stored InEmbedded directly in the role, user, or groupDefined within the IAM role itself

Key Takeaways:

  • Inline policies grant permissions to the entity they are attached to.
  • Assume role policies (trust policies) define who can assume the role and temporarily gain its permissions.
Rajesh Kumar
Follow me
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x