AWS Deployment

This guide provides step-by-step instructions for deploying Immuta 2026.1.x to Amazon EKS with RDS for PostgreSQL and OpenSearch for audit storage.

circle-info

For the official Immuta self-managed deployment documentation, see Install Immutaarrow-up-right.

Prerequisites

  • AWS CLI (aws) installed and authenticated with permissions to create EKS clusters, ECR repositories, RDS instances, and OpenSearch domains

  • kubectl installed

  • Helm 3.2.0+ installed

  • skopeo installed (installation guidearrow-up-right) -- used to copy container images between registries

  • Immuta OCI registry credentials

Required Variables

Set these environment variables before starting. All subsequent commands reference them.

# Deployment naming
export EKS_CLUSTER_NAME=immuta-lts
export AWS_REGION=us-east-1

# Immuta version
export IMMUTA_VERSION=2026.1.0

# Immuta registry credentials
export IMMUTA_USER=<your-immuta-registry-username>
export IMMUTA_TOKEN=<your-immuta-registry-token>

# AWS account
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)

# PostgreSQL credentials
export DB_PASSWORD=<your-postgres-admin-password>
export IMMUTA_DB_PASSWORD=<your-immuta-db-password>

# Namespace
export NAMESPACE=immuta
circle-exclamation

Step 1: Create Container Repositories in ECR

Step 2: Copy Immuta Images to ECR

Authenticate to ECR

Authenticate to Immuta Registry

Copy images

Step 3: Deploy EKS Cluster

Create the cluster

Run eksctl create cluster with a file like the one below but updated with appropriate values for the destination environment:

chevron-rightCluster Confighashtag

Create service accounts for EBS CSI Driver and Load Balancer Controller

This creates IAM roles and associates them with Kubernetes service accounts. For the ebs-csi-controller we only create the IAM role and allow the addon to create the service account.

circle-exclamation

Enable the EBS CSI Driver Addon

Deploy the AWS Load Balancer Controller

Deploy external-dns

If you control the DNS zone your application is being deployed to from the existing AWS account, you can automatically make DNS updates by installing external-dns:

Step 4: Create RDS Instance in EKS VPC

Step 5: Configure PostgreSQL Databases

Wait for the RDS instance to become available, then configure the databases from an ephemeral pod in EKS.

Get the RDS endpoint

Create the namespace

Create the Immuta role and databases

Run the following SQL to create the immuta role and the three required databases:

circle-info

Replace <immuta-db-password> in the SQL above with the password you want for the immuta database role.

Step 6: Download RDS CA Bundle

RDS requires TLS for connections. Download the AWS RDS CA bundle and create a Kubernetes secret that Temporal will mount:

Step 7: Create an OpenSearch Domain

Step 8: Install Immuta via Helm

Authenticate Helm to the Immuta registry

Deploy Immuta

Example values

Additional Annotations for ALB

All available annotations for the AWS Load Balancer Controller can be found at the link below. It may be worth noting enabling deletion protection via:

Last updated