- Managed identity (recommended): Reducto signs in to your Entra ID tenant as a user-assigned managed identity that you own. You give Reducto no secret, and your Storage account can disable shared key access.
- Connection string: You give Reducto a Storage account connection string that contains an account key.
Managed identity
You create a user-assigned managed identity in your tenant and add a federated identity credential to it. The credential trusts Reducto’s AWS account, so Reducto signs in as the identity with a short-lived token from AWS instead of a stored secret. Azure role assignments decide what the identity can reach.Architecture
- Reducto’s workers request a short-lived token from AWS. The token names Reducto’s federation role for the region and an audience that contains your Reducto organization ID.
- Microsoft Entra ID accepts the token only if your identity’s federated credential matches its issuer, subject, and audience. Entra ID then issues a token for your identity.
- Reducto uses that token to read your input documents and to write results and intermediate artifacts to your container.
- When a response contains a URL to a result or an image, that URL is a read-only user delegation SAS link to one blob in your container. Reducto signs it with a user delegation key that it requests as your identity. The link expires after at most 12 hours.
Federated credential values
Add one federated credential to the identity for each Reducto region that processes your documents. All three fields must match exactly.
Microsoft Entra ID allows one federated credential per issuer and subject on an identity. Use a separate identity for each Reducto organization that uses the same region.
Prerequisites
- Azure subscription with permission to create a managed identity and a Storage account, and to assign roles on the Storage account (Owner, or User Access Administrator plus Contributor)
- Terraform 1.2+ with the AzureRM provider 4.65 or later (optional, for automated setup)
- Blob data access for the Terraform identity: The Storage account disables shared key access, so the provider calls the Blob data plane with Entra ID (
storage_use_azuread = true). Before you apply, assign the user or service principal that runs Terraform Storage Blob Data Contributor on the subscription, because the example creates the resource group during the apply. If you adapt the example to use an existing resource group, you can assign the role on that group instead. Owner and Contributor alone do not include Blob data actions - Your Reducto organization ID (provided during onboarding)
Setup
- Terraform
- Azure CLI
1
Create main.tf
2
Initialize and apply
3
Read the values for Reducto
tenant_id, client_id, account_url, and container to your Reducto team. None of them is a secret.Components provisioned
Integration values
Reducto supports the Azure public cloud (
*.blob.core.windows.net) for managed identity connections.
Revoking access
- Remove the role assignments to stop Reducto’s access to your data. Azure applies the change within minutes.
- Revoke user delegation keys to invalidate result links that Reducto has already signed:
az storage account revoke-delegation-keys -n "your-storage-account" -g "your-resource-group". This revokes every user delegation SAS on the Storage account. - Delete the federated credential to stop new sign-ins. An access token that Reducto already holds stays valid until it expires, for up to 24 hours, so also remove the role assignments for immediate effect.
Connection string
Reducto connects with a Storage account connection string that contains an account key. Use this option if you cannot create a managed identity.Prerequisites
- Azure subscription with permission to create a Storage account and read its access keys
- Shared key access enabled on the Storage account (
allowSharedKeyAccess = true, the Azure default) - Terraform 1.2+ with the AzureRM provider (optional, for automated setup)
- Values from Reducto (provided during onboarding): your Reducto organization ID
Architecture
- You create a Storage account and a private container.
- You send Reducto the container name and the Storage account connection string.
- Reducto stores the connection string in a Hybrid VPC environment for your organization. API responses and audit logs never show it after it is saved.
- Reducto workers use the connection string to read your input documents and to write results and intermediate artifacts to the container.
- When a response contains a URL to a result or an image, that URL is a read-only SAS link to one blob in your container. Reducto signs it with the account key from the connection string. The link expires after at most 12 hours.
Setup
- Terraform
- Azure Portal (manual)
1
Create main.tf
2
Initialize and apply
3
Read the values for Reducto
Components provisioned
Integration values
The connection string has this form:
Rotating the account key
The connection string contains one of the two account keys. To rotate without downtime:- Copy the connection string for the key that Reducto does not use (for example, key2).
- Send the new connection string to your Reducto team, and wait for confirmation that the environment uses it.
- Wait 12 hours. SAS links that Reducto signed with key1 before the switch stay valid for up to 12 hours.
- Regenerate the old key (key1) in Access keys.
Environments
Reducto registers your values as a Hybrid VPC environment for your organization, with one data residency:us, eu, or au. One organization can have more than one environment, for example one Storage account per data residency or per client (see Multiple Environments).
Send requests to the Reducto API of the environment’s data residency:
A request that names no environment uses your organization’s default environment for the region of the API that you call. To select an environment, pass its name in
settings.hybrid_vpc.environment for /parse, or in parsing.settings.hybrid_vpc.environment for /extract and /split. A request that names an environment of another data residency fails with HTTP 400.
Usage
After Reducto enables the environment, Reducto writes results and intermediate artifacts for your organization to your container. You can also pass a blob in the same Storage account as the input. Reducto reads it with the environment’s credentials, so the blob can stay private. With a managed identity, Reducto can read only the containers the identity has a role on. To read inputs from a container other than the Reducto container, assign Storage Blob Data Reader on that container to the identity. If you configure the recommended lifecycle rule, keep source documents that you want to retain outside the Reducto container, because the rule deletes them (see Data Lifecycle). The examples read your Reducto API key from theREDUCTO_API_KEY environment variable:
acmereducto with your Storage account name and reducto-documents with your container name. For EU or AU data residency, use the regional API base URL from Environments.
Network access
Reducto workers connect to your Storage account over its public blob endpoint (https://<account>.blob.core.windows.net). Azure Private Link is not supported for Azure Blob Storage. If you restrict Public network access to selected networks, contact Reducto before you do so, or Reducto cannot read or write your container.
SAS links in responses also use the public blob endpoint. The application that opens those links must be able to reach your Storage account.
Data Lifecycle
Configure lifecycle management to automatically delete blobs after processing. The Terraform examples above create this rule; the Azure CLI steps do not. The rule below deletes every block blob in the Reducto container one day after it was last modified, including documents that you upload there, so keep source documents that you want to retain in another container. Scope the rule to the Reducto container withprefixMatch, so that it does not delete blobs in other containers of the same Storage account:
Security
- No stored secret (managed identity): Reducto signs in with a short-lived AWS token, and your federated credential accepts it only for your organization. Your Storage account can disable shared key access.
- Least privilege (managed identity): The identity holds Storage Blob Data Contributor on the Reducto container only, and Storage Blob Delegator to sign links.
- Account key scope (connection string): The account key gives full access to the Storage account, not only to the container. Use a dedicated Storage account for Reducto so that the key cannot reach other data. API responses and audit logs redact the connection string after it is saved.
- Short-lived links: Every URL that Reducto returns is a read-only SAS link to one blob. It expires after at most 12 hours.
- Automatic cleanup: Lifecycle management policies ensure no long-term data persistence.