AWS AuthFI Connect

Connect your AWS account to AuthFI so users can get temporary credentials and console access based on their AuthFI roles.

Prerequisites

  • An AWS account with IAM admin access
  • AuthFI tenant on Scale or Enterprise plan

Step 1: Create an OIDC Identity Provider in AWS

aws iam create-open-id-connect-provider 
  --url https://your-tenant.authfi.app 
  --client-id-list authfi-cloud-access 
  --thumbprint-list <your-authfi-thumbprint>

Step 2: Create an IAM Role with Trust Policy

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "arn:aws:iam::123456789012:oidc-provider/your-tenant.authfi.app"
    },
    "Action": "sts:AssumeRoleWithWebIdentity",
    "Condition": {
      "StringEquals": {
        "your-tenant.authfi.app:aud": "aws",
        "your-tenant.authfi.app:azp": "authfi-cloud-access"
      }
    }
  }]
}

Step 3: Add Cloud Account in AuthFI

curl -X POST https://api.authfi.app/manage/v1/your-tenant/cloud/accounts 
  -H "X-API-Key: sk_..." 
  -d '{
    "provider": "aws",
    "name": "AWS Production",
    "account_ref": "123456789012",
    "config": {
      "oidc_provider_arn": "arn:aws:iam::123456789012:oidc-provider/your-tenant.authfi.app"
    }
  }'

Step 4: Create Role Mapping

curl -X POST https://api.authfi.app/manage/v1/your-tenant/cloud/mappings 
  -H "X-API-Key: sk_..." 
  -d '{
    "cloud_account_id": "<account-uuid>",
    "authfi_role_id": "<cloud-admin-role-uuid>",
    "cloud_role": "arn:aws:iam::123456789012:role/AdminAccess",
    "max_session_seconds": 3600,
    "conditions": { "require_mfa": true }
  }'

Step 5: Users Get Access

// SDK — get AWS credentials for the logged-in user
const creds = await authfi.cloudCredentials(req.user.token, {
  provider: 'aws',
  account: 'production'
});

// Use with AWS SDK
const s3 = new S3Client({ credentials: creds });

Or from the AuthFI Console, users click “Open Console” to land directly in the AWS Management Console.