Configurer la clé privée du compte de service

VérifiéSûr

Assurez-vous que le gestionnaire de contrôleurs utilise un fichier de clé privée pour les jetons de compte de service.

Spar Skills Guide Bot
SecuriteDébutant
25/07/2026
Claude CodeCursorCodex
#cis-benchmark#openshift#kubernetes#compliance#controller-manager

Recommandé pour

Synthèse automatique

Vérifie le contrôle CIS 1.3.3 pour OpenShift Container Platform v1.9.0 en inspectant la ConfigMap du kube-controller-manager afin de confirmer que l'argument --service-account-private-key-file pointe vers le fichier de clé attendu.

Points forts

  • Fournit la commande exacte combinant oc et jq, directement copiable et exécutable.
  • Indique la valeur de retour attendue, ce qui rend le contrôle sans ambiguïté.
  • Explique la justification sécurité : une paire de clés distincte permet la rotation des jetons de compte de service.
  • Précise que la remédiation est inexistante car OpenShift configure déjà ce chemin par défaut, évitant des modifications inutiles.

Limites

  • Contrôle en lecture seule : aucune remédiation ni correction automatisée n'est proposée.
  • Suppose que oc et jq sont installés et que la session est authentifiée sur le cluster.
  • Dépend du chemin et de la version du benchmark ; un cluster modifié manuellement peut diverger de la valeur attendue.
Quand l'utiliser

À utiliser lors d'un audit de conformité CIS du plan de contrôle sur un cluster OpenShift, pour valider le contrôle 1.3.3.

Quand l'éviter

À ne pas utiliser sur un cluster Kubernetes vanilla sans OpenShift, ni pour effectuer réellement la rotation ou le remplacement des clés de signature des comptes de service.

Analyse de sécurité

Sûr
Score qualité92/100

The skill provides a read-only audit command using oc and jq to inspect the OpenShift kube-controller-manager configuration. It does not perform destructive actions, exfiltrate data, or use obfuscated payloads. The only execution risk is a shell pipeline for a legitimate compliance check.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Verify CIS 1.3.3
Run the CIS OpenShift v1.9.0 control 1.3.3 check on my cluster and tell me whether --service-account-private-key-file is set to the expected path.
Inspect controller manager config
Dump the config.yaml from the config ConfigMap in openshift-kube-controller-manager and show me the service-account-private-key-file extended argument.
Explain the audit result
I ran the oc get configmaps config -n openshift-kube-controller-manager check for CIS 1.3.3 and got an empty value — explain what that means and whether I can fix it.

name: cis-ocp-v190-1.3.3 description: "Ensure that the --service-account-private-key-file argument is set as appropriate (Manual)" category: cis-openshift version: "1.9.0" author: cyberstrike-official tags: [cis, openshift, kubernetes, redhat, controller-manager, service-account, private-key, certificates] cis_id: "1.3.3" cis_benchmark: "CIS Red Hat OpenShift Container Platform Benchmark v1.9.0" tech_stack: [kubernetes, openshift, redhat] cwe_ids: [] chains_with: [] prerequisites: [] severity_boost: {}

CIS Red Hat OpenShift Container Platform Benchmark v1.9.0 - Control 1.3.3

Profile Applicability

  • Level: 1

Description

Explicitly set a service account private key file for service accounts on the controller manager.

Rationale

To ensure that keys for service account tokens can be rotated as needed, a separate public/private key pair should be used for signing service account tokens. The private key should be specified to the controller manager with --service-account-private-key-file as appropriate.

Impact

You would need to securely maintain the key file and rotate the keys based on your organization's key rotation policy.

Audit Procedure

OpenShift starts the Kubernetes Controller Manager with service-account-private-key-file set to /etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key.

The bootstrap configuration and overrides are available here:

Run the following command:

oc get configmaps config -n openshift-kube-controller-manager -ojson | \
  jq -r '.data["config.yaml"]' | \
  jq -r '.extendedArguments["service-account-private-key-file"][]'

Verify that the following is returned:

/etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key

Remediation

None.

Default Value

By default, OpenShift starts the controller manager with service-account-private-key-file set to /etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key. OpenShift manages the service account credentials for the scheduler automatically.

References

  1. https://docs.openshift.com/container-platform/latest/operators/operator-reference.html
  2. https://docs.openshift.com/container-platform/4.13/security/certificate_types_descriptions/control-plane-certificates.html
  3. https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/bootkube/bootstrap-manifests/kube-controller-manager-pod.yaml
  4. https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/bootkube/config/bootstrap-config-overrides.yaml
  5. https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/v4.1.0/kube-controller-manager/kubeconfig-cm.yaml
  6. https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/

CIS Controls

| Controls Version | Control | IG 1 | IG 2 | IG 3 | | ---------------- | ------------------------ | ---- | ---- | ---- | | v8 | 5.2 Use Unique Passwords | X | X | X | | v7 | 4.4 Use Unique Passwords | | X | X |

MITRE ATT&CK Mappings

| Techniques / Sub-techniques | Tactics | Mitigations | | --------------------------- | ------- | ----------- | | T1552 | TA0006 | M1022 |

Profile

Level 1 (Manual)

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/set-service-account-private-key-file-mrzxury4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/set-service-account-private-key-file-mrzxury4/download' --output '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md.part' && mv '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md.part' '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires