Skip to main content

Triage and Remediation

Remediation

Using Console

Sure, here are the step-by-step instructions on how to remediate the “Endpoints Should Not Be Publicly Accessible” misconfiguration in AWS using the AWS console:
  1. Log in to the AWS Management Console.
  2. Go to the Amazon VPC service.
  3. Click on “Endpoints” in the left navigation pane.
  4. Select the endpoint that you want to remediate.
  5. Click on the “Actions” button and select “Modify Endpoint”.
  6. In the “Modify Endpoint” dialog box, select the “Private” option for the endpoint.
  7. Click “Save Changes” to apply the changes.
After following these steps, the endpoint will no longer be publicly accessible and will only be accessible through the VPC.

To remediate this misconfiguration in AWS using AWS CLI, follow these steps:
  1. Open the AWS CLI on your local machine.
  2. Run the following command to list all VPC endpoints in your AWS account:
  1. Identify the VPC endpoint that is publicly accessible.
  2. Run the following command to modify the VPC endpoint to make it not publicly accessible:
Replace <VPC_ENDPOINT_ID> with the ID of the VPC endpoint that you identified in step 3.
  1. Verify that the VPC endpoint is no longer publicly accessible by running the following command:
This command should return an output that includes "PrivateDnsEnabled": true and "PolicyDocument": {"Statement": [{"Effect": "Deny", "Principal": "*", "Action": "*", "Resource": "*"}], "Version": "2012-10-17"} for the VPC endpoint that you modified.
  1. Repeat steps 3-5 for any other publicly accessible VPC endpoints in your AWS account.
To remediate the misconfiguration “Endpoints Should Not Be Publicly Accessible” for AWS using Python, follow these steps:
  1. Identify the endpoints that are publicly accessible. You can use the AWS CLI command aws ec2 describe-security-groups to list all security groups and their associated rules.
  2. For each security group that has a rule allowing public access to an endpoint, you will need to remove the rule. You can use the AWS CLI command aws ec2 revoke-security-group-ingress to remove the rule.
  3. To automate this process using Python, you can use the Boto3 library, which is the AWS SDK for Python. Here is an example code snippet that will remove all rules allowing public access to endpoints for a specific security group:
  1. You can run this Python script as a Lambda function and schedule it to run periodically to ensure that any new endpoints that are publicly accessible are remediated automatically. You can also modify the script to remediate all security groups in your AWS account, not just a specific one.
This change is an in‑place update of the cluster endpoint configuration; it does not force cluster replacement, but it will disconnect any existing connections to the public endpoint while updating.
CRITICAL: Before applying, ensure you have a way to access the cluster from within its VPC (bastion host, VPN, Direct Connect, etc.), or you will lose access to the control plane.
Verification: terraform plan should show endpoint_public_access changing from true to false and endpoint_private_access changing from false to true in the vpc_config of aws_eks_cluster.THIS_CLUSTER.