Catégorie : Kubernetes (AKS)

AKS | Cluster Managed Identity

Hello,

Dans cet article, nous allons voir ensemble comment déployer un cluster AKS utilisant les identités managées (Managed Identity). Le service est encore en public preview au moment où j’écris cet article.

L’objectif d’utiliser des identités managées au sein d’un cluster AKS est de pouvoir s’affranchir des services principaux qui ont une date d’expiration. Ce qui peut poser de nombreux problèmes de sécurité sur des clusters AKS de productions, rotation, expiration, …

AKS crée deux identités managées :

  • Identité managée affectée par le système : identité utilisée par le fournisseur de cloud Kubernetes pour créer des ressources Azure au nom de l’utilisateur. Le cycle de vie de l’identité affectée par le système est lié à celui du cluster. L’identité est supprimée en même temps que le cluster.
  • Identité managée affectée par l’utilisateur : identité utilisée pour l’autorisation dans le cluster. Par exemple, l’identité affectée par l’utilisateur sert à autoriser AKS à utiliser des enregistrements de contrôle d’accès (ACR) ou à autoriser le kubelet à obtenir des métadonnées d’Azure.

Etape 1 : Depuis Azure Cloud Shell https://shell.azure.com, nous activons les fonctionnalités preview AKS avec la commande suivante:

az extension update --name aks-preview
az extension list

Etape 2 : Souscrire à la fonctionnalité MSI Preview

az feature register --name MSIPreview --namespace Microsoft.ContainerService

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/MSIPreview')].{Name:name,State:properties.state}"

az provider register --namespace Microsoft.ContainerService

Etape 3 : Créer son cluster avec les identités managées

# Création d'un ressource group
az group create --name aksmsi --location canadacentral

# Création du cluster AKS
az aks create -g aksmsi -n AKSMSICluster --enable-managed-identity

# On obtient les information pour se connecter au cluster
az aks get-credentials --resource-group aksmsi --name AKSMSICluster

Quelques rappels:

  • Les clusters AKS avec des identités managées ne peuvent être activés que pendant la création du cluster.
  • Il est impossible de mettre à jour ou de mettre à niveau des clusters AKS existants pour activer des identités managées.

Dans un prochain article, nous verrons ensemble comment utiliser les identités managées aux niveaux des Pods de notre cluster.

Maxime.

AKS | Pod Security Policy (PSP)

Bonjour,

Dans cet article nous allons voir ensemble comment activer la fonctionnalité de « Pod Security Policy » connue également sous le nom de PSP dans un cluster AKS.

PodSecurityPolicy est un contrôleur d’admission qui confirme si une spécification de pod répond à vos besoins définis. Ces exigences peuvent limiter l’utilisation de conteneurs privilégiés, l’accès à certains types de stockage, ou l’utilisateur/groupe sous lequel le conteneur peut s’exécuter. 

Lorsque vous tentez de déployer une ressource où les spécifications de pod ne répondent pas aux exigences décrites dans la stratégie de sécurité des pods, la requête est refusée. Ce contrôle sur les pods pouvant être planifiés dans le cluster AKS empêche d’éventuelles vulnérabilités de sécurité ou des escalades de privilèges.

Control AspectField Names
Running of privileged containersprivileged
Usage of host namespaceshostPIDhostIPC
Usage of host networking and portshostNetworkhostPorts
Usage of volume typesvolumes
Usage of the host filesystemallowedHostPaths
White list of FlexVolume driversallowedFlexVolumes
Allocating an FSGroup that owns the pod’s volumesfsGroup
Requiring the use of a read only root file systemreadOnlyRootFilesystem
The user and group IDs of the containerrunAsUserrunAsGroupsupplementalGroups
Restricting escalation to root privilegesallowPrivilegeEscalationdefaultAllowPrivilegeEscalation
Linux capabilitiesdefaultAddCapabilitiesrequiredDropCapabilitiesallowedCapabilities
The SELinux context of the containerseLinux
The Allowed Proc Mount types for the containerallowedProcMountTypes
The AppArmor profile used by containersannotations
The seccomp profile used by containersannotations
The sysctl profile used by containersforbiddenSysctls,allowedUnsafeSysctls

Activer la fonctionnalité PSP dans un cluster AKS existant:

# Install the aks-preview extension
az extension add --name aks-preview

# Update the extension to make sure you have the latest version installed 
az extension update --name aks-preview

az feature register --name PodSecurityPolicyPreview --namespace Microsoft.ContainerService

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/PodSecurityPolicyPreview')].{Name:name,State:properties.state}"

az provider register --namespace Microsoft.ContainerService

# Enable Pod Security Policy
az aks update \
     --resource-group myResourceGroup \
     --name myAKSCluster \
     --enable-pod-security-policy 

Documentations :

AKS | Désactiver le Dashboard de votre cluster

Bonjour,

Dans cet article nous allons voir ensemble comment « désactiver/supprimer » le dashboard de votre cluster AKS.

Pour cela, je vous invite à utiliser la commande suivante:

az aks disable-addons -a kube-dashboard --resource-group Nom_RG --name Nom_AKS_Cluster

Bonne journée,

Maxime.