1 Install

Install via Homebrew (macOS and Linux):

brew install builder-magic/tap/timebound-iam

Or via Go: go install github.com/builder-magic/timebound-iam@latest

Or download a binary from GitHub Releases (macOS, Linux, Windows).

2 Run the Setup Wizard

The setup wizard detects your AWS account, lets you choose which services to allow, and generates the IAM policies you need.

timebound-iam setup aws

For a named profile: timebound-iam setup aws --profile my-profile

The wizard will display your account info and the full list of supported services:

AWS Account: 123456789012 Broker Role ARN: arn:aws:iam::123456789012:role/timebound-iam-broker Available services: 1. acm [read_only, full] 2. apigateway [full] 3. athena [full] 4. bedrock [read_only, full] 5. cloudformation [read_only, full] 6. cloudfront [read_only, full] 7. cloudtrail [read_only, full] 8. cloudwatch [read_only, full] 9. cloudwatch-logs [read_only, full] 10. codecommit [read_only, full] 11. codebuild [read_only, full] 12. codepipeline [read_only, full] 13. cognito [read_only, full] 14. comprehend [read_only, full] 15. config [read_only, full] 16. dynamodb [read_only, full] 17. ec2 [read_only, full] 18. ecr [read_only, full] 19. ecs [full] 20. elasticache [read_only, full] 21. elasticsearch [read_only, full] 22. elb [read_only, full] 23. emr [read_only, full] 24. eventbridge [read_only, full] 25. glue [full] 26. guardduty [read_only, full] 27. iam [read_only, full] 28. kinesis [read_only, full] 29. kms [full] 30. lambda [read_only, full] 31. opensearch [read_only, full] 32. polly [read_only, full] 33. redshift [read_only, full] 34. rekognition [read_only, full] 35. route53 [read_only, full] 36. s3 [read_only, full] 37. sagemaker [read_only, full] 38. secretsmanager [read_only, full] 39. ses [read_only, full] 40. ssm [read_only, full] 41. sqs [read_only, full] 42. sns [read_only, full] 43. stepfunctions [read_only, full] 44. textract [full] 45. translate [read_only, full] 46. waf [read_only, full] Which services should the broker role allow? Enter numbers separated by commas (e.g. 1,2,5) or 'all': > all Selected services: acm, apigateway, athena, bedrock, ...

After you select services, the wizard outputs the IAM trust policy and inline policy to create the broker role.

3 Create the IAM Role

Create a role named timebound-iam-broker in the AWS Console (or via CLI). The wizard generates both policies for you.

Trust policy (paste into "Trust relationships" tab):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::123456789012:root" } } ] }

Inline policy (paste into "Permissions" > "Add inline policy" > JSON):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "acm:Describe*", "acm:Get*", "acm:List*", "apigateway:*", "bedrock:Get*", "bedrock:List*", "cloudformation:Describe*", "cloudformation:Get*", "cloudformation:List*", ... (actions for all selected services) ], "Resource": "*" } ] }
The policy only includes actions for the services you selected. Choosing fewer services means a tighter policy.
4 Register with Claude Code

Add timebound-iam as an MCP server so your agent can request credentials.

claude mcp add --scope user timebound-iam -- timebound-iam serve

Then restart Claude Code and verify that the MCP Server is installed and running with the /mcp command.

Claude Code showing timebound-iam MCP server registered via /mcp command
5 Verify

Run the built-in test to confirm everything is wired up correctly.

timebound-iam test

This will attempt to assume the broker role and verify that credentials can be generated.