Ir para o conteúdo

Como configuro um grupo de segurança para os pods do AWS Fargate no meu cluster do Amazon EKS?

3 minuto de leitura
0

Quero configurar um grupo de segurança para meus pods do AWS Fargate no meu cluster Amazon Elastic Kubernetes Service (Amazon EKS). Quero usar o grupo de segurança para controlar o tráfego de entrada e saída da rede.

Breve descrição

É possível usar grupos de segurança para pods individuais para anexar seus grupos de segurança personalizados do Amazon Elastic Compute Cloud (Amazon EC2) aos seus pods Fargate em seu cluster do Amazon EKS. Esses grupos de segurança anexados restringem o tráfego de rede de entrada e saída de e para os pods Fargate.

Por padrão, os pods Fargate são configurados automaticamente para usar o grupo de segurança do cluster para se comunicar com o ambiente de gerenciamento do Kubernetes. É possível usar grupos de segurança para configurar regras para tráfego de rede de entrada e saída de e para os pods Fargate.

Os grupos de segurança que você especifica para seus pods Fargate devem atender aos seguintes critérios:

  • Eles devem ter regras que permitam que os pods se comuniquem com o ambiente de gerenciamento do Kubernetes. Certifique-se de especificar o grupo de segurança do cluster como um dos grupos de segurança.
  • Eles devem ter as regras de entrada e saída necessárias para se comunicar com outros pods ou endpoints. Por exemplo, eles devem ter uma regra de saída para pods CoreDNS com porta TCP/UDP 53 para resolução de nomes.

Resolução

Para aplicar grupos de segurança aos seus pods Fargate, conclua as seguintes etapas:

  1. Implante uma política de grupo de segurança do Amazon EKS em seu cluster.
    Exemplo:

    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

    Observação: substitua my-security-group-policy, my-namespace, my-role e my-pod-security-group-id pelos valores da sua configuração. É possível usar serviceAccountSelector em vez de podSelector.

  2. Implante sua aplicação com um rótulo que corresponda à SecurityGroupPolicy.
    Exemplo:

    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. Confirme se seus pods usam grupos de segurança de pods. Se isso acontecer, fargate.amazonaws.com/pod-sg será incluído na anotação. Execute o seguinte comando:

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

    Observação: substitua pod-name pelo nome do seu pod e my_pod_security_group_id pelo ID do grupo de segurança do seu pod.

Informações relacionadas

Apresentando grupos de segurança para pods

AWS OFICIALAtualizada há 2 meses