Projectes Kubernetes

Un projecte Kubernetes és un conjunt d’imatges Docker que pertanyen a un espai de noms d’un clúster Kubernetes, tot plegat vist com un únic actiu que agrega les vulnerabilitats de les imatges que el componen. Cada imatge es veu com una tecnologia del projecte, cosa que permet conèixer les imatges vulnerables sense haver d’examinar-ne el contingut.

Creació d’un projecte Kubernetes

Els projectes Kubernetes són un tipus de connexió sense agent. Les dades que cal indicar depenen de la manera de connectar-se al clúster. Sempre és possible connectar-se a un clúster directament a través de l’API de Kubernetes, però, per facilitar la gestió de les credencials, Cyberwatch pot obtenir automàticament les configuracions de Kubernetes des d’Azure o AWS.

Clúster Kubernetes

Per accedir directament a un clúster Kubernetes, primer cal crear-li un joc de credencials desades de tipus Kubernetes. Les credencials creades han de tenir els permisos RBAC següents:

- apiGroups: [""]
  resources: ["namespaces/status", "pods/status"]
  verbs: ["list", "get"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list"]

Consulteu la documentació de Kubernetes Using RBAC Authorization per obtenir més informació.

Després, podreu seleccionar el clúster en crear el projecte Kubernetes.

El camp Adreça del projecte ha de contenir el nom de l’espai de noms del qual cal llistar les imatges, per exemple «el meu namespace». Si altres clústers defineixen el mateix espai de noms, podeu afegir-hi com a prefix un nom arbitrari de clúster separat per una barra inclinada, per exemple «el meu clúster/el meu namespace». El nom del clúster afegit d’aquesta manera no té cap efecte en el resultat de l’escaneig.

Azure Kubernetes Service

Per configurar un clúster AKS, cal una clau d’API d’Azure. El procés per afegir credencials desades d’Azure és el mateix que per als descobriments Azure.

Per identificar un clúster AKS, calen 3 dades:

  1. l’ID de la subscripció a la qual està vinculat
  2. el nom del seu grup de recursos, si escau
  3. el nom del clúster

A la pàgina de creació de la connexió sense agent, en seleccionar el tipus projecte Kubernetes i el joc de credencials d’Azure, apareixen els camps específics d’Azure.

El nom del clúster no té un camp propi i s’ha d’escriure a l’adreça, seguit d’una barra inclinada i del nom de l’espai de noms del projecte, per exemple «el meu clúster/el meu namespace».

Amazon Elastic Kubernetes Service

Per configurar un clúster EKS, cal una clau d’API d’AWS. Els passos de configuració són els mateixos que per als descobriments Amazon EC2.

En crear la connexió sense agent de tipus projecte Kubernetes, el camp Adreça ha de tenir la forma «el meu clúster/el meu namespace», on «el meu clúster» designa el nom del clúster a AWS i «el meu namespace» designa el nom de l’espai de noms al clúster Kubernetes.

A més de l’adreça, també cal indicar al camp Regió la zona geogràfica del clúster. El camp Rol permet indicar opcionalment un ARN sobre el qual fer l’operació AssumeRole, si cal.

Rancher

Per configurar un clúster Kubernetes gestionat per Rancher, cal una clau d’API en forma de testimoni Bearer. Els requisits previs són els mateixos que per als descobriments Rancher.

El camp Adreça ha de tenir la forma «el meu clúster/el meu namespace», on «el meu clúster» designa l’ID del clúster gestionat per Rancher (no utilitzeu el nom del clúster) i «el meu namespace» designa el nom de l’espai de noms al clúster Kubernetes.

Escaneig de les imatges

Per obtenir la informació de vulnerabilitats, les imatges dels projectes Kubernetes s’han d’escanejar com a imatges Docker registrades de manera independent.

Els projectes Kubernetes recuperen les imatges per digest, que serveix de clau per trobar les imatges escanejades. Aquestes imatges han de contenir una metadada IMAGE_DIGEST, declarada amb la forma META:IMAGE_DIGEST|sha256:… en alguna de les seves anàlisis. Com que l’SHA-256 és l’únic criteri, la imatge trobada pot ser tant un actiu air gap com una imatge Docker, pot provenir d’un registre mirall o fins i tot tenir un nom diferent. Per a més fiabilitat, és preferible registrar les imatges per digest en lloc de per etiqueta.

Per tenir en compte les imatges Docker noves, cal tornar a analitzar el projecte Kubernetes.

Registre manual

Les imatges que falten d’un projecte Kubernetes es poden afegir manualment per digest des del menú Gestió d’actius > Imatges Docker de la barra lateral indicant al camp Etiqueta una versió de la forma sha256:50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c, per exemple.

Per facilitar el registre manual, també podeu obrir la pestanya Tecnologies de la pàgina de detalls del projecte Kubernetes i fer clic a la icona d’afegir que hi ha a la dreta de cada imatge Docker absent.

Registre automàtic

La manera més senzilla d’escanejar totes les imatges Docker d’un projecte Kubernetes és registrar-les automàticament mitjançant un descobriment Docker, i més concretament un descobriment Kubernetes, AKS o EKS amb el perímetre definit a Imatges en execució.

Si les imatges provenen d’un registre Harbor, podeu configurar des de l’administració, entre les eines externes, un escàner de Harbor. Aquest enfocament té l’avantatge que les imatges Docker noves s’escanegen sense demora.

Descobriment dels projectes

Els descobriments Docker per a Kubernetes, AKS i EKS ofereixen al camp Perímetre l’opció Espais de noms. Aquesta opció fa que es llistin els espais de noms presents als pods en lloc de llistar-ne les imatges.

Els projectes descoberts d’aquesta manera es poden afegir manualment com a actius des de la llista d’actius descoberts amb l’acció en bloc Escaneja amb connexions sense agent, i seleccionant com a tipus Projecte Kubernetes.

El registre dels projectes Kubernetes nous es pot automatitzar des del formulari d’edició del descobriment activant el registre automàtic com a connexions sense agent de tipus Projecte Kubernetes.