내용으로 건너뛰기

Amazon EKS 클러스터에서 AWS Fargate 포드의 보안 그룹을 구성하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에서 AWS Fargate 포드의 보안 그룹을 구성하려고 합니다. 보안 그룹을 사용하여 인바운드 및 아웃바운드 네트워크 트래픽을 제어하려고 합니다.

간략한 설명

개별 포드의 보안 그룹을 사용하여 사용자 지정 Amazon Elastic Compute Cloud(Amazon EC2) 보안 그룹을 Amazon EKS 클러스터의 Fargate 포드에 연결할 수 있습니다. 이러한 연결된 보안 그룹은 Fargate 포드로 들어오고 나가는 인바운드 및 아웃바운드 네트워크 트래픽을 제한합니다.

기본적으로 Fargate 포드는 클러스터 보안 그룹을 사용하여 Kubernetes 컨트롤 플레인과 통신하도록 자동으로 구성됩니다. 보안 그룹을 사용하여 Fargate 포드로 들어오고 나가는 인바운드 및 아웃바운드 네트워크 트래픽에 대한 규칙을 구성할 수 있습니다.

Fargate 포드에 지정한 보안 그룹은 다음 기준을 충족해야 합니다.

  • 포드가 Kubernetes 컨트롤 플레인과 통신할 수 있도록 허용하는 규칙이 있어야 합니다. 클러스터 보안 그룹을 보안 그룹 중 하나로 지정해야 합니다.
  • 다른 포드 또는 엔드포인트와 통신하기 위해 필요한 인바운드 및 아웃바운드 규칙이 있어야 합니다. 예를 들어 이름 확인을 위해 TCP/UDP 53 포트가 있는 CoreDNS 포드에 대한 아웃바운드 규칙이 있어야 합니다.

해결 방법

Fargate 포드에 보안 그룹을 적용하려면 다음 단계를 완료하십시오.

  1. 클러스터에 Amazon EKS 보안 그룹 정책을 배포합니다.
    예:

    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

    참고: my-security-group-policy, my-namespace, my-rolemy-pod-security-group-id를 구성의 값으로 바꾸십시오. podSelector 대신 serviceAccountSelector를 사용할 수 있습니다.

  2. SecurityGroupPolicy와 일치하는 레이블을 사용하여 애플리케이션을 배포합니다.
    예:

    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. 포드가 포드 보안 그룹을 사용하는지 확인합니다. 사용하는 경우 fargate.amazonaws.com/pod-sg가 주석에 포함됩니다. 다음 명령을 실행하십시오.

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

    참고: pod-name을 포드의 이름으로 바꾸고 my_pod_security_group_id를 포드의 보안 그룹 ID로 바꾸십시오.

관련 정보

포드에 대한 보안 그룹 소개

AWS 공식업데이트됨 2달 전