More Info:
Setting streamingConnectionIdleTimeout to 0 disables idle connection timeout for kubectl exec, attach and port-forward sessions, which can be abused for long-lived covert channels. A non-zero value (default 4h) limits exposure.Risk Level
MediumAddress
Compliance, SecurityCompliance Standards
- CIS OKE
Triage and Remediation
- Remediation
Remediation
Using Console
Using Console
Below are the console-based steps to remediate this in Oracle Container Engine for Kubernetes (OKE) by setting a non‑zero
If you share your OKE version and whether the node pools are managed/virtual nodes, I can give you the exact field names as they appear in your console screen.
streamingConnectionIdleTimeout on the kubelet.Goal: Ensure kubelet’s streaming-connection-idle-timeout is not 0 on worker nodes by updating node pool kubelet configuration and then rolling nodes.1. Confirm which node pool(s) are affected
- Sign in to the OCI Console.
- Open the navigation menu → Developer Services → Kubernetes Clusters (OKE).
- Select your Compartment.
- Click the Cluster you’re auditing.
- Go to the Node Pools tab and identify the node pool(s) that correspond to the failing nodes.
2. Check if kubelet config is editable for the node pool
- Click on the Node Pool name.
- Click Edit (top-right).
- Scroll to Advanced Options → Kubelet configuration (or similar “Kubelet config / Worker node configuration” area).
- If you see fields for kubelet parameters, proceed.
- If not editable (e.g., older pool type), you must create a new node pool with the correct settings (see step 3B).
3A. Edit kubelet config on an existing node pool (if allowed)
- In the Edit Node Pool page, under kubelet settings, locate:
- Streaming Connection Idle Timeout or a similar field (may be expressed as
4h,1h, etc.).
- Streaming Connection Idle Timeout or a similar field (may be expressed as
- Set a non-zero value (example:
4his commonly used):- Example value:
4h - Any non-zero duration that meets your org’s security baseline is acceptable.
- Example value:
- Save the changes (Update Node Pool).
3B. If kubelet config is not editable → create a new node pool
- In the cluster’s Node Pools tab, click Create node pool.
- Configure:
- Kubernetes version, shape, subnets, etc., matching the existing node pool as appropriate.
- Under Advanced Options → Kubelet configuration:
- Set Streaming Connection Idle Timeout to a non-zero duration (e.g.,
4h).
- Set Streaming Connection Idle Timeout to a non-zero duration (e.g.,
- Click Create.
- Wait for the new node pool status to become Active.
4. Rotate/replace nodes so they inherit the new kubelet config
If you edited the existing node pool:- From the Node Pool details page:
- Either Scale down and back up the node pool, or
- Terminate nodes one-by-one; new nodes will launch with the updated kubelet settings.
- Use
kubectl drain(from your workstation) before terminating nodes to avoid workload disruption: - After the new node joins:
- Add the new node pool to the cluster and ensure auto-scaling / replicas are correct.
- Cordon and drain nodes in the old node pool and then terminate them.
- When workloads are stable on the new pool, you can delete the old node pool.
5. Validate the change
- Once new nodes are up, list nodes and pick one:
- SSH to the node (if allowed) or use logs/agent, then confirm kubelet arguments include a non-zero timeout, e.g.:
You should see something like:
- Re-run your compliance scan to ensure the check “Kubelet streamingConnectionIdleTimeout Should Not Be 0” now passes.
If you share your OKE version and whether the node pools are managed/virtual nodes, I can give you the exact field names as they appear in your console screen.
Using CLI
Using CLI
For Oracle Container Engine for Kubernetes (OKE), this specific kubelet setting:
--streaming-connection-idle-timeoutis not exposed as a configurable parameter via OKE APIs, Terraform, or the OCI CLI on managed node pools as of my latest knowledge (mid‑2024). OKE manages kubelet flags internally, and there is no supported knob in:oci ce cluster ...oci ce node-pool ...- Node pool
kubeletConfigDetails(which only covers a limited set of kubelet options likemaxPodsPerNode,podsPerCore, etc.)
- You cannot remediate “Kubelet streamingConnectionIdleTimeout should not be 0” via OCI CLI on standard OKE managed node pools.
- Any workaround would require unsupported modifications inside the node (e.g., editing the kubelet systemd unit or bootstrap scripts via cloud-init/user data), which can be overwritten on upgrade/repair and may be out of support with Oracle.
- Confirm with OCI/OKE documentation or an Oracle SR whether support for this kubelet flag has been added.
- If not supported:
- Mark this finding as not remediable / accepted risk for OKE managed nodes in your compliance tooling, or
- Use self-managed Kubernetes on OCI Compute (where you control kubelet flags) instead of OKE for workloads that require strict control over this setting.
streamingConnectionIdleTimeout for OKE-managed kubelets.Using Python
Using Python
To remediate this in OCI OKE, you must update your node pool(s) so the kubelet
streamingConnectionIdleTimeout is set to a non-zero value (e.g., "4h"). In OKE this is done via the node pool’s kubelet configuration.Below is a concise step‑by‑step guide using the OCI Python SDK.1. Prerequisites
- OCI Python SDK installed:
- OCI config file (
~/.oci/config) with a profile that has permissions to manage OKE node pools. - Your:
compartment_idcluster_id- OCI profile name (e.g.,
DEFAULT)
2. Decide on a non-zero timeout
Pick a valid Kubernetes duration string, e.g.:"1h""2h""4h"(commonly used)"30m"
3. Python script to update all node pools in a cluster
This script:- Lists all node pools in a cluster.
- Updates each node pool’s kubelet config so
streaming_connection_idle_timeoutis non-zero.
4. Notes
- After updating, OKE will roll the node pool according to its upgrade/rolling rules; pods may be rescheduled.
- If you only want to update specific node pools, filter by
np.nameornp.idinstead of iterating over all.
Using Terraform
Using Terraform

