Direkt zum Inhalt

Wie konfiguriere ich eine Sicherheitsgruppe für AWS-Fargate-Pods in meinem Amazon-EKS-Cluster?

Lesedauer: 2 Minute
0

Ich möchte eine Sicherheitsgruppe für meine AWS-Fargate-Pods in meinem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster konfigurieren. Ich möchte die Sicherheitsgruppe verwenden, um den eingehenden und ausgehenden Netzwerkdatenverkehr zu kontrollieren.

Kurzbeschreibung

Du kannst Sicherheitsgruppen für einzelne Pods verwenden, um die benutzerdefinierten Amazon Elastic Compute Cloud (Amazon EC2)-Sicherheitsgruppen an die Fargate-Pods in deinem Amazon-EKS-Cluster anzufügen. Diese angefügten Sicherheitsgruppen schränken den eingehenden und ausgehenden Netzwerkdatenverkehr zu und von Fargate-Pods ein.

Standardmäßig werden Fargate-Pods automatisch so konfiguriert, dass sie die Cluster-Sicherheitsgruppe für die Kommunikation mit der Kubernetes-Steuerebene verwenden. Du kannst Sicherheitsgruppen verwenden, um Regeln für den eingehenden und ausgehenden Netzwerkdatenverkehr zu und von Fargate Pods zu konfigurieren.

Die Sicherheitsgruppen, die du für Fargate-Pods angibst, müssen die folgenden Kriterien erfüllen:

  • Sie müssen über Regeln verfügen, die es den Pods ermöglichen, mit der Kubernetes-Steuerebene zu kommunizieren. Stelle sicher, dass du die Cluster-Sicherheitsgruppe als eine der Sicherheitsgruppen angibst.
  • Sie müssen über die erforderlichen Regeln für eingehenden und ausgehenden Datenverkehr verfügen, um mit anderen Pods oder Endpunkten kommunizieren zu können. Beispielsweise müssen sie eine Regel für ausgehenden Datenverkehr für CoreDNS-Pods mit TCP/UDP 53-Port für die Namensauflösung haben.

Lösung

Gehe wie folgt vor, um Sicherheitsgruppen auf die Fargate-Pods anzuwenden:

  1. Stelle eine Amazon-EKS-Sicherheitsgruppenrichtlinie für den Cluster bereit.
    Beispiel:

    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

    Hinweis: Ersetze my-security-group-policy, my-namespace, my-role und my-pod-security-group-id durch die Werte aus deiner Konfiguration. Du kannst serviceAccountSelector anstelle von podSelector verwenden.

  2. Stelle deine Anwendung mit einer Beschriftung bereit, die der SecurityGroupPolicy entspricht.
    Beispiel:

    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. Vergewissere dich, dass die Pods Pod-Sicherheitsgruppen verwenden. Wenn ja, dann ist fargate.amazonaws.com/pod-sg in der Anmerkung enthalten. Führe den folgenden Befehl aus:

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

    Hinweis: Ersetze pod-name durch den Namen deines Pods und my_pod_security_group_id durch die Sicherheitsgruppen-ID deines Pods.

Ähnliche Informationen

Einführung von Sicherheitsgruppen für Pods

AWS OFFICIALAktualisiert vor 2 Monaten