More Info:
Create clusters with private nodes that have only private IP addresses, preventing direct public network exposure of worker nodes.Risk Level
HighAddress
SecurityCompliance Standards
- CIS OKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify whether node pools use public IPs (OCI CLI – any machine with OCI CLI access)
If
isPublicIpistruefor any node pool, those nodes are not private. -
Confirm at the instance level that worker nodes do not have public IPs (OCI CLI – any machine with OCI CLI access)
Any non-empty
publicIpindicates non‑private nodes. -
Decide on remediation strategy (design decision – no command)
- If any node pool has
is-public-ip-enabled = trueor nodes showpublicIpvalues, decide whether to:- Recreate the node pool(s) with private nodes only, and cordon/drain/migrate workloads, or
- Create new private-only node pools and then delete the public node pools after workload migration.
- Ensure you have private connectivity (VCN, subnets, NAT/egress, bastion, etc.) to manage private nodes.
- If any node pool has
-
Create a new private-only node pool (remediation – any machine with OCI CLI access)
Ensure the subnet is private (no public IP assignment, appropriate route tables/NSGs).
-
Migrate workloads and remove old public node pools (any machine with kubectl and OCI CLI access)
- Cordon and drain old public nodes:
- After workloads are stable on the new private node pool, delete the old node pool(s):
- Cordon and drain old public nodes:
-
Verify remediation (OCI CLI – any machine with OCI CLI access)
Confirm all node pools show
isPublicIp = falseand all worker node instances have emptypublicIpvalues.
Using kubectl
Using kubectl
kubectl cannot change whether cluster nodes use private or public IP addresses; that setting is managed in the cloud provider’s control‑plane / cluster configuration (console, CLI, or IaC) where the cluster is created or updated. Refer to the Manual Steps section for how to review and remediate this setting in your environment.
Automation
Automation
- If the “Nodes with ExternalIP set” section lists any node and IP, that node appears to be publicly reachable and violates the requirement for private nodes.
- If the heuristic section lists nodes with non‑RFC1918
InternalIP, those nodes might be using publicly routable addresses and should be manually verified in the cloud provider configuration.

