Installation on AWS
Detailed procedure to install the IBM Verify Identity Governance - Container on Amazon Web Services (AWS).
Overview
IBM Verify Identity Governance - Container supports deployment on Amazon Web Services (AWS) and AWS GovCloud (US) platforms using all the supported Databases and Directory Servers.
In addition, you can also Amazon Aurora PostgreSQL as an external database and Amazon Simple Email Service.
Before you begin
-
While AWS manages the hardware infrastructure, it is important to efficiently allocate computing resources, such as memory, CPU (including virtual sockets and cores), and storage (HDD/SSD), when creating Kubernetes nodes. Here are the recommended specifications for IBM Verify Identity Governance - Container:
- CPU: 4 Sockets with 2 Cores per socket (dedicated)
- Storage: 150 GB HDD/SSD
- Memory: 16-20 GB
Select an appropriate AWS instance type. Each instance type comes with its unique resource capabilities and costs. The selected instance type is used to create Nodegroups for your cluster. It is recommended to use instance types such as t3, m5, m6, and r series. Note that the availability of these instances may vary depending on your region.
- You must have an AWS account.
- Create an IAM user. Grant the permissions to IAM User as per the
user_policy.json file located at
[Starter_Kit]/cloud/aws/util/
This documentation is based on these policies. These policies enable the user to create, view, and delete the essential resources required for Amazon Elastic Kubernetes Service (EKS). In the event of additional configurations or any encountered inconveniences, you may adjust the permissions as per your needs.
- Download and install the following software components:
- Install and set up Kubectl version 1.28 on Linux | Kubernetes. For detailed information, see this documentation.
- Download the install Helm version 3.x from this page.
- Download and install the latest version of AWS CLI. For detailed information, see this documentation.
- Download and install Eksctl version 0.161.0 (or higher) from this page.
- Next, connect AWS CLI to your AWS account. You must have programmatic access for it. For
details, see this documentation. Attention: AWS and AWS GovCloud utilize distinct region names. Ensure that you provide accurate details when prompted later in the deployment process.
Amazon Aurora PostgreSQL
Amazon Aurora PostgreSQL is a fully-managed, PostgreSQL–compatible, and ACID–compliant relational database engine that combines the speed, reliability, and manageability of Amazon Aurora with the simplicity and cost-effectiveness of open-source databases.
- Hardware recommendations
- CPU: 8 Sockets, 2 Cores per socket (dedicated)
- Easy Create approach:
- Standard Create approach
- Open the Amazon RDS Console and click Create Database.
- Choose database creation method as Standard Create.
- Under credential settings either choose Auto generate a password option or specify your own password.
- Configure the instance using your preferred instance type, such as Burstable classes
- Specify the VPC and subnets for your cluster, allowing public access if needed. You can also choose different VPC configurations.
- Under Connectivity, enable public access.
- In the Additional Configuration section, specify an initial database name, and make a note of it for use during the configure.sh step.
- Leave the remaining parameters to default, or edit if necessary.
- After the database is created, note down the credentials.
- Add a rule in security group of the database to allow access to port 5432.
- Provide the appropriate details in config.yaml file. Here is an
example:
db: # Use lowercase only for username while configuring postgresdb user: postgres password: password_here dbtype: postgres ip: database-1.cluster-caa5kqguj58p.ap-south-1.rds.amazonaws.com port: 5432 name: isvgim admin: postgres adminPwd: password_here security.protocol: tablespace.location.data: /isimdata tablespace.location.indexes: /isimindex
- Install the starter kit.
Amazon Simple Email Service
Amazon Simple Email Service (SES) is a cloud-based email service by Amazon Web Services. It allows you to send and receive emails effortlessly, scale your email operations, and ensure high deliverability. It provides features like email authentication, monitoring, and easy integration with other AWS services, making it a reliable solution for managing email communication in the cloud.
- Set up your AWS SES configuration by referring these instructions.
- IBM Verify Identity Governance - Container SMTP currently supports basic authentication and SSL authentication. To generate SMTP Credentials, refer this documentation.
- If you want to configure SSL connection from IBM Verify Identity Governance - Container to AWS SES, then you must add certificate to IBM Verify Identity Governance - Container application. Perform the following steps:
- Execute the following command to retrieve the certificate from AWS SES On Linux terminal.
Replacing <region-name> with the desired region. For example:
openssl s_client -crlf -starttls smtp -connect email-smtp.ap-south-1.amazonaws.com:587 | awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/' > smtp_server_certificate.pem
- Store the certificate in the [STARTER]/config/certs/ directory with the filename smtp_server_certificate.pem
- During the installation of IBM Verify Identity Governance - Container, when you run the configure.sh, provide this certificate name.
- Execute the following command to retrieve the certificate from AWS SES On Linux terminal.
Replacing <region-name> with the desired region. For example:
Installation
There are multiple approaches to create an Elastic Kubernetes Cluster, and this AWS documentation topic describes the various options by referring to this AWS documentation.
This document describes one of the approaches. The example snippets presented here represent a basic configuration. For detailed background information, references to Amazon documentation are provided at each step.
- Create an Elastic Kubernetes Cluster (EKS) Role
- To begin with, create an EKS-Cluster Role which enables secure and controlled interaction between Kubernetes workloads and AWS services within an EKS cluster. You can create it by performing the steps described in this documentation.
- Create a CloudFormation Stack
- This is a template-driven method to automatically set up all the required resources for a Kubernetes cluster. This includes important VPC components such as subnets, route tables, gateways and Elastic IPs. It simplifies the process of creating and managing Kubernetes clusters on AWS, making it efficient and well-organized.
- Create the EKS Cluster
- EKS Cluster allows you to run containers at scale and deploy, manage, and scale containerized applications efficiently in a highly available and secure environment.
- Create a NodeGroup
- Node groups are a way to organize and manage the worker nodes that run your containerized applications. These nodes are the designated locations where pods are scheduled for execution. You can create 3 types of Node groups as described here.
- Create persistent storage
- For persistent storage with IBM Verify Identity Governance - Container pods, there
are two options to consider:
- Elastic Block Store (EBS): EBS is an easy-to-use, scalable, high-performance block-storage service designed for Amazon Elastic Compute Cloud (Amazon EC2). Customers are responsible for replicating EBS in another zone in case of a zone failure.
- Elastic File System (EFS): EFS is a scalable and fully managed file storage service provided by AWS. It is designed to provide scalable, elastic, and "shared file storage" for EC2 instances and other AWS services.
- Install IBM Verify Identity Governance - Container
-
- Download and extract the IBM Verify Identity Governance - Container starter kit in your Linux Terminal.
- If you want isvgim service to be a Load Balancer, edit the
helm/100-service-isvgim.yaml file and update the spec.type
parameter value to LoadBalancer. Also, comment out any line containing the
term
sessionAffinity
. - If you have a multi-node setup, consider using a LoadBalancer.
- If you want to use Amazon Aurora as your database, see Amazon Aurora PostgreSQL section in this topic.
- If you want to use AWS Simple Email Service, see Amazon Simple Email Service section in this topic.
- Run starter/bin/configure.sh script. This script prompts for all the
required parameters required for the installation process. Provide the input values as per your
software and hardware setup.
- Specify the InstallType parameter as cloud
- Update the storage class parameter value. Based on your selection between EFS and EBS, retrieve the value of `metadata.name` from the corresponding storageClass-efs.yaml or storageClass-ebs file and assign it to the `storageclass` when prompted.
Tip: The input values are added to the config/config.yaml file. For a detailed description of all the parameters in the config.yaml file, see config.yaml reference topic.Attention: IBM Verify Identity Governance - Container supports TLS v1.2 and TLS v1.3. If you plan to use TLS v1.3, ensure that your external components (such as external LDAP, external PostgreSQL database, etc.) are also configured to use TLS v1.3. Note that IBM Verify Identity Governance - Container currently does not work with IBM DB2 database configured with TLS v1.3. - Ensure that the kubectl is pointing to the cluster, by using the following command:
aws eks update-kubeconfig --region <region_name> --name <cluster_name>
- Go to bin directory and run install.sh script. For detailed information, see the Installation topic.
Post-installation steps
- Accessing IBM Verify Identity Governance - Container Console URL
-
- With Load Balancer
- If you opted for a load balancer for IBM Verify Identity Governance - Container,
perform these steps:
- In your Linux terminal, execute the command: kubectl get svc --namespace
<namespace>
Here, replace `<namespace>` with the one you specified during configure.sh, for example, isvgim
- Copy the IP address from the external ip column.
- Access the IBM Verify Identity Governance - Container console in your web browser using the URL: https://<external_IP>:9443/itim/console
- In your Linux terminal, execute the command: kubectl get svc --namespace
<namespace>
- Without Load Balancer
- If you haven't modified the 100-service-isvgim.yaml file, you will need to
create an inbound rule to access IBM Verify Identity Governance - Container console.
- Go to EKS dashboard, and select your cluster.
- Under Compute, click the specific EC2 (node Name).
- Select the Instance ID and then go Security tab.
- Click the Security Groups. Create an inbound rule specifying "custom TCP" with port 30943. Make it accessible from either 0.0.0.0/0 or specific IP addresses as needed. Save the rule.
- You should now be able to access the IBM Verify Identity Governance - Container console using https://<Node_IP>:30943/itim/console
- Update mail baseUrl property
- Perform the steps in this section only if you had already configured mail for IBM Verify Identity Governance - Container
Next steps
If you are deploying a fresh installation of IBM Verify Identity Governance - Container, then proceed to configuration activities.
If you are migrating from a legacy Identity Manager-Virtual Appliance or Identity Manager-Software Stack setup, then proceed to database migration.