More Info:
ElasticSearch domain traffic should be encrypted in transit between nodes. ElasticSearch domains should use node-to-node encryption to ensure data in transit remains encrypted using TLS 1.2.Risk Level
HighAddress
SecurityCompliance Standards
- APRA CPS 234 (Australia)
- BSI C5 (Germany)
- Brazil LGPD
- CCPA / CPRA (California)
- CIS Critical Security Controls v8
- CMMC 2.0
- CSA Cloud Controls Matrix v4
- DPDPA
- Digital Operational Resilience Act (EU)
- GDPR
- HIPAA
- HITRUST CSF
- ISO/IEC 27017
- ISO/IEC 27018
- ISO/IEC 27701
- KSA PDPL
- MAS Technology Risk Management (Singapore)
- MITRE ATT&CK (Cloud)
- NIS2 Directive
- NIST
- NIST CSF
- NIST SP 800-171
- NYDFS 23 NYCRR 500
- PCI
- Reserve Bank of India (RBI) Cyber Security Framework
- SOC2
- SWIFT Customer Security Controls Framework
- Sarbanes-Oxley IT General Controls
- Securities and Exchange Board of India (SEBI) - Cloud Security Adoption Framework
- UK NCSC Cyber Assessment Framework
Triage and Remediation
- Remediation
Remediation
Using Console
Using Console
Sure, here are the step-by-step instructions to remediate the ElasticSearch Domain misconfiguration for AWS using the AWS console:
- Login to your AWS console and navigate to the ElasticSearch service.
- Select the ElasticSearch domain that you want to remediate.
- Click on the “Edit” button to edit the domain configuration.
- Under the “Encryption” section, select the “Require node-to-node encryption” option.
- Click on the “Save changes” button to save the updated configuration.
- Wait for a few minutes for the changes to take effect.
- Verify that the ElasticSearch domain now has node-to-node encryption enabled by checking the “Encryption” section in the domain configuration.
Using CLI
Using CLI
To remediate the ElasticSearch Domains should have Node to Node Encryption misconfiguration in AWS using AWS CLI, follow the below steps:
- Open your terminal and install the AWS CLI if you haven’t already installed it.
- Authenticate the AWS CLI using your AWS credentials.
- Run the following command to enable Node to Node Encryption for your ElasticSearch domain:
-
Replace
<your-domain-name>with the name of your ElasticSearch domain. - After running the above command, AWS will update the configuration of your ElasticSearch domain to enable Node to Node Encryption.
- Verify the configuration by running the following command:
- If the output of the above command shows that Node to Node Encryption is enabled, then the remediation is successful.
Using Python
Using Python
To remediate the misconfiguration that ElasticSearch domains should have node to node encryption in AWS using Python, you can follow these steps:Note: You will need to have the appropriate IAM permissions to update the ElasticSearch domain configuration using Boto3.
- Open the AWS Management Console and navigate to the ElasticSearch service.
- Select the ElasticSearch domain that requires node to node encryption.
- In the domain dashboard, click on the “Configure” button.
- In the “Node-to-Node Encryption” section, click on the “Edit” button.
- Enable node-to-node encryption by setting the “Enabled” option to “Yes”.
- Click on the “Save Changes” button to apply the changes.
- To automate this process using Python, you can use the AWS SDK for Python (Boto3) to update the domain configuration. Here’s an example code snippet:
Using Terraform
Using Terraform
YOUR_DOMAIN_NAMEwith the Elasticsearch/OpenSearch domain name.- Add the rest of your existing domain configuration (
cluster_config,ebs_options,vpc_options, etc.) so this matches your real resource.
node_to_node_encryption in Terraform performs the same change as:
aws es update-elasticsearch-domain-config --node-to-node-encryption-options Enabled=true and will trigger a blue/green deployment; the domain stays available but the change can take time. It does not force resource replacement in Terraform.For verification, terraform plan should show the existing aws_elasticsearch_domain gaining:
node_to_node_encryption.enabled: "false" => "true" (or an added node_to_node_encryption block if it was absent).
