You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Is a standalone server sufficient or do you need a high availability architecture? |[Installing the server](../installing/) or [Deploying high availability](ha_pem/)|
17
17
| Do you need to implement connection pooling? |[Deploying connection pooling](pem_pgbouncer/)|
18
-
| What type of authentication to use? |[Authentication options](authentication_options/)|
18
+
| What type of authentication should you use? |[Authentication options](authentication_options/)|
19
19
| What actions should you take to avoid security vulnerabilities? |[Securing your deployment](pem_security_best_practices/)|
20
-
| Where to host the web server? |[Web server installation options](installing_pem_server_and_apache_web_server_preferences)|
21
-
20
+
| Where should you host the web server? |[Web server installation options](installing_pem_server_and_apache_web_server_preferences)|
Copy file name to clipboardExpand all lines: product_docs/docs/pem/10/considerations/installing_pem_server_and_apache_web_server_preferences.mdx
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,19 +9,19 @@ redirects:
9
9
10
10
---
11
11
12
-
During the PEM server installation, you can specify your hosting preferences for the web server.
12
+
While installing the PEM server, you can specify your hosting preferences for the web server.
13
13
For production environments, best practice is to have the PEM server and web server on separate hosts.
14
14
15
15
## PEM server and web server on separate hosts
16
16
17
17
1. Install the PEM server on both the hosts. See [Installing the PEM server](../installing/).
18
-
2. Configure the PEM server host by selecting the **Database** option on the first host.
19
-
3. Configure a web server by selecting the **Web Services** option on the second host.
18
+
1. Configure the PEM server host by selecting the **Database** option on the first host.
19
+
1. Configure a web server by selecting the **Web Services** option on the second host.
20
20
21
21
For more information about configuring a PEM server, see [Configuring the PEM server on Linux platforms](../installing/configuring_the_pem_server_on_linux/).
22
22
23
23
## PEM server and web server on the same host
24
24
25
25
1. Install the PEM server. See [Installing the PEM server](../installing/).
26
-
2. Run the configuration script. Select the **Web Services and Database** option to install the PEM server and web server on the same host. See [Configuring the PEM server on Linux](../installing/configuring_the_pem_server_on_linux/).
26
+
1. Run the configuration script. To install the PEM server and web server on the same host, select the **Web Services and Database** option. See [Configuring the PEM server on Linux](../installing/configuring_the_pem_server_on_linux/).
Copy file name to clipboardExpand all lines: product_docs/docs/pem/10/considerations/pem_security_best_practices/index.mdx
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,14 +14,14 @@ navigation:
14
14
15
15
To harden your PEM deployment against attack, consider the following measures:
16
16
17
-
1. Ensure PEM itself, your operating system, and thirdparty libraries are regularly updated. Without the most recent security patches, your system is vulnerable to cyberattacks.
18
-
Please refer to the [Dependencies](../../installing/dependencies.mdx) page to learn more about the system packages used by PEM.
17
+
- Ensure PEM, your operating system, and third-party libraries are regularly updated. Without the most recent security patches, your system is vulnerable to cyberattacks.
18
+
See [Dependencies](../../installing/dependencies.mdx) to learn more about the system packages used by PEM.
19
19
20
-
2. Ensure the Postgres instance used as the PEM server is kept up to date and apply [Postgres security best practices](https://info.enterprisedb.com/rs/069-ALB-339/images/Security-best-practices-2020.pdf).
20
+
- Ensure the Postgres instance used as the PEM server is kept up to date and apply [Postgres security best practices](https://info.enterprisedb.com/rs/069-ALB-339/images/Security-best-practices-2020.pdf).
21
21
22
-
3.[Secure the web server](apache_httpd_security_configuration.mdx)
22
+
-[Secure the web server](apache_httpd_security_configuration.mdx).
23
23
24
-
4. Configure the [security settings of the PEM web application](pem_application_configuration.mdx) as appropriate.
24
+
- Configure the [security settings of the PEM web application](pem_application_configuration.mdx) as appropriate.
Copy file name to clipboardExpand all lines: product_docs/docs/pem/10/considerations/pem_security_best_practices/pem_application_configuration.mdx
+22-21Lines changed: 22 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,30 +9,29 @@ redirects:
9
9
10
10
## Session timeout
11
11
12
-
Insufficient session expiration by the web application increases the exposure of other session-based attacks. The attacker has more time to reuse a valid session ID and hijack the associated session. The shorter the session interval is, the less time an attacker has to use the valid session ID. We recommend that you set the inactivity timeout for the web application to a low value to avoid this security issue.
12
+
Setting session expiration time too long in the web application increases the exposure of other session-based attacks. The attacker has more time to reuse a valid session ID and hijack the associated session. The shorter the session interval is, the less time an attacker has to use the valid session ID. To avoid this security issue, we recommend that you set the inactivity timeout for the web application to a low value.
13
13
14
-
In PEM, you can set the timeout value for a user session. When there's no user activity for a specified duration on the web console, PEM logs out the user from the web console. A PEM administrator can set the length of time for inactivity. This value is for the whole application and not for each user. To configure the timeout duration, modify the `USER_INACTIVITY_TIMEOUT` parameter in the `config_local.py` file, located in the `<PEM_INSTALLATION_PATH>/web` directory. By default, this functionality is disabled.
14
+
In PEM, you can set the timeout value for a user session. When there's no user activity for a specified duration on the web console, PEM logs the user out of the web console. A PEM administrator can set the length of time for inactivity. This value is for the whole application, not for each user.
15
15
16
-
For example, to specify for an application to log out a user after 15 minutes of inactivity, set:
16
+
To configure the timeout duration, modify the `USER_INACTIVITY_TIMEOUT` parameter in the `config_local.py` file in the `<PEM_INSTALLATION_PATH>/web` directory. By default, this parameter is disabled. Specify the value in seconds.
17
+
18
+
For example, to specify for an application to log a user out after 15 minutes of inactivity, set the time as follows:
17
19
18
20
```ini
19
21
USER_INACTIVITY_TIMEOUT = 900
20
22
```
21
23
22
-
!!! Note
23
-
The timeout value is specified in seconds.
24
-
25
-
To apply the changes, restart the Apache service.
24
+
To apply the change, restart the Apache service.
26
25
27
-
For detailed information on the `config.py` file, see [Managing Configuration Settings](../../managing_configuration_settings/).
26
+
For detailed information on the `config.py` file, see [Managing configuration settings](../../managing_configuration_settings/).
28
27
29
28
## RestAPI header customization
30
29
31
-
You can customize the RestAPI token headers to meet your requirements. The default values aren't exposed by the `config.py` file. Customize the following headers in the `config_local.py` file:
30
+
You can customize the RestAPI token headers to meet your requirements. The default values aren't exposed by the `config.py` file. In the `config_local.py` file, customize the following headers.
32
31
33
32
### PEM_HEADER_SUBJECT_TOKEN_KEY
34
33
35
-
This configuration option allows you to change the HTTP header name to get the generated token. By default, when you send a request to create a token, the server response has an `X-Subject-Token` header. This header contains the value of a newly generated token. If you want to customize the header name, then you can update the `config_local.py` file:
34
+
This configuration option lets you change the HTTP header name to get the generated token. By default, when you send a request to create a token, the server response has an `X-Subject-Token` header. This header contains the value of a newly generated token. If you want to customize the header name, then you can update the `config_local.py` file:
This configuration option allows you to change the HTTP request header name. With this header name, you can send the token to the PEM server. By default, when you send a request to generate a token, the token header name is `X-Auth-Token`. If you want to customize the RestAPI request header name, then you can update the `config_local.py` file:
53
+
This configuration option lets you change the header name of the HTTP request. With this header name, you can send the token to the PEM server. By default, when you send a request to generate a token, the token header name is `X-Auth-Token`. If you want to customize the RestAPI request header name, you can update the `config_local.py` file:
55
54
56
55
```ini
57
56
PEM_HEADER_TOKEN_KEY = 'Pem-Token'
58
57
```
59
58
60
-
This setting allows you to send the token:
59
+
This setting lets you send the token:
61
60
62
61
```shell
63
62
$ curl -Lk -X GET -H "Pem-Token: gw5rzaloxydp91ttd1c97w24b5sv60clic24sxy9" https://localhost:8443/pem/api/v4/agent
64
63
```
65
64
66
65
### PEM_TOKEN_EXPIRY
67
66
68
-
This configuration option allows you to change the PEM RestAPI token expiry time after it's generated. By default, the token expiry time is set to 20 minutes (1200 seconds). If you want to change the token expiry time to 10 minutes, then you can update the `config_local.py` file:
67
+
This configuration option lets you change the PEM RestAPI token expiry time after it's generated. By default, the token expiry time is set to 20 minutes (1200 seconds). For example, to change the token expiry time to 10 minutes, update the `config_local.py` file as follows:
69
68
70
69
```ini
71
70
PEM_TOKEN_EXPIRY = 600
72
71
```
73
72
74
-
To apply the changes, restart the Apache service.
73
+
To apply the change, restart the Apache service.
75
74
76
75
## Role-based access control in PEM
77
76
78
-
Role-based access control (RBAC) restricts application access based on a user’s role in an organization and is one of the primary methods for access control. The roles in RBAC refer to the levels of access that users have to the application. Users are allowed to access only the information needed to do their jobs. Roles in PEM are inheritable and additive, rather than subscriptive. In other words, as a PEM admin you need to grant the lowest level role to the user and then grant the roles the user needs to perform their job. For example, to give access only to SQL profiler:
77
+
Role-based access control (RBAC) restricts application access based on a user’s role in an organization. It's one of the primary methods for access control. The roles in RBAC refer to the levels of access that users have to the application. Users are allowed to access only the information needed to do their jobs. Roles in PEM are inheritable and additive rather than subscriptive. In other words, as a PEM admin, you need to grant the lowest level role to the user and then grant the roles the user needs to perform their job. For example, to give access only to SQL Profiler:
79
78
80
79
```sql
81
80
CREATE ROLE user_sql_profiler WITH LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT NOREPLICATION CONNECTION LIMIT-1 PASSWORD 'xxxxxx';
82
81
GRANT pem_user, pem_comp_sqlprofiler TO user_sql_profiler;
83
82
```
84
83
85
-
For detailed information on roles, see [PEM Roles](../../managing_pem_server/#using-pem-predefined-roles-to-manage-access-to-pem-functionality).
84
+
For detailed information on roles, see [PEM roles](../../managing_pem_server/#using-pem-predefined-roles-to-manage-access-to-pem-functionality).
86
85
87
86
## SQL/Protect plugin
88
87
89
-
Often, preventing an SQL injection attack is the responsibility of the application developer, while the database administrator has little or no control over the potential threat. The difficulty for database administrators is that the application must have access to the data to function properly.
88
+
Often, preventing an SQL injection attack is the responsibility of the application developer. The database administrator has little or no control over the potential threat. The difficulty for database administrators is that the application must have access to the data to function properly.
90
89
91
90
SQL/Protect is a module that allows a database administrator to protect a database from SQL injection attacks. SQL/Protect examines incoming queries for typical SQL injection profiles in addition to the standard database security policies.
92
91
93
-
Attackers can perpetrate SQL injection attacks with several different techniques. A specific signature characterizes each technique. SQL/Protect examines queries for unauthorized relations, utility commands, SQL tautology, and unbounded DML statements. SQL/Protect gives the control back to the database administrator by alerting the administrator to potentially dangerous queries and then blocking those queries.
92
+
Attackers can perpetrate SQL injection attacks using several different techniques. A specific signature characterizes each technique. SQL/Protect examines queries for unauthorized relations, utility commands, SQL tautology, and unbounded DML statements. SQL/Protect gives the control back to the database administrator by alerting the administrator to potentially dangerous queries and then blocking those queries.
94
93
95
94
!!! Note
96
-
This plugin works only on the EDB Postgres Advanced Server server, so this is useful only when your PEM database is hosted on the EDB Postgres Advanced Server server.
95
+
This plugin is useful only when your PEM database is hosted on the EDB Postgres Advanced Server server. It doesn't work on other servers.
97
96
98
97
For detailed information about the SQL Profiler plugin, see [SQL Profiler](../../profiling_workloads/).
99
98
100
99
## Password management
101
100
102
-
One security tip for PEM administrative users is to change your PEM login passwords to something new regularly. Changing your password:
101
+
One security tip for PEM administrative users is to regularly change your PEM login passwords to something new. Changing your password:
103
102
104
103
- Prevents breaches of multiple accounts
105
104
- Prevents constant access
@@ -110,7 +109,9 @@ One security tip for PEM administrative users is to change your PEM login passwo
110
109
111
110
In most cases, pemAgent is installed as a root user and runs as a daemon process with root privileges. By default, PEM disables running the scheduled jobs/task. PEM provides support for running scheduled jobs as a non-root user by changing the pemAgent configuration file.
112
111
113
-
To run scheduled jobs as a non-root user, modify the entry for the `batch_script_user` parameter in the `agent.cfg` file and specify the user to run the script. You can either specify a non-root user or root user identity. If you don't specify a user, or the specified user doesn't exist, then the script doesn't execute. Restart the agent after modifying the file. If a non-root user is running `pemagent`, then the value of `batch_script_user` is ignored, and the same non-root user used for running the `pemagent` executes the script.
112
+
To run scheduled jobs as a non-root user, modify the entry for the `batch_script_user` parameter in the `agent.cfg` file and specify the user to run the script. You can specify either a non-root user or root user identity. If you don't specify a user or the specified user doesn't exist, the script doesn't execute.
113
+
114
+
After modifying the file, restart the agent. If a non-root user is running pemAgent, the value of `batch_script_user` is ignored. The same non-root user used for running the pemAgent executes the script.
114
115
115
116
To invoke a script on a Windows system, set the registry entry for `AllowBatchJobSteps` to `true` and restart the PEM agent. PEM registry entries are located in:
0 commit comments