Skip to content

Commit 261a009

Browse files
authored
Asciidoc conversion of hardening guide changes (#3782)
* Asciidoc conversion of hardening guide changes Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes New assembly/files Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Correction Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Corrected three updated modules Asciidoc conversion of new and revised content for hardening guide v4 https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Correction Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes. Corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Added one module and made corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 Please enter the commit message for your changes. Lines starting * Asciidoc conversion of hardening guide changes Corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Correction Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Edited and renamed modules Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Added variables, renamed module Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749 * Asciidoc conversion of hardening guide changes Corrections Asciidoc conversion of new and revised content for hardening guide v4. https://issues.redhat.com/browse/AAP-48749
1 parent 28bbb0f commit 261a009

22 files changed

+370
-46
lines changed

downstream/assemblies/aap-hardening/assembly-hardening-aap.adoc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ include::aap-hardening/ref-security-variables-install-inventory.adoc[leveloffset
5757

5858
include::aap-hardening/proc-install-user-pki.adoc[leveloffset=+2]
5959

60-
include::aap-hardening/ref-sensitive-variables-install-inventory.adoc[leveloffset=+2]
60+
include::aap-hardening/proc-sensitive-variables-install-inventory.adoc[leveloffset=+2]
61+
62+
include::aap-hardening/proc-install-rpm-deployment.adoc[leveloffset=+3]
63+
64+
include::aap-hardening/proc-install-containerized-deployment.adoc[leveloffset=+3]
6165

6266
//include::aap-hardening/con-controller-stig-considerations.adoc[leveloffset=+2]
6367

@@ -104,5 +108,13 @@ include::aap-hardening/ref-updates-upgrades.adoc[leveloffset=+2]
104108

105109
include::aap-hardening/proc-disaster-recovery-operations.adoc[leveloffset=+3]
106110

111+
include::aap-hardening/con-hashicorp-vault-external-secrets.adoc[leveloffset=+2]
112+
113+
include::aap-hardening/proc-configure-hashicorp-vault.adoc[leveloffset=+3]
114+
115+
include::aap-hardening/proc-configure-hashicorp-credentials.adoc[leveloffset=+3]
116+
117+
include::aap-hardening/proc-configure-ssh-private-key.adoc[leveloffset=+3]
118+
107119

108120

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
[id="assembly-managed-node-configuration"]
2+
3+
= Managed Node Configuration
4+
5+
{PlatformNameShort} is an agentless technology that relies on making a remote connection to the devices it manages, called managed nodes, to run automation tasks.
6+
7+
This chapter provides recommendations on improving the security posture of the managed nodes automated by {PlatformNameShort}, including the remote connections between {PlatformNameShort} and the managed nodes.
8+
9+
Note that managed node configuration can vary significantly based on factors such as operating system, compliance profiles, configuration, and organizational policies.
10+
11+
Any recommendations on managed node configuration presented here must be thoroughly tested and reviewed before implementation to ensure that they meet organizational policies and requirements.
12+
13+
include::aap-hardening/con-rhel-node-configuration.adoc[leveloffset=+1]
14+
15+
include::aap-hardening/con-create-dedicated-service-account.adoc[leveloffset=+2]
16+
17+
include::aap-hardening/proc-configure-sudo-for-service-account.adoc[leveloffset=+3]
18+
19+
include::aap-hardening/proc-ssh-auth-for-service-account.adoc[leveloffset=+3]
20+
21+
include::aap-hardening/proc-pam-access-for-service-accounts.adoc[leveloffset=+3]
22+
23+
include::aap-hardening/con-more_compliance-profile-considerations.adoc[leveloffset=+2]
24+
25+
include::aap-hardening/ref-fapolicyd-on-rhel.adoc[leveloffset=+3]
26+
27+
include::aap-hardening/proc-fapolicyd-permissive-mode.adoc[leveloffset=+3]
28+
29+
include::aap-hardening/proc-create-fapolicyd-rules.adoc[leveloffset=+3]

downstream/images/cont-b-env-a.png

1.62 KB
Loading
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[id="con-create-dedicated-service-account"]
2+
3+
= Create a dedicated service account with access limits
4+
5+
{PlatformNameShort} can be configured to use various users or accounts for connecting to managed nodes.
6+
7+
This guide recommends creating a single, dedicated service account for this purpose.
8+
This service account must be a local account on each managed node to ensure automation jobs continue to run, even if an external authentication mechanism experiences an outage.
9+
This recommendation applies unless organizational policy mandates centrally managed service accounts. The service account must be clearly named to indicate its purpose, for instance, `ansible` or `aapsvc`.
10+
11+
The remainder of this section uses "ansible" as the assumed name for a local service account in its examples.
12+
13+
The local service account is configured in the following manner:
14+
15+
* It is granted sufficient privileges to run any automation job required.
16+
* It is limited to SSH key authentication only. No password authentication is allowed.
17+
* Access is only granted to connections made from the {PlatformNameShort} {ControllerNames}s and execution nodes.
18+
+
19+
[NOTE]
20+
====
21+
To execute tasks in an Ansible playbook or job template as a user other than the service account, use the `become` and `become_user` keywords. Connecting to the managed node as a different user is not necessary.
22+
====
23+
24+
* The `useradd` command can be used to create a local service account. For example:
25+
26+
----
27+
sudo useradd ansible \
28+
--system --create-home \
29+
--comment "Ansible Automation Platform service account"
30+
----
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[id="con-hashicorp-vault-external-secrets"]
2+
3+
= Using HashiCorp vault for external secrets management
4+
5+
You can integrate HashiCorp Vault with {PlatformNameShort} to manage and retrieve sensitive data.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[id="con-more_compliance-profile-considerations"]
2+
3+
= Compliance profile considerations
4+
5+
In many environments, you can use {PlatformNameShort} to manage systems where security controls have been applied to managed RHEL nodes to meet the requirements of a compliance profile such as CIS, PCI/DSS, the DISA STIG, or similar.
6+
The following sections detail the specific set of security controls that must be modified for {PlatformNameShort} to manage the RHEL nodes properly in such environments.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[id="con-rhel-node-configuration"]
2+
3+
= {RHEL} managed node configuration
4+
5+
The following section provides guidance for _{RHEL}_ (RHEL) managed nodes, but the concepts may be applicable to other Linux distributions as well.
6+
7+
Examples are provided for manual configuration of RHEL managed nodes.
8+
These steps can also be automated with {PlatformNameShort}, or they can be added to a _Standard Operating Environment_ (SOE) or "golden image" created with a tool such as the Red Hat Insights image builder.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[id="proc-configure-hashicorp-credentials"]
2+
3+
= Using HashiCorp Vault credentials within {PlatformNameShort}
4+
5+
To use HashiCorp vault credentials within {PlatformNmaeShort}, create a new credential with the type *Machine Credential*.
6+
Enter relevant information such as an identifiable credential name and an organization.
7+
8+
To configure the use of HashiCorp Vault credentials, use the following procedure:
9+
10+
.Procedure
11+
12+
. To configure the *Username*, click the image:leftkey.png[Key,15,15] icon.
13+
. Select the HashiCorp Vault credentials that were created in step 1.
14+
. Populate *Path to Secret* and the *Key Name*.
15+
. Optionally, click btn:[Test]. Otherwise, click btn:[Finish].
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
[id="proc-configure-hashicorp-vault"]
2+
3+
= Configuring {PlatformNameShort} to communicate with HashiCorp vault
4+
5+
In an enterprise environment, having externally managed secrets is a convenient way to manage sensitive data across multiple services.
6+
One of the most common and recommended authentication methods for the HashiCorp vault is to use AppRoles with policies and login requirements that must be satisfied before a token is issued.
7+
To configure {PlatformNameShort} to use secrets stored in HashiCorp vault, set up a new credential with the type of HashiCorp Vault Secret Lookup.
8+
For information on how to do this, see link:{URLControllerAdminGuide}/assembly-controller-secret-management#ref-hashicorp-vault-lookup[Hashicorp vault secret lookup].
9+
10+
Enter relevant information such as an identifiable credential name, organization, and the URL of the vault server, for example, https://vault.domain.com:8200.
11+
12+
Populate the necessary fields with your information such as Token, AppRole role_id, and AppRole secret_id, then select v2 for the API version.
13+
14+
To test the credential to test for functionally and operation, use the following procedure:
15+
16+
.Procedure
17+
. Before clicking on *Create Credential*, click btn:[Test].
18+
. In the pop-up box, enter the *Path to Secret* and the *Key Name*.
19+
+
20+
[NOTE]
21+
====
22+
The *Path to Secret* will be prefixed by `kv` if storing a key-value pair, for example, `kv/key_name`.
23+
====
24+
25+
. Click btn:[Run].
26+
. When the test is successful, click btn:[Create Credential].
27+
. When complete, {PlatformNameShort} is properly configured to use HashiCorp Vault as an external secret source.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[id="proc-configure-ssh-private-key"]
2+
3+
= Configuring the machine credential’s SSH private key
4+
5+
Use the following procedure:
6+
7+
.Procedure
8+
. To configure the *Username*, click the image:leftkey.png[Key,15,15] icon.
9+
. Select the HashiCorp Vault credentials that you created.
10+
. Populate the *Path to Secret* and the *Key Name*.
11+
. Select the name of the private key as the *Key Name*.
12+
. Optionally, click btn:[Test]. Otherwise, click btn:[Finish].

0 commit comments

Comments
 (0)