Skip to content
Skillv1.0.0

cis-k8s-v1120-1.2.3

Ensure that the DenyServiceExternalIPs is set (Manual)

by CyberStrikeus(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from CyberStrikeus/CyberStrike (.cyberstrike/skill/CIS_benchmarks/Server_Software/Kubernetes/CIS_Kubernetes_Benchmark_v1.12.0/cis-k8s-v1120-1.2.3/SKILL.md). Install upstream with npx skills add CyberStrikeus/CyberStrike --skill cis-k8s-v1120-1.2.3. Copyright stays with the author.

1.2.3 Ensure that the DenyServiceExternalIPs is set (Manual)

Profile Applicability

  • Level 1 - Master Node

Description

This admission controller rejects all net-new usage of the Service field externalIPs.

Rationale

Most users do not need the ability to set the externalIPs field for a Service at all, and cluster admins should consider disabling this functionality by enabling the DenyServiceExternalIPs admission controller. Clusters that do need to allow this functionality should consider using some custom policy to manage its usage.

Impact

When enabled, users of the cluster may not create new Services which use externalIPs and may not add new values to externalIPs on existing Service objects.

Audit

Run the following command on the Control Plane node:

ps -ef | grep kube-apiserver

Verify that the DenyServiceExternalIPs argument exist as a string value in --enable-admission-plugins.

Remediation

Edit the API server pod specification file /etc/kubernetes/manifests/kube-apiserver.yaml on the master node and append the Kubernetes API server flag --enable-admission-plugins with the DenyServiceExternalIPs plugin. Note, the Kubernetes API server flag --enable-admission-plugins takes a comma-delimited list of admission control plugins to be enabled, even if they are in the list of plugins enabled by default.

kube-apiserver --enable-admission-plugins=DenyServiceExternalIPs

Default Value

By default, --enable-admission-plugins=DenyServiceExternalIP argument is not set, and the use of externalIPs is authorized.

References

  1. https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/
  2. https://kubernetes.io/docs/admin/kube-apiserver/

CIS Controls

Controls Version Control IG 1 IG 2 IG 3
v8 4.6 Securely Manage Enterprise Assets and Software * * *
v7 16.4 Encrypt or Hash all Authentication Credentials * *

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/cyberstrikeus-cyberstrike-cis-k8s-v1120-1-2-3/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

cyberstrikeus-cyberstrike-cis-k8s-v1120-1-2-3.ocm.jsonjson
{
  "ocm": "1",
  "id": "cyberstrikeus-cyberstrike-cis-k8s-v1120-1-2-3",
  "kind": "skill",
  "name": "cis-k8s-v1120-1.2.3",
  "description": "Ensure that the DenyServiceExternalIPs is set (Manual)",
  "publisher": "CyberStrikeus",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "cis",
      "kubernetes",
      "control-plane",
      "api-server",
      "admission-control",
      "external-ips",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Ensure that the DenyServiceExternalIPs is set (Manual)"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/CyberStrikeus/CyberStrike",
      "path": ".cyberstrike/skill/CIS_benchmarks/Server_Software/Kubernetes/CIS_Kubernetes_Benchmark_v1.12.0/cis-k8s-v1120-1.2.3/SKILL.md",
      "ref": "df28ccd3dc6d6c02391169121ee2dcdf4a6a132b",
      "url": "https://github.com/CyberStrikeus/CyberStrike/blob/df28ccd3dc6d6c02391169121ee2dcdf4a6a132b/.cyberstrike/skill/CIS_benchmarks/Server_Software/Kubernetes/CIS_Kubernetes_Benchmark_v1.12.0/cis-k8s-v1120-1.2.3/SKILL.md",
      "key": "CyberStrikeus/CyberStrike/.cyberstrike/skill/CIS_benchmarks/Server_Software/Kubernetes/CIS_Kubernetes_Benchmark_v1.12.0/cis-k8s-v1120-1.2.3/SKILL.md"
    }
  },
  "instructions": "# 1.2.3 Ensure that the DenyServiceExternalIPs is set (Manual)\n\n## Profile Applicability\n\n- Level 1 - Master Node\n\n## Description\n\nThis admission controller rejects all net-new usage of the Service field externalIPs.\n\n## Rationale\n\nMost users do not need the ability to set the `externalIPs` field for a `Service` at all, and cluster admins should consider disabling this functionality by enabling the `DenyServiceExternalIPs` admission controller. Clusters that do need to allow this functionality should consider using some custom policy to manage its usage.\n\n## Impact\n\nWhen enabled, users of the ",
  "cost": {
    "context_tokens": 569
  }
}

Fetch it by URL: GET /api/v1/registry/cyberstrikeus-cyberstrike-cis-k8s-v1120-1-2-3/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.