Prerequisites for Wizard-Based Deployment on AWS
This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here. |
|---|
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 |
|---|---|---|
Network template | Creates VPC, Subnet, and Security Group | — |
NAT Gateway template | Deploy network with a NAT Gateway |
(available in AWS Installation files) |
Endpoints template | Deploy network with VPC Endpoints |
(available in AWS Installation files) |
On this page:
Refer again:
Related topics:
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 |
|---|---|---|
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, orManually, creating a role for Lambda (attached to Kyvos-created Lambda functions, containing all permissions the functions need). Download
ec2_iam_policy.jsonandlambda_iam_policy.jsonfrom 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
The bucket name must follow AWS naming conventions.
Kyvos does not allow dots (.) in bucket names.
4.3 Placeholders to replace:
Placeholder | Replace with |
|---|---|
| Your S3 bucket name |
| Your Lambda role name |
| Your EC2 role name |
| 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.
Step 1: How to get the OIDC role ARN (
<kyvosEksOidcrole>):Log in to the AWS Console.
Search for EKS.
Open the Add-ons tab.
Go to the Mountpoint for Amazon S3 CSI Driver section and copy the OIDC role ARN.
Step 2: How to get the Node IAM role ARN (
<NodeGroupRole>):Log in to the AWS Console.
Search for EKS.
Open the Compute tab.
Go to Node Groups and click the group name.
In the Details section, copy the Node IAM role ARN.
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" ] } ] }
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": "*" }, {You must have the Access Key and Secret Key to access the Kyvos bundle. Contact Kyvos Support for details.
Valid Kyvos license file.
Create an EKS cluster using CreateEks.json.
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/.kubeRun 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/Once the EKS cluster is created, go to the created node then go to Security.
Click the eks-cluster-sg-kyvosEks-{STACK-NAME}-random number as Security group.
Add the following inbound rules:
Target Security Group | Port | Source Group |
|---|---|---|
| TCP 6903 | Security Group attached to the Analytical Server |
Web Server security group | TCP 2181 |
|
Analytical Server security group | TCP 2181 |
|
Analytical Server security group | TCP 45460 |
|
Analytical Server security group | TCP 6803 |
|
Open the deployment bucket permission section and add the ARN of OIDC and Node group role in the array.