Amazon EKS 클러스터의 보안 에이전트를 수동으로 관리 - 아마존 GuardDuty

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 클러스터의 보안 에이전트를 수동으로 관리

이 섹션에서는 런타임 모니터링을 활성화한 후 Amazon EKS 애드온 에이전트 (GuardDuty 에이전트) 를 관리하는 방법을 설명합니다. 런타임 모니터링을 사용하려면 런타임 모니터링을 활성화하고 Amazon EKS 애드온 () 을 구성해야 합니다. aws-guardduty-agent 이 두 단계 중 하나만 수행해도 잠재적 위협을 GuardDuty 탐지하거나 탐지 결과를 생성하는 데 도움이 되지 않습니다.

보안 에이전트를 GuardDuty 배포하기 위한 사전 요구 사항

이 섹션에서는 EKS 클러스터용 GuardDuty 보안 에이전트를 수동으로 배포하기 위한 사전 요구 사항을 설명합니다. 계속하기 전에 계정에 대한 런타임 모니터링을 이미 구성했는지 확인하십시오. 런타임 모니터링을 구성하지 않으면 GuardDuty 보안 에이전트 (EKS 애드온) 가 작동하지 않습니다. 자세한 정보는 GuardDuty 런타임 모니터링 활성화을 참조하세요. 이 단계들을 완료한 후 보안 에이전트 배포 GuardDuty 섹션을 참조하세요.

선호하는 액세스 방법을 선택하여 Amazon VPC 엔드포인트를 생성합니다.

Console
VPC 엔드포인트 생성
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 여세요.

  2. 탐색 창의 Virtual Private Cloud에서 엔드포인트를 선택합니다.

  3. 엔드포인트 생성을 선택합니다.

  4. 엔드포인트 생성 페이지에서 서비스 범주에 대해 기타 엔드포인트 서비스를 선택합니다.

  5. 서비스 이름com.amazonaws.us-east-1.guardduty-data를 입력합니다.

    us-east-1을 올바른 리전으로 바꿉니다. ID에 속하는 EKS 클러스터와 동일한 지역이어야 합니다. AWS 계정

  6. 서비스 확인을 선택합니다.

  7. 서비스 이름이 성공적으로 확인되면 클러스터가 상주하는 VPC를 선택합니다. 다음 정책을 추가하여 VPC 엔드포인트 사용을 지정된 계정으로만 제한합니다. 이 정책 아래에 제공된 조직 Condition을 사용하여 다음 정책을 업데이트하고 엔드포인트에 대한 액세스를 제한할 수 있습니다. 조직의 특정 계정 ID에 VPC 엔드포인트 지원을 제공하려면 Organization condition to restrict access to your endpoint 섹션을 참조하세요.

    { "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } }, "Action": "*", "Resource": "*", "Effect": "Deny", "Principal": "*" } ] }

    aws:PrincipalAccount 계정 ID는 VPC 및 VPC 엔드포인트를 포함하는 계정과 일치해야 합니다. 다음 목록은 VPC 엔드포인트를 다른 AWS 계정 ID와 공유하는 방법을 보여줍니다.

    엔드포인트 액세스를 제한하는 조직 조건
    • VPC 엔드포인트에 액세스할 계정을 여러 개 지정하려면 "aws:PrincipalAccount": "111122223333"을 다음과 같이 바꿉니다.

      "aws:PrincipalAccount": [ "666666666666", "555555555555" ]
    • 조직의 모든 멤버가 VPC 엔드포인트에 액세스할 수 있도록 허용하려면 "aws:PrincipalAccount": "111122223333"을 다음과 같이 바꿉니다.

      "aws:PrincipalOrgID": "o-abcdef0123"
    • 리소스 액세스를 조직 ID로 제한하려면 정책에 ResourceOrgID를 추가합니다.

      자세한 내용은 ResourceOrgID를 참조하십시오.

      "aws:ResourceOrgID": "o-abcdef0123"
  8. 추가 설정에서 DNS 이름 활성화를 선택합니다.

  9. 서브넷에서 클러스터가 상주하는 서브넷을 선택합니다.

  10. 보안 그룹에서 VPC(또는 EKS 클러스터)로부터 인바운드 포트 443이 활성화된 보안 그룹을 선택합니다. 인바운드 포트 443이 활성화된 보안 그룹이 아직 없는 경우 보안 그룹을 생성합니다.

    VPC(또는 클러스터)에 대한 인바운드 권한을 제한하는 도중 문제가 발생하는 경우 모든 IP 주소(0.0.0.0/0)로부터의 인바운드 443 포트에 대한 지원을 제공하세요.

API/CLI
  • 호출 CreateVpcEndpoint.

  • 파라미터에 대해 다음 값을 사용합니다.

    • 서비스 이름com.amazonaws.us-east-1.guardduty-data를 입력합니다.

      us-east-1을 올바른 리전으로 바꿉니다. ID에 속한 EKS 클러스터와 동일한 지역이어야 합니다. AWS 계정

    • DNSOptions에서 true로 설정하여 프라이빗 DNS 옵션을 활성화합니다.

  • 에 대해서는 AWS Command Line Interface을 참조하십시오 create-vpc-endpoint.

Amazon EKS용 GuardDuty 보안 에이전트 (애드온) 파라미터를 구성합니다.

Amazon EKS용 GuardDuty 보안 에이전트의 특정 파라미터를 구성할 수 있습니다. 이 지원은 GuardDuty 보안 에이전트 버전 1.5.0 이상에서 사용할 수 있습니다. 최신 애드온 버전에 대한 자세한 내용은 을 참조하십시오. GuardDuty Amazon EKS 클러스터용 보안 에이전트

보안 에이전트 구성 스키마를 업데이트해야 하는 이유는 무엇입니까?

GuardDuty 보안 에이전트의 구성 스키마는 Amazon EKS 클러스터 내의 모든 컨테이너에서 동일합니다. 기본값이 관련 워크로드 및 인스턴스 크기와 일치하지 않는 경우 CPU 설정, 메모리 설정 및 설정을 구성하는 것을 고려해 보십시오. PriorityClass dnsPolicy Amazon EKS 클러스터의 GuardDuty 에이전트를 관리하는 방법에 관계없이 이러한 파라미터의 기존 구성을 구성하거나 업데이트할 수 있습니다.

구성된 파라미터를 사용한 자동화된 에이전트 구성 동작

사용자를 대신하여 보안 에이전트 (EKS 애드온) 를 GuardDuty 관리하는 경우 필요에 따라 애드온을 업데이트합니다. GuardDuty 구성 가능한 매개 변수의 값을 기본값으로 설정합니다. 하지만 여전히 매개변수를 원하는 값으로 업데이트할 수 있습니다. 이로 인해 충돌이 발생하는 경우 충돌 해결의 기본 옵션은 입니다. None

구성 가능한 파라미터 및 값

애드온 파라미터를 구성하는 단계에 대한 자세한 내용은 다음을 참조하십시오.

다음 표는 Amazon EKS 추가 기능을 수동으로 배포하거나 기존 추가 기능 설정을 업데이트하는 데 사용할 수 있는 범위와 값을 제공합니다.

CPU 설정

파라미터

기본값

구성 가능한 범위

요청

200m

200미터에서 1만 미터 사이 (둘 다 포함)

Limits

1,000m

메모리 설정

파라미터

기본값

구성 가능한 범위

요청

256Mi

256만~20000마일 사이, 둘 다 포함

Limits

1024Mi

PriorityClass 설정

Amazon EKS 애드온을 GuardDuty 생성할 때 PriorityClass 할당되는 애드온은 다음과 같습니다. aws-guardduty-agent.priorityclass 즉, 에이전트 포드의 우선순위에 따라 어떤 조치도 취해지지 않습니다. 다음 PriorityClass 옵션 중 하나를 선택하여 이 애드온 매개 변수를 구성할 수 있습니다.

구성 가능 PriorityClass

preemptionPolicy

preemptionPolicy설명

포드 값

aws-guardduty-agent.priorityclass

Never

액션 없음

1000000

aws-guardduty-agent.priorityclass-high

PreemptLowerPriority

이 값을 할당하면 에이전트 포드 값보다 낮은 우선순위 값으로 실행 중인 파드를 선점하게 됩니다.

100000000

system-cluster-critical1

PreemptLowerPriority

2000000000

system-node-critical1

PreemptLowerPriority

2000001000

1 쿠버네티스는 다음과 같은 두 가지 옵션을 제공합니다 — 및. PriorityClass system-cluster-critical system-node-critical 자세한 내용은 쿠버네티스 PriorityClass설명서를 참조하십시오.

dnsPolicy 설정

쿠버네티스가 지원하는 다음 DNS 정책 옵션 중 하나를 선택하십시오. 구성이 지정되지 않은 경우 ClusterFirst 이 기본값으로 사용됩니다.

  • ClusterFirst

  • ClusterFirstWithHostNet

  • Default

이러한 정책에 대한 자세한 내용은 쿠버네티스 설명서에서 파드의 DNS 정책을 참조하십시오.

보안 에이전트 배포 GuardDuty

이 섹션에서는 특정 EKS 클러스터에 처음으로 GuardDuty 보안 에이전트를 배포하는 방법을 설명합니다. 이 섹션을 진행하기 전에 사전 요구 사항을 이미 설정하고 계정에 대한 런타임 모니터링을 활성화했는지 확인하십시오. 런타임 모니터링을 활성화하지 않으면 GuardDuty 보안 에이전트 (EKS 애드온) 가 작동하지 않습니다.

원하는 액세스 방법을 선택하여 처음으로 GuardDuty 보안 에이전트를 배포하십시오.

Console
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 클러스터 이름을 선택합니다.

  3. 추가 기능(Add-ons) 탭을 선택합니다.

  4. 추가 기능 더 가져오기를 선택합니다.

  5. 애드온 선택 페이지에서 Amazon GuardDuty 런타임 모니터링을 선택합니다.

  6. 선택한 추가 기능 설정 구성 페이지에서 기본 설정을 사용합니다. EKS 애드온의 상태가 활성화 필요인 경우 활성화를 선택합니다. GuardDuty 이 작업을 수행하면 GuardDuty 콘솔이 열리고 계정에 대한 런타임 모니터링을 구성할 수 있습니다.

  7. 계정에 대한 런타임 모니터링을 구성한 후 Amazon EKS 콘솔로 다시 전환하십시오. EKS 추가 기능의 상태설치 준비 완료로 변경되었을 것입니다.

  8. (선택 사항) EKS 애드온 구성 스키마 제공

    애드온 버전의 경우 v1.5.0 이상을 선택하면 런타임 모니터링에서 에이전트의 특정 매개 변수 구성을 지원합니다. GuardDuty 매개 변수 범위에 대한 자세한 내용은 을 참조하십시오. EKS 애드온 파라미터 구성

    1. 선택적 구성 설정을 확장하여 구성 가능한 매개변수와 예상 값 및 형식을 확인합니다.

    2. 매개변수를 설정합니다. 값은 에 제공된 범위 내에 있어야 EKS 애드온 파라미터 구성 합니다.

    3. 변경 내용 저장을 선택하여 고급 구성을 기반으로 애드온을 생성합니다.

    4. 충돌 해결 방법의 경우 매개 변수 값을 기본값이 아닌 값으로 업데이트할 때 선택한 옵션을 사용하여 충돌을 해결합니다. 나열된 옵션에 대한 자세한 내용은 Amazon EKS API 참조의 충돌 해결을 참조하십시오.

  9. 다음을 선택합니다.

  10. 검토 및 생성 페이지에서 세부 정보를 확인한 다음 생성을 선택합니다.

  11. 클러스터 세부 정보로 돌아가서 리소스 탭을 선택합니다.

  12. 접두사가 있는 새 포드를 볼 수 있습니다. aws-guardduty-agent

API/CLI

다음 옵션 중 하나를 사용하여 Amazon EKS 추가 기능 에이전트(aws-guardduty-agent)를 구성할 수 있습니다.

  • 계정을 CreateAddon위해 실행하세요.

  • 참고

    애드온의 version 경우 v1.5.0 이상을 선택하면 런타임 모니터링이 에이전트의 특정 매개 변수 구성을 지원합니다. GuardDuty 자세한 정보는 EKS 애드온 파라미터 구성을 참조하세요.

    요청 파라미터에 대해 다음 값을 사용합니다.

    • addonNameaws-guardduty-agent를 입력합니다.

      애드온 버전 v1.5.0 이상에서 지원되는 구성 가능한 값을 사용할 때 다음 AWS CLI 예제를 사용할 수 있습니다. 빨간색으로 강조 표시되고 구성된 값과 연결된 자리 표시자 값을 바꿔야 합니다. Example.json

      aws eks create-addon --region us-east-1 --cluster-name myClusterName --addon-name aws-guardduty-agent --addon-version v1.5.0-eksbuild.1 --configuration-values 'file://example.json'
      예제.json
      { "priorityClassName": "aws-guardduty-agent.priorityclass-high", "dnsPolicy": "Default", "resources": { "requests": { "cpu": "237m", "memory": "512Mi" }, "limits": { "cpu": "2000m", "memory": "2048Mi" } } }
    • 지원되는 addonVersion에 대한 내용은 보안 에이전트가 지원하는 쿠버네티스 버전 GuardDuty 섹션을 참조하세요.

  • 또는 사용할 수도 있습니다. AWS CLI자세한 내용은 애드온 만들기를 참조하십시오.

구성 스키마 업데이트 확인

매개변수를 구성한 후 다음 단계를 수행하여 구성 스키마가 업데이트되었는지 확인하십시오.

  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택합니다.

  3. 클러스터 페이지에서 업데이트를 확인하려는 클러스터 이름을 선택합니다.

  4. 리소스 탭을 선택합니다.

  5. 리소스 유형 창의 워크로드에서 선택합니다 DaemonSets.

  6. 선택합니다 aws-guardduty-agent.

  7. aws-guardduty-agent페이지에서 Raw view를 선택하여 형식이 지정되지 않은 JSON 응답을 확인합니다. 구성 가능한 매개변수에 제공된 값이 표시되는지 확인하십시오.

확인한 후 GuardDuty 콘솔로 전환하십시오. 해당하는 AWS 리전 항목을 선택하고 Amazon EKS 클러스터의 커버리지 상태를 확인하십시오. 자세한 정보는 Amazon EKS 클러스터 적용 범위을 참조하세요.