To allow Aiceberg to invoke models in your AWS Bedrock instance, create an IAM role in your AWS account that Aiceberg can assume. This guide provides the necessary trust policy, permissions, and setup instructions.
Prerequisites
AWS account with Bedrock access
Permissions to create IAM roles in your AWS account
Your unique External ID from Aiceberg (found in your Bedrock model configuration page)
1
Create the IAM Role
Sign in to the AWS Console
Navigate to IAM > Roles > Create role
Select "Custom trust policy"
Use the Trust Policy provided in the next step (replace the External ID)
2
Trust Policy (Assume Role Policy)
Use the trust policy below when creating the role. Replace REPLACE_WITH_YOUR_EXTERNAL_ID with the External ID from your Aiceberg Bedrock model configuration.
Add a description (e.g., "Allows Aiceberg to invoke Bedrock models")
Review and create the role
5
Copy the Role ARN
Open the role details page
Copy the Role ARN (format: arn:aws:iam::YOUR_ACCOUNT_ID:role/RoleName)
Enter this ARN in your Aiceberg Bedrock model configuration
Important: Do not share your External ID publicly. Replace REPLACE_WITH_YOUR_EXTERNAL_ID in the trust policy with the exact External ID provided by Aiceberg.
Security Best Practices
External ID is a security feature that prevents the "confused deputy problem" in cross-account access. Always use the unique External ID provided by Aiceberg — never share it publicly or reuse it across different services.
Least privilege: The sample policy grants only the minimum permissions required:
bedrock:InvokeModel — synchronous model invocation