Profile Applicability:
Level 1
Description:
The Docker server certificate key file, which is used for secure TLS communication between the Docker client and Docker daemon, should have its ownership set to root:root. This ensures that only authorized users (i.e., the root user) can modify or replace the certificate key file, protecting it from unauthorized access.
Rationale:
The Docker server certificate key file is crucial for secure communication. Unauthorized users with write access to the key file could potentially replace it with a compromised certificate, exposing the Docker daemon to security vulnerabilities. By ensuring the key file is owned by root:root, access is restricted to authorized administrators, minimizing the risk of compromise.
Impact:
Pros:
Secures the Docker server certificate key file by restricting access to root users only.
Ensures that the integrity of the certificate key is maintained, preventing unauthorized access or tampering.
Cons:
Requires periodic checks to ensure proper ownership is maintained, especially if the certificate is updated or replaced.
Default Value:
The default ownership for the Docker server certificate key file is typically root:root, but this can be modified during configuration or due to administrative errors.
Pre-requisites:
Administrative privileges on the Docker host system.
Access to the file system to inspect and modify ownership.
Remediation:
Test Plan:
Using AWS Console:
Log in to the EC2 instance running Docker.
Verify the ownership of the Docker server certificate key file (typically located in /etc/docker or /etc/docker/certs.d):
ls -l /etc/docker/certs.d/<registry>/server-key.pem
Using AWS CLI:
Connect to the EC2 instance where Docker is running.
Run the following command to check the ownership of the server certificate key file:
ls -l /etc/docker/certs.d/<registry>/server-key.pem
Implementation Plan:
Using AWS Console:
Log in to the EC2 instance.
Set the ownership of the Docker server certificate key file to root:root:
sudo chown root:root /etc/docker/certs.d/<registry>/server-key.pem
Restart Docker to ensure the changes take effect:
Using AWS CLI:
Use SSM to modify the ownership of the Docker server certificate key file and restart Docker:
aws ssm send-command --document-name "AWS-RunShellScript" --targets "Key=instanceIds,Values=instance_id" --parameters 'commands=["sudo chown root:root /etc/docker/certs.d/<registry>/server-key.pem && sudo systemctl restart docker"]'
Backout Plan:
Using AWS Console:
Log in to the EC2 instance.
Revert the ownership of the Docker server certificate key file if necessary:
sudo chown <previous-owner>:<previous-group> /etc/docker/certs.d/<registry>/server-key.pem
Restart Docker to apply the changes:
Using AWS CLI:
Use SSM to revert the ownership and restart Docker:
aws ssm send-command --document-name "AWS-RunShellScript" --targets "Key=instanceIds,Values=instance_id" --parameters 'commands=["sudo chown <previous-owner>:<previous-group> /etc/docker/certs.d/<registry>/server-key.pem && sudo systemctl restart docker"]'
References: