For the complete documentation index, see llms.txt. This page is also available as Markdown.
Cortex CloudApplication Security

Default service accounts are actively used misconfiguration detected in code

Rule Details

Cortex AppSec Rule ID

APPSEC_K8S_41

Category - Subcategory

Kubernetes - Access Control

Provider

OTHER

Severity

LOW

Framework

Helm, Kubernetes, Kustomize, Terraform, Terraform Plan

Impact

Every Kubernetes installation has a service account called default that is associated with every running pod. Similarly, to enable pods to make calls to the internal API Server endpoint, there is a ClusterIP service called Kubernetes. This combination makes it possible for internal processes to call the API endpoint. We recommend that users create their own user-managed service accounts and grant the appropriate roles to each service account.

How to Fix

Option 1*

  • Resource: ServiceAccount

  • Arguments: If service name is set to default, automountServiceAccountToken should be set to false in order to opt out of automounting API credentials for a service account.

Option 2

  • Resource: RoleBinding / ClusterRoleBinding

  • Arguments: RoleBinding grants the permissions defined in a role to a user or set of users within a specific namespace.

ClusterRoleBinding grants that access cluster-wide. To avoid activating the default service account, it should not be used as a subject in RoleBinding or ClusterRoleBinding resources. [source,go]

apiVersion: v1 kind: ServiceAccount metadata: name: default

  • automountServiceAccountToken: false


apiVersion: v1 kind: ServiceAccount metadata:

  • name:


apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: subjects: -- kind: ServiceAccount

  • name: default


apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: subjects: -- kind: ServiceAccount

  • name: default


Last updated

Was this helpful?