Saltar al contenido

¿Cómo configuro un grupo de seguridad para los pods de AWS Fargate en mi clúster de Amazon EKS?

3 minutos de lectura
0

Quiero configurar un grupo de seguridad para mis pods de AWS Fargate en mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS). Quiero usar el grupo de seguridad para controlar el tráfico de red entrante y saliente.

Descripción corta

Puedes usar grupos de seguridad para pods individuales para adjuntar tus grupos de seguridad personalizados de Amazon Elastic Compute Cloud (Amazon EC2) a los pods de Fargate de tu clúster de Amazon EKS. Estos grupos de seguridad adjuntos restringen el tráfico de red entrante y saliente hacia y desde pods de Fargate.

De forma predeterminada, los pods de Fargate se configuran automáticamente para usar el grupo de seguridad del clúster para comunicarse con el plano de control de Kubernetes. Puedes usar grupos de seguridad para configurar reglas para el tráfico de red entrante y saliente hacia y desde pods de Fargate.

Los grupos de seguridad que especifiques para tus pods de Fargate deben cumplir los siguientes criterios:

  • Deben tener reglas que permitan a los pods comunicarse con el plano de control de Kubernetes. Asegúrate de especificar el grupo de seguridad del clúster como uno de los grupos de seguridad.
  • Deben tener las reglas de entrada y salida necesarias para comunicarse con otros pods o terminales. Por ejemplo, deben tener una regla de salida para los pods de CoreDNS con el puerto TCP/UDP 53 para la resolución de nombres.

Resolución

Para aplicar grupos de seguridad a tus pods de Fargate, sigue estos pasos:

  1. Despliega una política de grupo de seguridad de Amazon EKS en tu clúster.
    Ejemplo:

    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: Sustituye my-security-group-policy, my-namespace, my-role y my-pod-security-group-id por los valores de tu configuración. Puedes usar serviceAccountSelector en lugar de podSelector.

  2. Despliega tu aplicación con una etiqueta que coincida con SecurityGroupPolicy.
    Ejemplo:

    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. Confirma que tus pods usen grupos de seguridad de pod. Si los usan, fargate.amazonaws.com/pod-sg se incluye en la anotación. Ejecuta el siguiente 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: Sustituye pod-name por el nombre de tu pod y my_pod_security_group_id por el ID de grupo de seguridad de tu pod.

Información relacionada

Introducing security groups for Pods (Introducción a los grupos de seguridad para pods)

OFICIAL DE AWSActualizada hace 2 meses