Salta al contenuto

Come posso configurare un gruppo di sicurezza per i pod AWS Fargate nel mio cluster Amazon EKS?

3 minuti di lettura
0

Desidero configurare un gruppo di sicurezza per i miei pod AWS Fargate nel mio cluster Amazon Elastic Kubernetes Service (Amazon EKS). Desidero utilizzare il gruppo di sicurezza per controllare il traffico di rete in entrata e in uscita.

Breve descrizione

Puoi collegare i gruppi di sicurezza personalizzati di Amazon Elastic Compute Cloud (Amazon EC2) ai pod Fargate nel cluster Amazon EKS utilizzando i gruppi di sicurezza per singoli pod. I gruppi di sicurezza collegati limitano il traffico di rete in entrata e in uscita da e verso i pod Fargate.

Per impostazione predefinita, i pod Fargate sono configurati automaticamente per utilizzare il gruppo di sicurezza del cluster per comunicare con il piano di controllo (control-plane) di Kubernetes. Puoi utilizzare i gruppi di sicurezza per configurare le regole per il traffico di rete in entrata e in uscita da e verso i pod Fargate.

I gruppi di sicurezza specificati per i pod Fargate devono soddisfare i seguenti criteri:

  • Devono avere regole che consentano ai pod di comunicare con il piano di controllo (control-plane) di Kubernetes. Assicurati di specificare il gruppo di sicurezza del cluster come uno dei gruppi di sicurezza.
  • Devono avere le regole in entrata e in uscita necessarie per comunicare con altri pod o endpoint. Ad esempio, devono avere una regola in uscita per i pod CoreDNS con porta TCP/UDP 53 per la risoluzione dei nomi.

Risoluzione

Per applicare i gruppi di sicurezza ai pod Fargate, completa i seguenti passaggi:

  1. Distribuisci una policy del gruppo di sicurezza Amazon EKS nel cluster.
    Esempio:

    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

    Nota: sostituisci my-security-group-policy, my-namespace, my-role e my-pod-security-group-id con i valori della tua configurazione. Puoi utilizzare serviceAccountSelector invece di podSelector.

  2. Distribuisci l'applicazione con un'etichetta che corrisponda a SecurityGroupPolicy.
    Esempio:

    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. Verifica che i pod utilizzino i gruppi di sicurezza per i pod. In tal caso, fargate.amazonaws.com/pod-sg è incluso nell'annotazione. Esegui questo comando:

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

    Nota: sostituisci pod-name con il nome del tuo pod e my_pod_security_group_id con l'ID del gruppo di sicurezza del tuo pod.

Informazioni correlate

Introducing security groups for pods (Gruppi di sicurezza per i pod)

AWS UFFICIALEAggiornata 2 mesi fa