Prerequisites for Wizard-Based Deployment on AWS

Prerequisites for Wizard-Based Deployment on AWS

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

✅ Enterprise: AWS

1. Overview

This section describes the prerequisites, AWS resources, permissions, and networking configurations required before performing a wizard-based Kyvos deployment on AWS using Kyvos Native resources.


2. Before you start

  • Download the AWS Installation Files folder and keep all required files on hand during installation.

  • Kyvos supports wizard-based deployment on AWS using a Kyvos public AMI.

  • EC2 key pair, A private key + public key pair. You can create the key pair if needed.

  • PostgreSQL 16 script: Required only if continuing with Postgres 16 as an installed service.

  • The required ports are available.

  • The required OS Commands used by Kyvos Manager are available on all the machines.


3. Networking requirements

You have two options for setting up networking: use a CloudFormation template to auto-create resources, or use your existing network.

Option A — Auto-create network resources with CloudFormation

Template

Use case

File

Template

Use case

File

Network template

Creates VPC, Subnet, and Security Group

—

NAT Gateway template

Deploy network with a NAT Gateway

vpc_nat.json

(available in AWS Installation files)

Endpoints template

Deploy network with VPC Endpoints

vpc_internet_gateway.json

(available in AWS Installation files)

Option B — Use existing network resources

If using your own VPC:

  • You must create VPC Endpoints to connect to required AWS services, or

  • Ensure the subnet has internet access and a NAT Gateway.

Note

In the table below, change the {AWS-REGION} according to the region in which you are deploying Kyvos.
AWS does not provide a VPC endpoint for the Cost explorer service, so the Kyvos Resource Usage feature will not work without internet access.

3.1 VPC Endpoints

AWS does not provide a VPC endpoint for the Cost Explorer service. Without internet access, the Kyvos Resource Usage feature will not work.

AWS Service Name

Description/Purpose

VPC Endpoint Name

AWS Service Name

Description/Purpose

VPC Endpoint Name

CloudWatch logs

Used to send bootstrap logs of the EC2 machines to CloudWatch Logs.

com.amazonaws.{AWS-REGION}.logs

CloudFormation

Used by Kyvos Manager at the time of deployment to validate and get details from the AWS stack in CloudFormation.

com.amazonaws.{AWS-REGION}.cloudformation

CloudWatch Event

Used to schedule events on CloudWatch Event for scheduled starting of the Kyvos analytical server .

com.amazonaws.{AWS-REGION}.events

S3

Used to connect to S3 bucket for reading raw data and writing metadata.

com.amazonaws.{AWS-REGION}.s3

RDS

Used for scheduled start/stop of the Kyvos cluster along with RDS.

com.amazonaws.{AWS-REGION}.rds

EC2

Used by Kyvos Manager to describe EC2 and Kyvos for scheduled start/stop of Query Engines.

com.amazonaws.{AWS-REGION}.ec2

Secrets Manager

Used by the Kyvos analytical server to get the passwords stored in AWS Secrets Manager.

com.amazonaws.${AWS-REGION}.secretsmanager


4. Permission requirements

4.1 IAM Roles

Create IAM Role either:

  • Automatically, using the CloudFormation template wizard_based_deployment_iam_role.json, or

  • Manually, creating a role for Lambda (attached to Kyvos-created Lambda functions, containing all permissions the functions need). Download ec2_iam_policy.json and lambda_iam_policy.json from the installation folder.

4.2 S3 Bucket Permissions (existing bucket)

If you want to use an existing S3 bucket and IAM role, or read data from an S3 bucket other than the one where Kyvos is deployed, the IAM role needs the permissions in the policy below.

Important

4.3 Placeholders to replace:

Placeholder

Replace with

Placeholder

Replace with

<Bucket Name>

Your S3 bucket name

<Lambda Role>

Your Lambda role name

<EC2 Role>

Your EC2 role name

<kyvosEksOidcrole>

The IAM role ARN of the Service Account (see steps below)

4.4 Copying the IAM role of Service Account

To copy the IAM role of Service Account, perform the following steps.

  1. Step 1: How to get the OIDC role ARN (<kyvosEksOidcrole>):

    1. Log in to the AWS Console.

    2. Search for EKS.

    3. Open the Add-ons tab.

      image-20240827-151425.png

       

    4. Go to the Mountpoint for Amazon S3 CSI Driver section and copy the OIDC role ARN.

      image-20240828-084922.png

       

  2. Step 2: How to get the Node IAM role ARN (<NodeGroupRole>):

    1. Log in to the AWS Console.

    2. Search for EKS.

    3. Open the Compute tab.

      image-20240827-152728.png

       

    4. Go to Node Groups and click the group name.

      image-20240828-085106.png

       

    5. In the Details section, copy the Node IAM role ARN.

      image-20240828-090404.png

       

  3. Open the deployment bucket permission section and add the ARN of OIDC (see, line number 11) and Node group (see, line number 9) role in the array.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "Ec2LambdaRoleBucketPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::815559998352:role/NodeGroupRole-user8s10", "arn:aws:iam::815559998352:role/kyvos-ec2-role-build-automation-iam-roles-2024-3-2", "arn:aws:iam::815559998352:role/kyvosEksOidcrole-userk8s10", "arn:aws:iam::815559998352:role/kyvos-lambda-role-build-automation-iam-roles-2024-3-2" ] }, "Action": [ "s3:PutAnalyticsConfiguration", "s3:GetObjectVersionTagging", "s3:ReplicateObject", "s3:GetObjectAcl", "s3:GetBucketObjectLockConfiguration", "s3:DeleteBucketWebsite", "s3:PutLifecycleConfiguration", "s3:GetObjectVersionAcl", "s3:DeleteObject", "s3:GetBucketPolicyStatus", "s3:GetObjectRetention", "s3:GetBucketWebsite", "s3:PutReplicationConfiguration", "s3:PutObjectLegalHold", "s3:GetObjectLegalHold", "s3:GetBucketNotification", "s3:PutBucketCORS", "s3:GetReplicationConfiguration", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObject", "s3:PutBucketNotification", "s3:PutBucketLogging", "s3:GetAnalyticsConfiguration", "s3:PutBucketObjectLockConfiguration", "s3:GetObjectVersionForReplication", "s3:GetLifecycleConfiguration", "s3:GetInventoryConfiguration", "s3:GetBucketTagging", "s3:PutAccelerateConfiguration", "s3:DeleteObjectVersion", "s3:GetBucketLogging", "s3:ListBucketVersions", "s3:RestoreObject", "s3:ListBucket", "s3:GetAccelerateConfiguration", "s3:GetBucketPolicy", "s3:PutEncryptionConfiguration", "s3:GetEncryptionConfiguration", "s3:GetObjectVersionTorrent", "s3:AbortMultipartUpload", "s3:GetBucketRequestPayment", "s3:GetObjectTagging", "s3:GetMetricsConfiguration", "s3:DeleteBucket", "s3:PutBucketVersioning", "s3:GetBucketPublicAccessBlock", "s3:ListBucketMultipartUploads", "s3:PutMetricsConfiguration", "s3:GetBucketVersioning", "s3:GetBucketAcl", "s3:PutInventoryConfiguration", "s3:GetObjectTorrent", "s3:PutBucketWebsite", "s3:PutBucketRequestPayment", "s3:PutObjectRetention", "s3:GetBucketCORS", "s3:GetBucketLocation", "s3:ReplicateDelete", "s3:GetObjectVersion", "s3:PutBucketTagging" ], "Resource": [ "arn:aws:s3:::kyvos-user8s10-47948/*", "arn:aws:s3:::kyvos-userk8s10-47948" ] } ] }
  1. Add below permissions in AWS Wizard based IAM role for listing and describing EKS cluster

    "EKSPolicy": { "Type": "AWS::IAM::Policy", "Condition": "EKSClusterPermissionsInclusion", "Properties": { "PolicyName": "eks-policy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "EksDescribeKM", "Effect": "Allow", "Action": [ "eks:ListClusters", "eks:DescribeCluster", "eks:ListNodegroups", "eks:DescribeNodegroup", "eks:DescribeAddon" ], "Resource": "*" }, {
  2. You must have the Access Key and Secret Key to access the Kyvos bundle. Contact Kyvos Support for details.

  3. Valid Kyvos license file.

  4. Create an EKS cluster using CreateEks.json.

  5. Run the following commands one by one on every Kyvos node to install kubectl

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install --bin-dir /usr/local/bin/ --install-dir /usr/local/aws-cli --update o curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.29.3/2024-04-19/bin/linux/amd64/kubectl chmod +x ./kubectl sudo chown kyvos:kyvos kubectl sudo mv kubectl /bin/ sudo mkdir -p /home/kyvos/.kube sudo chown -R kyvos:kyvos /home/kyvos/.kube
  6. Run the commands below from sudo user on Kyvos Manager node to install eksctl.

    curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$ (uname -s)_amd64.tar.gz" | tar xz -C /tmp sudo cp /tmp/eksctl /bin/
  7. Once the EKS cluster is created, go to the created node then go to Security.

  8. Click the eks-cluster-sg-kyvosEks-{STACK-NAME}-random number as Security group.

  9. Add the following inbound rules:

Target Security Group

Port

Source Group

Target Security Group

Port

Source Group

eks-cluster-sg-kyvosEks-{STACK-NAME}-<random number>

TCP 6903

Security Group attached to the Analytical Server

Web Server security group

TCP 2181

eks-cluster-sg-kyvosEks-{STACK-NAME}-<random number>

Analytical Server security group

TCP 2181

eks-cluster-sg-kyvosEks-{STACK-NAME}-<random number>

Analytical Server security group

TCP 45460

eks-cluster-sg-kyvosEks-{STACK-NAME}-<random number>

Analytical Server security group

TCP 6803

eks-cluster-sg-kyvosEks-{STACK-NAME}-<random number>

  1. Open the deployment bucket permission section and add the ARN of OIDC and Node group role in the array.


Copyright Kyvos, Inc. 2026. All rights reserved.