Passer au contenu

Comment configurer un groupe de sécurité pour les modules AWS Fargate dans mon cluster Amazon EKS ?

Lecture de 3 minute(s)
0

Je souhaite configurer un groupe de sécurité pour mes pods AWS Fargate dans mon cluster Amazon Elastic Kubernetes Service (Amazon EKS). Je souhaite utiliser le groupe de sécurité pour contrôler le trafic réseau entrant et sortant.

Brève description

Vous pouvez utiliser des groupes de sécurité pour des pods individuels afin d'associer vos groupes de sécurité Amazon Elastic Compute Cloud (Amazon EC2) personnalisés à vos pods Fargate dans votre cluster Amazon EKS. Ces groupes de sécurité attachés limitent le trafic réseau entrant et sortant à destination et en provenance des pods Fargate.

Par défaut, les pods Fargate sont automatiquement configurés pour utiliser le groupe de sécurité du cluster afin de communiquer avec le plan de contrôle Kubernetes. Vous pouvez utiliser des groupes de sécurité pour configurer des règles pour le trafic réseau entrant et sortant à destination et en provenance des pods Fargate.

Les groupes de sécurité que vous spécifiez pour vos pods Fargate doivent répondre aux critères suivants :

  • Ils doivent disposer de règles permettant aux pods de communiquer avec le plan de contrôle Kubernetes. Assurez-vous de spécifier le groupe de sécurité du cluster comme l'un des groupes de sécurité.
  • Ils doivent disposer des règles entrantes et sortantes nécessaires pour communiquer avec d'autres pods ou points de terminaison. Par exemple, ils doivent disposer d'une règle sortante vers les pods CoreDNS dotés d'un port TCP/UDP 53 pour la résolution du nom.

Résolution

Pour appliquer des groupes de sécurité à vos pods Fargate, procédez comme suit :

  1. Déployez une politique de groupe de sécurité Amazon EKS sur votre cluster.
    Exemple :

    apiVersion: vpcresources.k8s.aws/v1beta1
    kind: SecurityGroupPolicy
    metadata:
      name: my-security-group-policy
      namespace: my-namespace
    spec:
      podSelector:
        matchLabels:
          role: my-role
      securityGroups:
        groupIds:
          - my_pod_security_group_id

    Remarque : Remplacez my-security-group-policy, my-namespace, my-role et my-pod-security-group-id par les valeurs de votre configuration. Vous pouvez utiliser serviceAccountSelector à la place de podSelector.

  2. Déployez votre application avec une étiquette correspondant à SecurityGroupPolicy.
    Exemple :

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      namespace: my-namespace
      labels:
        app: my-app
    spec:
      replicas: 4
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
            role: my-role
        spec:
          terminationGracePeriodSeconds: 120
          containers:
          - name: nginx
            image: public.ecr.aws/nginx/nginx:1.23
            ports:
            - containerPort: 80
  3. Vérifiez que vos pods utilisent les groupes de sécurité des pods. Si tel est le cas, fargate.amazonaws.com/pod-sg est inclus dans l'annotation. Exécutez la commande suivante :

    kubectl describe pod pod name -n <namespace> | grep fargate.amazonaws.com/pod-sg
                          fargate.amazonaws.com/pod-sg: my_pod_security_group_id,...

    Remarque : Remplacez pod-name par le nom de votre pod, et my_pod_security_group_id par l'ID du groupe de sécurité de votre pod.

Informations connexes

Présentation des groupes de sécurité pour les pods

AWS OFFICIELA mis à jour il y a 2 mois