AWS Elastic Kubernetes Service (EKS) Deployment Guide
This document outlines the steps required to install and configure the OneTrust Data Discovery worker node for Amazon Elastic Kubernetes Service (EKS) environments. Currently, this installation is only supported on Mac-OS and Linux systems. Users may have to install a Linux instance on their Windows machine if they lack access to Mac-OS.
Prerequisites
-
AWS EKS 1.33.x with the following:
-
5 x m5a.2xlarge (8 vCPU(s), 32 GB RAM) nodes
-
AWS subscription which can run the required cluster.
-
An owner/contributor user of the AWS subscription which will be used to create and manage the cluster.
-
Virtual Network and subnet in which the AWS cluster is getting deployed should have access to data sources.
-
Virtual Network and subnet in which the AWS cluster is getting deployed should have access to Internet to reach Docker Hub.
-
-
AWS EFS instance which can access by AWS EKS worker nodes.
-
A local (laptop) or remote (Jump box/bastion) machine which will be used to access the cluster master.
-
Minimum: 4 CPU, 8GB RAM, 250 GB HDD, Ubuntu 16+
-
Should have access to Internet to pull the OneTrust Docker Images from docker hub.
-
Docker >=19.x ce + pre-installed (OneTrust can also install this)
-
-
Since the parameter
AllowVolumeExpansionis unset by default, you may need to set as true when upgrading or re-sizing storage. See SettingAllowVolumeExpansionfor more information. -
Latest version of kubectl, with a minimum version of 1.30
-
OIDC Provider, as your cluster has an associated OpenID Connect (OIDC) issuer URL. To use AWS Identity and Access Management (IAM) roles for service accounts, an IAM OIDC provider must exist for your cluster's OIDC issuer URL. See here for more information.
-
AWS EFS CSI Driver installed, if using AWS EFS filesystem. See here for more information and refer to AWS Worker Node Provisioning Migration Guide.
-
EBS CSI Driver installed, as GP2 storage class in Kubernetes uses EBS volume for provisioning during installation. See here for more information.
AWS EKS Deployment
Please refer to the following installation resources to deploy with AWS EKS:
Adding EFS Storage
You'll need access to an EFS instance in the same VPC and all the subnets where the worker nodes can arise. Ensure that the worker security group (SG) is selected.
-
Log in to the AWS Management Console.
-
Search for EFS and select Create File System.
-
Select the new EKS (not default) VPC from the drop-down list. Then complete the following:
-
Under Security Groups, select the same Security Group that is associated with your EKS cluster. You must also ensure that the inbound/outbound rules of this Security Group allow for traffic flow between the two services.
-
Enter a name. This can be any name.
-
Ignore step 3.
-
Click Create File System.
-
-
Copy the following values for reference during deployment in step 12 of On-Premises Deployment.
-
File System ID
-
Region
-
DNS Name
Note:This will actually be <file-system-ID>.efs.<region>.amazonaws.com.
-
On-Premises Deployment
Customer will need to provide the following during AWS deployment:
-
Access Key
-
Secret Key
-
Password
Customers can also provide their AWS instance profile information in lieu of their Access Key and Secret Key IDs. You will need to update the .envs-aws file with the following variable:
IS_AWS_INSTANCE_PROFILE=”true”
Enter "false" to carry on with the default process for this deployment.
-
Download the On-Premise installer file package ot-onprem-installer-dd-k8s-latest.zip. You will need to unzip and place it in a location on your Linux VM.
Note:Contact your dedicated OneTrust contact or OneTrust support to acquire this file.
-
Navigate to data-discovery/k8s-deployment
-
Copy the folder inventory_template to cp -r inventory_template inventory
-
Change the directory to data-discovery/k8s-deployment/inventory
-
Run the command
nano .envsto add the details. -
Enter the namespace of your choice in the Namespace configuration section.
CODEexport OT_NAMESPACE_DD="<your-name-space>" -
Enter the Docker configuration details.
-
Provide the storage name.
CODEexport STORAGE_CLASS_NAME="gp2" -
Configure the scanner by adding the following:
-
URL
-
Worker Node ID
-
Client Credentials
-
-
Provide the scanner credential information.
-
If using shared storage configuration, provide:
CODEexport EXTLIB_SHARED_STORAGE_NAME='efs-sc' export CHOWN_INIT_ENABLED='false' -
Configure EFS with the following:
CODEexport EFS_FS_ID="" export EFS_REGION="" export EFS_DNS_NAME=""Note:For DNS name, use
<EFS_FS_ID>.efs.<efsregion>.amazonaws.com -
Save and close the file.
-
Run
nano. env-awsand update the following fields:CODEexport CLOUD_AWS_REGION="ap-south-1" export CLOUD_AWS_EKS_CLUSTER="devops-cluster"If using Instance Profile, provide the following:
CODEexport IS_AWS_INSTANCE_PROFILE="true" -
Save and close the file.
-
Open a terminal in data-discovery/k8s-deployment directory.
-
Run the deployment script:
CODE./deploy.sh install efs-new -
Confirm the configuration by pressing 'Y'.
-
Access your AWS instance and provide the following:
-
AWS Access Key ID
-
AWS Secret Access Key
-
Default region name
-
Default output format
Note:For instructions on using AWS instance profiles as credential information, refer to the beginning of this section.
-
-
The installation will complete.
Setting AllowVolumeExpansion
-
Run the following command to export the yml file of the gp2 storage class. The storage.yml file will be created in the current directory.
CODEkubectl get sc gp2 -o yaml > storage.yml -
Edit the storage.yml file and add the below value to the yml file.
CODEallowVolumeExpansion: true -
Save the yml file and run the below command:
CODEkubectl apply -f storage.yml -
Then verify the
AllowVolumeExpansionas set to true by describing the storage class:CODEkubectly describe sc gp2
Credential Vault Configuration
For more information on configuring credential vaults and the supported providers, please reference Credential Vault Options for Data Sources.
Monitoring & Troubleshooting
For more information on troubleshooting recommendations and commands for this deployment, see Troubleshooting Worker Nodes General.