Formation DevOps | Formation kubernetes​ : 4 - Configurer USER IAM sur Kubernetes AWS (EKS)

www.itgalaxy.io

Ajouter un utilisateur IAM au cluster EKS ?

Créez ClusterRole avec un accès [“get”, “create”,“update”, “delete”, “list”, “watch”] sur [“deployments”, “configmaps”,“pods”, “secrets”, “services”] au
cluster Kubernetes et liez-le au readergroupe via ClusterRoleBinding. Nommez le fichier admin.yaml.

vim admin.yaml

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: admin
rules:
- apiGroups: ["*"]
  resources: ["deployments", "configmaps", "pods", "secrets", "services"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin
subjects:
- kind: Group
  name: admin
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: admin
  apiGroup: rbac.authorization.k8s.io

Appliquez les politiques RBAC avec kubectl.

kubectl apply -f admin.yaml

Créez une stratégie IAM pour permettre aux utilisateurs d’afficher les nœuds et les charges de travail de tous les clusters dans AWS Management Console.
Donne lui un nom AmazonEKSViewNodesAndWorkloadsPolicy.

AmazonEKSViewNodesAndWorkloadsPolicy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeNodegroup",
                "eks:ListNodegroups",
                "eks:DescribeCluster",
                "eks:ListClusters",
                "eks:AccessKubernetesApi",
                "ssm:GetParameter",
                "eks:ListUpdates",
                "eks:ListFargateProfiles"
            ],
            "Resource": "*"
        }
    ]
}

Nous pouvons attacher la stratégie IAM directement à l’utilisateur IAM ou suivre les meilleures pratiques et créer d’abord un groupe IAM. Appelons-le developer set attachons AmazonEKSViewNodesAndWorkloadsPolicyla stratégie IAM.

Ensuite, nous avons besoin d’un utilisateur IAM. Créons-en un et appelons-le developer. Nous allons le placer dans developersle groupe IAM avec un accès en
lecture seule. N’oubliez pas de télécharger les informations d’identification, nous les utiliserons pour configurer AWS cli.

Maintenant, nous devons créer un profil aws local à l’aide developerdes informations d’identification de l’utilisateur. Pour ce faire, ajoutez simplement
–profile un indicateur à aws configure la commande.

aws configure --profile admin

Pour mapper l’utilisateur IAM avec le système Kubernetes RBAC, nous devons modifier aws-authla carte de configuration. Ouvrez la carte de configuration et
ajoutez l’arn de l’utilisateur IAM sous mapUsersla clé.

kubectl edit -n kube-system configmap/aws-auth

Mais cette solution n’est pas recommendé car on peut avoir des erreurs humain et ça peut impacter les accés au cluster

  mapUsers: |
    - userarn: arn:aws:iam::424432388155:user/admin
      username: admin
      groups: 
      - admin

Donc on va manipulier ekctl create iamidentitymapping :

eksctl create iamidentitymapping --cluster basic-cluster --region=eu-west-1 --arn arn:aws:iam::670270766287:user/user1 --group admin --username admin

kubectl describe -n kube-system configmap/aws-auth

Maintenant, nous devons passer à admin user. Nous devons mettre à jour le contexte Kubernetes à l’aide du admin profil.

N’oubliez pas de mettre à jour la région et le nom du cluster.

aws eks update-kubeconfig --region eu-west-1 --name basic-cluster --profile admin

Vous pouvez vérifier le contexte Kubernetes dans lequel vous utilisez developerle profil pour interagir avec le cluster EKS.

kubectl config view --minify

À présent, nous avons créé une stratégie RBAC avec un accès en lecture seule et l’avons mappée à l’ developerutilisateur IAM. Voyons maintenant ce que nous
pouvons faire dans notre cluster. Vous pouvez exécuter kubectl auth can-i pour vérifier l’accès. Vérifions d’abord si nous pouvons obtenir des pods
dans le cluster Kubernetes. La réponse devrait être yes.

kubectl auth can-i get pods




1. Nous contactez


2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io