Skip to content

AWS Setup

Create one IAM role in your AWS account, then paste that role ARN in Yaffle.

  1. In Yaffle, open AWS Connection Setup and copy Step 1 values:

    • Yaffle principal ARN
    • External ID
    • Suggested role name (editable)
  2. Create the IAM role in AWS using one method:

    • Terraform (Recommended)
    • CloudFormation
    • AWS CLI
  3. Copy the resulting role ARN from your method output.

  4. Paste role ARN in Yaffle Step 3 and save the connection.


Use a small local-state bootstrap stack for first-time setup.

Create yaffle-bootstrap.tf:

yaffle-bootstrap.tf
module "yaffle_bootstrap" {
source = "git::https://github.com/yaffle-dot-dev/yaffle.git//infra_modules/public/bootstrap-yaffle/aws?ref=main"
yaffle_principal_arn = "<paste-from-yaffle-step-1>"
external_id = "<paste-from-yaffle-step-1>"
role_name = "<paste-or-customize-role-name>"
environment = "main"
}
output "yaffle_role_arn" {
value = module.yaffle_bootstrap.role_arn
}

Apply:

Terminal window
tofu init
tofu apply

This bootstrap is intentionally local-state oriented. You can move/import into your long-lived state management later if desired.

Get role ARN:

Terminal window
tofu output -raw yaffle_role_arn

Default bootstrap creates one role with:

  • Trust policy for your Yaffle principal ARN
  • Required ExternalId condition
  • AdministratorAccess permissions

If your org requires least privilege, you can customize policy attachments. Keep in mind Yaffle still needs all permissions required by your Terraform resources.