Security for Db2 on a Red Hat OpenShift cluster.
Db2® on a Red Hat® OpenShift® cluster supports Transport Layer Security (TLS) to encrypt data in transit.
In addition, client-server communications are fully encrypted at both the network and disk level.
SCC capabilities
The security context constraints (SCC) for Db2 on a Red Hat OpenShift cluster have the following capabilities:
- SYS_RESOURCE
- Allows manipulation of reservations, memory allocations and resource limits. Maximum memory allocation is still constrained by the memory cgroup (memcg) limit which cannot be overridden by this sys-capability. The Db2 database engine needs this sys-capability to increase the resource limits (IE.ulimits).
- IPC_OWNER
- Bypasses permission checks for operations on IPC objects. Even when the IPC kernel parameters are set to maximum values on the hosts/worker nodes, the Db2 engine still tries to dynamically throttle those values. This system capability is provided in addition to sharing IPC namespace with the host.
- SYS_NICE
- Allows changing process priorities. Because each container has its own PID namespace, this capability only applies to that container. The Db2 database engine relies on process thread prioritization to ensure that Work Load Management (WLM) and Fast Communications Manager (FCM) processing is prioritized over generic agent work.
- CHOWN
- Necessary to run chown to change ownership of files/directories in persistent volumes.
- DAC_OVERRIDE
- Bypasses permission checks for file read, write, and execute.
- FSETID
- Prevents the clearing of the setuid and setgid mode bits when a file is modified.
- FOWNER
- Bypasses permission checks on operations that normally require the filesystem UID of the process to match the UID of the file (for example, chmod(2), utime(2)), excluding those operations that are covered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH.
- SETGID
- Necessary to run Db2 engine processes with escalated group privileges.
- SETUID
- Necessary to run Db2 engine processes with escalated user privileges.
- SETFCAP
- Used to set capabilities on files.
- SETPCAP
- Used to set capabilities on processes.
- NET_BIND_SERVICE
- Required for various services to bind to IP domain privileged ports.
- SYS_CHROOT
- Necessary to use the chroot command.
- KILL
- Bypasses permission checks for sending signals. Necessary for signal handling during process management.
- AUDIT_WRITE
- Required to write records to the kernel auditing log when SELinux is enabled.
Role-binding access control
The db2u ServiceAccount and associated db2u-role Role are necessary for pod-to-pod control and communication for a successful deployment. The resources and verbs are outlined below:
rules:
- apiGroups: [""]
resources: ["pods", "pods/log", "pods/exec"]
verbs: ["get", "list", "patch", "watch", "update", "create"]
- apiGroups: [""]
resources: ["services"]
verbs: ["get", "list"]
- apiGroups: ["batch", "extensions"]
resources: ["jobs", "deployments"]
verbs: ["get", "list", "watch", "patch"]
Hostpath requirements
The /proc and /proc/sys volumes must be mounted into an init container to either set or validate the required IPC kernel parameters for Db2. Hostpath volumes are also supported for single-node Db2 deployments.