arrow-left

All pages
gitbookPowered by GitBook
1 of 3

Loading...

Loading...

Loading...

Configure Your HashiCorp Vault

The following steps use the HashiCorp Vault user interface (UI) to guide you through the configuration of your HashiCorp Vault instance.

These configurations are mandatory for on premise Clarity LIMS deployments. For Illumina cloud hosted deployments, this configuration is completed by Illumina.

circle-info

Detailed information and instructions for HashiCorp Vault are available on the HashiCorp website: www.hashicorp.com.

hashtag
Pre-requisites

  1. You are planning to install Clarity LIMS v6.0.0 and newer.

  2. You have installed the latest version of either HashiCorp Vault Open Source or Enterprise.

  3. You have read the Getting Started tutorials for Vault on the HashiCorp website and/or possess a basic knowledge of HashiCorp Vault.

hashtag
Configuration

hashtag
Enable a new KV Secret Engine

To enable a new KV Secret Engine, refer to the Versioned Key/Value Secrets Engine tutorial provided on the HashiCorp Vault website.

hashtag
Configuring Secret Engine

The following table lists the secrets required for Clarity LIMS. To use the paths shown in the table, replace $host with your fully qualified domain name (FQDN).

Path
Purpose

When configuration is complete, these secrets are listed in the Vault user interface.

hashtag
Authentication Methods

hashtag
AppRole

AppRole is the recommended authentication method to use with the Clarity LIMS Secret Utility tool.

  1. To enable the AppRole authentication method, refer to the AppRole Pull Authentication tutorial provided on the HashiCorp Vault website.

  2. When AppRole is enabled, create an AppRole with the appropriate Access Control List (ACL) policy (see the following section).

  3. Make a note of the Role ID and Secret ID. You need these IDs when configuring Secret Utility.

circle-info

Secret Utility does not manage your Role ID and Secret ID for you (eg, renewing, revoking, and so on). It accepts the Role ID and Secret ID as-is, and attempts to authenticate with Vault.

hashtag
Token

Alternatively, the Clarity LIMS Secret Utility tool also works with the token authentication method.

To learn more about tokens, see the Tokens documentation on the HashiCorp Vault website.

circle-info

Secret Utility does not manage your tokens for you (eg, renewing, revoking, and so on). It accepts the token as-is, and attempts to authenticate with Vault.

hashtag
Authentication ACL Policies

After enabling the AppRole authentication method, create ACL policies to access the Secret Engine.

IMPORTANT: Replace "claritylims" with your Secret Engine path.

ACL Policies
circle-info

You might need to update or create additional ACL policies for your System Administrator to rotate the credentials, when required.

To create the ACL policy, refer to the Vault Policies tutorial provided on the HashiCorp Vault website.

hashtag
Verification

  1. SSH into the Clarity LIMS instance.

  2. After installing Clarity LIMS and configuring Secret Utility using the instructions provided in , run the command to read an existing password/secret from HashiCorp Vault.

\

You have system administrator permissions to perform the necessary operations to your HashiCorp Vault instance.
  • You have allowed the necessary port 443 from the Clarity LIMS instance to your HashiCorp Vault instance.

  • You have access to all the passwords required to be configured in your HashiCorp Vault instance.

  • Password for the apiuser user account that is used by Automation Worker to authenticate with Clarity LIMS API.

    If you have configured a different user account, create it under $host/integration/apiusers/$username

    $host/clarity/app.ftp.password

    Password for GLSFTP user on the Clarity LIMS instance.

    $host/clarity/app.rabbitmq.password

    Password for RabbitMQ admin on the Clarity LIMS instance.

    $host/clarity/db.clarity.password

    Password for the configured Clarity LIMS database user

    $host/clarity/db.lablink.password

    Password for the configured LabLink DB database user.

    $host/clarity/db.tenant.password

    Password for the configured Tenant Lookup DB database user.

    $host/clarity/app.ldap.managerPass

    [Optional] Password for the User DN configured for Clarity LIMS LDAP integration

    # For clarity instance to read from hashicorp vault

    path "claritylims/data/+/clarity/"

    {

    capabilities = ["read"]

    }

    # For integration to write to hashicorp vault

    path "claritylims/data/+/integration/"

    {

    capabilities = ["read","create","update"]

    }

    Guide to Secret Management

    $host/integration/apiusers/apiuser

    Install a Purchased SSL/TLS Certificate

    This section explains how to install purchased SSL/TLS certificates into Clarity LIMS v5 and later.

    Clarity LIMS can work with Named or WildCard certificates.

    Typically, the process to install the certificates into Clarity LIMS is as follows:

    1. Request a certificate from your IT organization, or purchase a certificate from a third-party SSL/TLS vendor.

    2. Install the certificate using the script installCertificates.sh provided with Clarity LIMS. This script prompts for the required inputs and helps you to configure Clarity LIMS to use your SSL/TLS certificate.

    circle-info

    Some IT organizations have preexisting certificates issued by an internal organization, typically referred to as an 'internal CA.' These internal CA certificates are not fully compatible with Java, and prevent the automation worker—and all integrations—from properly communicating with the Clarity LIMS server. Internal CA certificates are therefore not supported in Clarity LIMS.

    hashtag
    Obtaining the Certificate

    You will need your organization or the third-party SSL/TLS vendor to provide you with the following:

    • An Apache 2.4-compatible SSL/TLS Certificate

    • The Certificate private key

    • The corresponding certificate chain, properly prepared for Apache 2.4. This component may not be required, depending on the organization that signs your certificate.

    Your IT organization might provide you with a WildCard certificate. Clarity LIMS can use WildCard certificates, as long as the Apache 2.4-compatible certificate, private key, and certificate chain files are provided.

    If purchasing from a third-party vendor, make sure that the vendor provides you with an Apache 2.4-compatible bundle that includes the components listed above. To purchase from a vendor, refer to their documentation.

    hashtag
    Private key password considerations

    By default, a private key has a password associated with it. On startup, Apache requests a passphrase to access the private key. You can use either of the following methods to resolve this issue:

    Method 1 — Place a passphrase file on the system and reference it in your clarity.conf file.

    1. Create a passphrase file in a directory that has read, write, and execute permissions for only the root or apache user.

    2. Edit the clarity.conf file. The clarity.conf file is in the /etc/httpd/conf.d directory.

      Add the following line to your clarity.conf file, before the section:

    Method 2: Removing passphrase from an OpenSSL key

    circle-info

    Removing the passphrase from an OpenSSL key is a security risk. Only remove the passphrase if you know that this risk is acceptable.

    • Remove the password from an OpenSSL key using the following command:\

    hashtag
    Install SSL/TLS Certificates for Use with Clarity LIMS

    Assumptions and Prerequisites

    • You have installed BaseSpace Clarity LIMS and run the 40_install_proxy.sh script.

    • You have OpenSSL (installed by default on the Clarity LIMS Linux server when you install Clarity LIMS). OpenSSL is used by the installCertificates.sh script.

    • You have the files listed in the following table (obtained from the process described previously) available on the Clarity LIMS server. In the example shown below, these files are located at /tmp/certs.

    hashtag
    Install the signed SSL/TLS Certificates

    On the Clarity LIMS server, as the root user, run the installCertificates.sh script:

    Pre-Installation Requirements

    Before installing Clarity LIMS, you must purchase hardware and software that meet the minimum requirements (see ). Following those purchases there are several components that you must organize, install, or configure.

    The following sections discuss these components, and how to install and configure them. These sections apply to on-premise customers only. Before completing the steps described, make sure that the server has the minimum requirements. See for details.

    circle-info

    Before the Clarity LIMS support team can install Clarity LIMS, the items listed above must be set up and configured as described in this document. Confirm the completion of this work with the support team.

    File description

    Example file name (used in examples below)

    Apache private key

    private.key

    Signed SSL/TLS Certificate

    customer_domain.crt

    Intermediate chain file (optional)

    intermediate.crt

    #! /bin/bash 
    echo "privatekeypassword"
    SSLPassPhraseDialog exec:/path/to/passphrase-script 
    % openssl rsa -in private.key -out private_nopassphrase.key     
    [root@doclarity04 ~]# cd /opt/gls/clarity/config/
    [root@doclarity04 config]# bash installCertificates.sh
    Java KeyTool detected
        This script will prompt you to supply the required SSL Certificates for your ClarityLIMS server.
        These files include:
        - A private key file and signed Certificate file for use by apache.
        - Optionally, depending on the organization that signs your Certificate, you may receive a 'Chain' file.
    Enter the full path to the SSL Private Key for your server:/tmp/certs/private.key
    Enter the full path to the Apache Certificate for your server - This is the Certificate signed by the SSL Vendor or Certificate Authority:/tmp/certs/customer_domain.crt
    Enter the full path to the SSL Vendor Chain file:/tmp/certs/intermediate.crt
    INFO: Testing Apache
    Syntax OK
    Apache Proxy is ready 
    hashtag
    Purchase SSL / TLS Certificate(s)

    All instances of Clarity LIMS must have a purchased SSL / TLS certificate installed.

    Certificate Authorities will no longer issue SSL / TLS certificates for internal server names. As a result, to obtain a certificate you must have a valid, public DNS entry for your server.

    Before installing or upgrading Clarity LIMS, do the following:

    1. Purchase an SSL / TLS certificate.

    2. Save the certificate files on the server on which the Clarity LIMS server is installed.

    3. Provide the Clarity LIMS Support team with the private key and password for the SSL / TLS certificate.

    For instructions on obtaining a certificate, see Install a Purchased SSL/TLS Certificate.

    hashtag
    Check SELinux Mode

    Security-Enhanced Linux (SELinux) is not supported for use with Clarity LIMS. Make sure that SELinux is set to either permissive or disabled mode.

    For instructions, see the following sections of the Red Hat documentation:

    • 5.4.1.2 Permissive Mode

    • 5.4.2 Disabling SELinux

    circle-info

    You can find additional documentation on users at /opt/gls/clarity/documentation/users/

    hashtag
    Set Up Root Access Server

    Clarity LIMS is installed using industry standard RPM packaging. The Clarity LIMS support team requires root credentials to the server during the installation process.

    The following sections discuss the system user accounts that the support team sets up during the installation process. It is important that you do not change these system users.

    The production server must be configured in US locale.

    chevron-rightServer-based user accountshashtag

    During initial installation, the RPMs create the following server-based user accounts in a common group named claritylims.

    • glsjboss: This user account is used for setting up and starting the Tomcat application server.

    • glsai: This user account is used for setting up and starting the automation worker service.

    • glsftp: This user account is configured to allow SFTP access and to redirect the home directory to the data storage area. The glsftp user account is used by BaseSpace Clarity LIMS clients to import and export files from the LIMS file server.

    NOTE: Do not create these user accounts manually.

    During initial installation of the elastic search subsystem, the RPM creates the following server-based user account in the elasticsearch group.

    • elasticsearch: This user account is used for setting up and starting the elastic search subsystem used by the LIMS search mechanism.

    NOTE: Do not create these user accounts manually.

    During initial installation of the RabbitMQ subsystem, the RPM creates the following server-based user account in the rabbitmq group.

    • rabbitmq: This user account is used for setting up and starting the RabbitMQ subsystem used by the search indexing mechanism.

    NOTE: Do not create these user accounts manually.

    chevron-rightSetting user account passwordshashtag

    During the installation process, no default passwords are created for the glsjboss, glsai, and glsftp user accounts.

    • Passwords must be set for these accounts.

    • During execution of the Clarity LIMS installation script, you are prompted for the password of the glsftp user. Use the same password you set at the operating system level for this user.

    NOTE: You can find additional documentation on users at /opt/gls/clarity/documentation/users/

    chevron-rightAllow SSH password-based authenticationhashtag

    To enable SSH Password Authentication, add the following configuration to the /etc/ssh/sshd_config file:

    Match User "glsftp"

    PasswordAuthentication yes

    hashtag
    Install and Configure the Database

    After installing a supported database, Clarity LIMS requires certain changes to the default database configuration.

    Additional tablespace names and user profiles may be needed, depending on the configuration of your system.

    For more information or for assistance with your database configuration, contact the Clarity LIMS Support team.

    chevron-rightConfigure PostgreSQL Database for Use with BaseSpace Clarity LIMShashtag
    1. On your database server, create a Clarity LIMS user. The Clarity LIMS user must have either full rights and permissions, or the ones defined by this command:

      CREATE ROLE clarity WITH NOSUPERUSER CREATEDB NOCREATEROLE LOGIN

      NOTE: The Clarity LIMS user must use only the public schema. Clarity LIMS does not support other schemas.

    2. Create one database named ClarityDB and another named ClarityTenantLookup. Make sure that both databases are set up to receive remote connections from the Clarity LIMS application server.

    3. Restart PostgreSQL

    4. Confirm the completion of these items with the Clarity LIMS Support team, and provide the following information:

      • The database user name and password for both databases.

      • The hostname/IP address of the database server.

    chevron-rightSet up database maintenance taskshashtag

    To achieve optimum performance, we recommend you perform the following database maintenance tasks, using the appropriate tools and commands.

    • PostgreSQL: Routinely vacuum the database.

      For instructions, refer to the PostgreSQL documentation.

    chevron-rightIPv4 supporthashtag

    Clarity LIMS supports only IPv4.

    hashtag
    Confirm Hostname Resolution

    To access the Clarity LIMS server via DNS, make sure that the following apply:

    • The server local host file /etc/hosts does not contain an entry for that hostname bound to its loopback address.

    • Any hostname entries correspond to their entries in DNS.

    • The command hostname -f must return the fully-qualified domain name of the server.

    For client systems:

    • Users should use the fully-qualified domain name (FQDN) when logging on to the system. Using the FQDN ensures persistence of the session ID.

    hashtag
    Set the TimeZone (TZ) Environment Variable

    Clarity LIMS requires the environment variable TZ be set on the Clarity LIMS server to your correct timezone. If the value is not configured, a default of GMT is configured by Clarity LIMS in the file /etc/profile.d/clarity.sh.

    This file might update on upgrade. Any changes must be manually applied across upgrades.

    hashtag
    Configure TCP/IP Settings

    To allow proper system communication, the following ports on the Clarity LIMS server must be accessible by the LIMS clients:

    • TCP/IP Port 22 (SFTP) for file transfers between the client and server

    • TCP/IP Port 443 (HTTPS) for Apache proxy

    • TCP/IP Port 80 (HTTP) used to forward any unknown unsecured requests over SSL / TLS and port 443

    The following ports are required on the local Clarity LIMS server:

    • TCP/IP Port 4369 for Epmd for RabbitMQ

    • TCP/IP Port 5432 for PostgreSQL database communications *

    • TCP/IP Port 9009 for Tomcat

    • TCP/IP Port 9200 for Elastic Search

    • TCP/IP Port 9300 for Elastic Search

    • TCP/IP Port 5672 for RabbitMQ

    • TCP/IP Port 15672 for RabbitMQ

    circle-info

    The database ports are configurable and might be different in your organization.

    hashtag
    Configure automation worker TCP/IP settings

    Computers running an automation worker must be able to reach the Clarity LIMS server via the following ports:

    • TCP/IP Port 22 (SFTP) for file transfers between the client and server

    • TCP/IP Port 443 (HTTPS) for Apache proxy

    • TCP/IP Port 80 (HTTPS) used to forward any unknown, unsecured requests over SSL / TLS and port 443

    hashtag
    Configure VPN Access for Hosted Systems

    To facilitate instrument integrations, a site-to-site IPSEC VPN connection can be set up between your facility and the hosted instance.

    There are two ports that must be opened: 4500/udp and 500/udp.

    If a VPN is required, you must provide more detailed setup information to the Clarity LIMS Support team. Upon request, the Clarity LIMS Support team will provide the additional form required to do this.

    hashtag
    Save any Apache Proxy Configuration

    Clarity LIMS uses an Apache proxy and the Clarity LIMS installation process installs and configures it automatically. If the server already has an Apache proxy installed and configured, the installation process overwrites the current configuration. If that configuration is important, you must back it up before running the Clarity LIMS installation process. Any settings that are important to your organization must be reconfigured manually after an install or upgrade of Clarity LIMS.

    hashtag
    Install and Configure HashiCorp Vault

    In Clarity LIMS v6.0.0 and later, you can choose to install and configure a HashiCorp Vault to store Clarity LIMS-related passwords and secrets safely.

    For more information, refer to Configure Your HashiCorp Vault.

    Technical Overview
    Technical Requirements
    The PostgreSQL port number.