Ensure That Compute Instances Do Not Have Public IP Addresses

MEDIUM

Description

Description:

Compute instances should not be configured to have external IP addresses.

Rationale:

To reduce your attack surface, Compute instances should not have public IP addresses. Instead, instances should be configured behind load balancers, to minimize the instance's exposure to the internet.

Removing the external IP address from your Compute instance may cause some applications to stop working.

Remediation

From Google Cloud Console

  1. Go to the 'VM instances' page by visiting: https://console.cloud.google.com/compute/instances.

  2. Click on the instance name to go the the 'Instance detail page'.

  3. Click 'Edit'.

  4. For each Network interface, ensure that 'External IP' is set to 'None'.

  5. Click 'Done' and then click 'Save'.

From Google Cloud CLI

  1. Describe the instance properties:

gcloud compute instances describe --zone=

  1. Identify the access config name that contains the external IP address. This access config appears in the following format:

networkInterfaces:

  • accessConfigs:
  • kind: compute#accessConfig
    name: External NAT
    natIP: 130.211.181.55
    type: ONE_TO_ONE_NAT
  1. Delete the access config.

gcloud compute instances delete-access-config --zone= --access-config-name

In the above example, the 'ACCESS_CONFIG_NAME' is 'External NAT'. The name of your access config might be different.

Prevention:
You can configure the 'Define allowed external IPs for VM instances' Organization Policy to prevent VMs from being configured with public IP addresses. Learn more at: https://console.cloud.google.com/orgpolicies/compute-vmExternalIpAccess