fix(kubernetes): solve errors in RBAC and Core services (#4063)

This commit is contained in:
Sergio Garcia
2024-05-22 12:07:12 -04:00
committed by GitHub
parent c118e34ada
commit 374567a858
3 changed files with 21 additions and 19 deletions
@@ -13,10 +13,8 @@ class core_minimize_net_raw_capability_admission(Check):
report.status = "PASS"
report.status_extended = f"Pod {pod.name} does not have NET_RAW capability."
for container in pod.containers.values():
if (
container.security_context
and container.security_context.capabilities
and "NET_RAW" in container.security_context.capabilities.add
if "NET_RAW" in getattr(
getattr(container.security_context, "capabilities", None), "add", []
):
report.status = "FAIL"
report.status_extended = f"Pod {pod.name} has NET_RAW capability in container {container.name}."
@@ -2,10 +2,10 @@ import socket
from dataclasses import dataclass
from typing import List, Optional
from kubernetes import client
from kubernetes.client.models import V1PodSecurityContext, V1SecurityContext
from pydantic import BaseModel
from kubernetes import client
from prowler.lib.logger import logger
from prowler.providers.kubernetes.kubernetes_provider import KubernetesProvider
from prowler.providers.kubernetes.lib.service.service import KubernetesService
@@ -177,7 +177,7 @@ class ConfigMap(BaseModel):
name: str
namespace: str
uid: str
data: dict = {}
data: Optional[dict]
labels: Optional[dict]
kubelet_args: list = []
annotations: Optional[dict]
@@ -1,8 +1,8 @@
from typing import Any, List, Optional
from kubernetes import client
from pydantic import BaseModel
from kubernetes import client
from prowler.lib.logger import logger
from prowler.providers.kubernetes.kubernetes_provider import KubernetesProvider
from prowler.providers.kubernetes.lib.service.service import KubernetesService
@@ -51,7 +51,7 @@ class Rbac(KubernetesService):
logger.error(
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
return []
return {}
def __list_role_bindings__(self):
try:
@@ -80,7 +80,7 @@ class Rbac(KubernetesService):
logger.error(
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
return []
return {}
def __list_roles__(self):
try:
@@ -105,7 +105,7 @@ class Rbac(KubernetesService):
logger.error(
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
return []
return {}
def __list_cluster_roles__(self):
try:
@@ -115,14 +115,18 @@ class Rbac(KubernetesService):
"uid": role.metadata.uid,
"name": role.metadata.name,
"metadata": role.metadata,
"rules": [
{
"apiGroups": rule.api_groups,
"resources": rule.resources,
"verbs": rule.verbs,
}
for rule in role.rules
],
"rules": (
[
{
"apiGroups": rule.api_groups,
"resources": rule.resources,
"verbs": rule.verbs,
}
for rule in role.rules
]
if role.rules
else []
),
}
cluster_roles[role.metadata.uid] = ClusterRole(**formatted_role)
return cluster_roles
@@ -130,7 +134,7 @@ class Rbac(KubernetesService):
logger.error(
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
return []
return {}
class Subject(BaseModel):