Installation settings to secure your platform
Installation decisions directly impact the security posture of Ansible Automation Platform. The process involves setting several variables critical to infrastructure hardening. Before installing, review the installation guidance to ensure your configuration meets security standards.
Install from a dedicated installation host Copy linkLink copied!
The Ansible Automation Platform installation program can be run from one of the infrastructure servers, such as an automation controller, or from an external system that has SSH access to the Ansible Automation Platform infrastructure servers.
The Ansible Automation Platform installation program is also used not just for installation, but for subsequent day-two operations, such as backup and restore, and upgrades. Perform installation and day-two operations from a dedicated external server, hereafter referred to as the installation host. Doing so eliminates the need to log in to one of the infrastructure servers to run these functions. The installation host must only be used for management of Ansible Automation Platform and must not run any other services or software.
The installation host must be a Red Hat Enterprise Linux server that has been installed and configured in accordance with Security hardening for Red Hat Enterprise Linux and any security profile requirements relevant to your organization (CIS, STIG, and so on). Obtain the Ansible Automation Platform installer and create the installation program inventory file. This inventory file is used for upgrades, adding infrastructure components, and day-two operations by the installation program, so preserve the file after installation for future operational use.
Access to the installation host must be restricted only to those personnel who are responsible for managing the Ansible Automation Platform infrastructure. Over time, it will contain sensitive information, such as the installation inventory (which contains the initial login credentials for Ansible Automation Platform), copies of user-provided PKI keys and certificates, backup files, and so on. The installation host must also be used for logging in to the Ansible Automation Platform infrastructure servers through SSH when necessary for infrastructure management and maintenance.
Security-relevant variables in the installation inventory Copy linkLink copied!
Customize the installation inventory file to define your Ansible Automation Platform architecture and change the initial configuration of its components.
The following table lists several security-relevant variables and their recommended values for an RPM-based deployment.
| RPM deployment variable | Recommended Value | Details |
|---|---|---|
| |
true |
The installation program configures the installation program-managed Postgres database to accept SSL/TLS-based connections when this variable is set. The default for this variable is false which means SSL/TLS is not used for PostgreSQL connections. When set to true, the platform connects to PostgreSQL by using SSL/TLS. |
| |
verify-full |
These variables control mutual TLS (mTLS) authentication to the database. By default, when each service connects to the database, it tries an encrypted connection, but it is not enforced. Setting this variable to NOTE: If a third-party database is used instead of the installation program-managed database, the third-party database must be set up independently to accept mTLS connections. |
| |
false |
If set to The default is |
The following table lists several security-relevant variables and their recommended values for a container-based deployment.
| Container deployment variable | Recommended Value | Details |
|---|---|---|
| |
false |
If set to The default is If this variable is absent from the installation program inventory, it is effectively equivalent to defining the variable as |
| |
verify-full |
These variables control mutual TLS (mTLS) authentication to the database. By default, when each service connects to the database, it tries an encrypted connection, but it is not enforced. Setting this variable to If a third-party database is used instead of the installation program-managed database, the third-party database must be set up independently to accept mTLS connections. |
| |
|
If set to The default is If these variables are absent from the installation program inventory, it is effectively equivalent to defining the variables as |
| |
|
If set to 'true', these variables disable HTTPS Strict Transport Security (HSTS) connections to each of the component web services. The default is If these variables are absent from the installation program inventory it is effectively equivalent to defining the variables as |
In an enterprise architecture where a load balancer is used in front of multiple platform gateways, SSL/TLS client connections can be terminated at the load balancer or passed through to the individual AAP servers. If SSL/TLS is being terminated at the load balancer, this section recommends that the traffic gets re-encrypted from the load balancer to the individual Ansible Automation Platform servers. This ensures that end-to-end encryption is in use. In this scenario, the *_disable_https variables listed are set to the default value of false.
Install with user-provided PKI certificates Copy linkLink copied!
Replace the default self-signed certificates with custom PKI certificates for your Ansible Automation Platform components. Using your existing PKI infrastructure helps ensure trusted and secure communication across the platform.
Procedure Copy linkLink copied!
Secure sensitive variables with ansible vault Copy linkLink copied!
By securing sensitive values in the installation inventory file with Ansible Vault, both RPM-based and containerized Ansible Automation Platform installations benefit from improved security, password hygiene, and maintainability.
Procedure Copy linkLink copied!
Use an external vault file with an RPM-based Ansible Automation Platform deployment Copy linkLink copied!
When installing Ansible Automation Platform using RPM packages, you can use an external Ansible vault file to securely provide sensitive variables, such as passwords, during the installation process.
About this task Copy linkLink copied!
For RPM-based installations, you can provide the Ansible vault at runtime when executing the setup script.
Add the following sensitive variables to the vault file:
admin_password: <secure_password>
pg_password: <secure_password>
automationgateway_admin_password: <secure_password>
automationgateway_pg_password: <secure_password>
automationhub_admin_password: <secure_password>
automationhub_pg_password: <secure_password>
automationedacontroller_admin_password: <secure_password>
automationedacontroller_pg_password: <secure_password>
*In the case of a connected installation:
registry_password: <secure_cdn_password>
To use the vault during installation, use the following procedure:
Procedure Copy linkLink copied!
Use an external vault file with a containerized installation Copy linkLink copied!
For containerized installations of Ansible Automation Platform, use the provided automation execution playbook with the external vault file.
About this task Copy linkLink copied!
Add the following sensitive variables to the vault file:
postgresql_admin_password: <secure_password>
gateway_admin_password: <secure_password>
gateway_pg_password: <secure_password>
controller_admin_password: <secure_password>
controller_pg_password: <secure_password>
hub_admin_password: <secure_password>c
hub_pg_password: <secure_password>
eda_admin_password: <secure_password>
eda_pg_password: <secure_password>
*In the case of a connected installation:
registry_password: <secure_cdn_password>
To use the new Ansible vault with the installation program, use the following procedure: