When to use this method
- When you need to separate permissions by granting targeted S3 access without altering your EC2 instance’s primary role
- When temporary, frequently rotated credentials are required for S3 access, eliminating the need to manage long-lived access keys
- When operating across multiple AWS accounts, allowing cross-account S3 access through role assumption
Setting up the IAM Role
- Create the S3 Access Role
- In AWS Console, go to IAM › Roles and click Create role
- For Trusted entity type, select Custom trust policy
- In the Custom trust policy JSON editor, configure who can assume this role. You can choose from:
- IAM Role:
"AWS": "arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/YourExistingEC2Role" - AWS Service:
"Service": "ec2.amazonaws.com"(for EC2 instances) Example for EC2 role (replaceYOUR_AWS_ACCOUNT_IDandYourExistingEC2Role):
- Click Next
- Attach AmazonS3ReadOnlyAccess policy or create a custom policy for specific buckets:
- Give the role a name (e.g.,
ASSISTAIS3AccessRole) and click Create role - Copy the Role ARN from the role summary page (e.g.,
arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/YOUR_CREATED_ROLE_NAME)
- Grant AssumeRole to EC2 instance role
- Go back to IAM > Roles and find your EC2 instance’s existing role
- Click on the role and go to the Permissions tab
- Click Add permissions > Create inline policy
- Switch to JSON and add this policy (replace with your actual account ID and role name):
- Name the policy (eg -
AllowAssumeASSISTAIS3Role) and click Create policy
Credential Entry in ASSIST AI
When setting up the S3 connector in ASSIST AI:- Open the IAM Role tab Click on the IAM Role tab within the connector configuration.
- Enter Role ARN
Enter the Role ARN you copied earlier (e.g.,
arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/YOUR_CREATED_ROLE_NAME)
