Overview
Pre-built tooling
Pre-built integrations
Access requirements
Setup guide
Useful links
API gotchas
Why use the AWS SigV4 integration?
- Reuse the Nango proxy to call AWS APIs (S3, CloudWatch, etc.) without storing customer credentials.
- Two modes for obtaining temporary credentials:
- Built-in AWS STS — Nango calls AWS STS
AssumeRoledirectly using your AWS credentials. No external service needed. - Custom STS endpoint — You host your own STS-style service that exchanges a customer IAM Role ARN + ExternalId for temporary AWS credentials.
- Built-in AWS STS — Nango calls AWS STS
Access requirements
Built-in AWS STS mode
| Pre-Requisites | Status | Comment |
|---|---|---|
| AWS account with IAM permissions | ✅ Required | Your AWS Access Key ID and Secret Access Key are stored securely in Nango’s encrypted secrets column. |
| Customer AWS account | ✅ Required | Your customer creates an IAM role that trusts your AWS account with the ExternalId Nango generates (or that you pre-seed). |
| Custom STS endpoint | ❌ Not required | Nango calls AWS STS directly. |
Custom STS endpoint mode
| Pre-Requisites | Status | Comment |
|---|---|---|
| AWS account with IAM permissions | ✅ Required | Needed to host the STS endpoint and to register a trusted role in your own account. |
| Customer AWS account | ✅ Required | Your customer creates an IAM role that trusts your STS role with the ExternalId. |
| Custom STS endpoint | ✅ Required | Hosted by you (Docker container or similar). You expose the URL + auth in Nango integration settings. |
Setup guide
Nango supports two STS modes. Choose the one that fits your setup.Option A: Built-in AWS STS (recommended)
Nango calls AWS STSAssumeRole directly — no external service to host.
Create an AWS SigV4 integration in Nango
- From the Integrations page, add the AWS SigV4 Proxy template.
- In Settings → General, locate the AWS SigV4 configuration card.
- Select Built-in AWS STS as the STS mode.
- Enter the AWS service identifier you plan to call (for example
s3). - (Optional) Provide a default AWS region. End customers can override this during Connect.
- Enter your AWS Access Key ID and AWS Secret Access Key. These credentials are used to call
sts:AssumeRoleon behalf of your customers. They are stored in Nango’s encrypted secrets column and never exposed in the integration config. - Click Save.
Onboard customers in your own application
Before opening Nango Connect, surface setup instructions (CloudFormation templates, manual IAM steps, etc.) in your own onboarding flow. Generate the ExternalId, show it to the customer so they can paste it into their IAM trust policy, and collect the resulting IAM Role ARN. Pre-seed the ExternalId into the Connect session so the value the customer sees in Connect matches what they configured.
Collect Role ARN & optional region during Connect
- Create a Connect session, pre-filling
external_id(and optionallyrole_arn/region) viaintegrations_config_defaults(see Pre-populating credential values). - The Connect UI shows the pre-seeded External ID read-only so the customer can confirm it matches their trust policy.
- When the end customer submits the form, Nango calls AWS STS
AssumeRolewith your credentials, tests the result viaGetCallerIdentity, and stores a refreshable SigV4 credential.
Option B: Custom STS endpoint
You host your own STS-style service that exchanges credentials on behalf of customers.Host or configure your STS endpoint
Deploy the SigV4 STS helper service (Docker or any HTTPS service) in your infrastructure. It must accept a JSON payload that includes
role_arn, external_id, region, and service, assume the requested role, and return temporary AWS credentials (see STS endpoint contract). Secure the endpoint using either an API key header or HTTP basic auth so Nango can authenticate the call.Create an AWS SigV4 integration in Nango
- From the Integrations page, add the AWS SigV4 Proxy template.
- In Settings → General, locate the AWS SigV4 configuration card.
- Select Custom STS Endpoint as the STS mode.
- Enter the AWS service identifier you plan to call (for example
s3). - (Optional) Provide a default AWS region. End customers can override this during Connect.
- Supply the STS endpoint URL and choose how Nango should authenticate (API key header or basic auth).
- Click Save to persist these settings.
Onboard customers in your own application
Before opening Nango Connect, surface setup instructions in your own onboarding flow. Generate the ExternalId, show it to the customer so they can paste it into their IAM trust policy, and collect the resulting IAM Role ARN. Pre-seed the ExternalId into the Connect session so the value the customer sees in Connect matches what they configured.
Collect Role ARN & optional region during Connect
- Create a Connect session, pre-filling
external_id(and optionallyrole_arn/region) viaintegrations_config_defaults(see Pre-populating credential values). - The Connect UI shows the pre-seeded External ID read-only so the customer can confirm it matches their trust policy.
- When the end customer submits the form, Nango calls your STS endpoint with the Role ARN + ExternalId, tests the credentials via
GetCallerIdentity, and stores a refreshable SigV4 credential.
Contribute improvements to this guide by editing this page
STS endpoint contract (custom mode only)
This section only applies when using Custom STS Endpoint mode. With Built-in AWS STS mode, Nango calls the AWS STS
AssumeRole API directly and handles the request/response automatically.Example request payload
Example response payload
- You may wrap the response inside a
credentialsobject; the helper accepts either shape. expiresAt/expires_at/expirationare interchangeable. Numeric values are treated as Unix seconds. If omitted, Nango assumes one hour.
Pre-populating credential values
You can pre-seedexternal_id, role_arn, or region per Connect session via integrations_config_defaults. Pre-seeding the ExternalId is the recommended pattern: mint it in your onboarding flow, show it to the customer alongside their IAM trust-policy instructions, then pass the same value into Connect so the customer sees a matching read-only value.
Useful links
- AWS Signature Version 4 signing process
- AWS STS AssumeRole documentation
- AWS IAM best practices for ExternalId
Contribute useful links by editing this page