Amazon Elastic Kubernetes Service (Amazon EKS)에 Snyk 컨트롤러 설치

circle-info

Snyk Controller 설치를 위한 전제 조건을 검토했는지 확인하십시오.

circle-info

설치 단계는 동일한 AWS 계정으로 EKS와 ECR을 사용할 때 가장 잘 작동합니다. 다른 설정이 있는 경우 Snyk 지원arrow-up-right에 문의하십시오.

Snyk Controller를 설치하면 실행 중인 EKS 워크로드를 가져와 테스트하고 워크로드를 덜 안전하게 만들 수 있는 관련 이미지 및 구성의 취약점을 식별할 수 있습니다. 워크로드를 가져온 후 Snyk은 워크로드를 계속 모니터링하여 새로운 이미지가 배포되고 워크로드 구성이 변경됨에 따라 추가 보안 문제를 식별합니다.

아래 설명된 단계는 ECR에서 개인 이미지를 가져오고 스캔하도록 Snyk Controller를 구성하는 지침을 제공합니다.

Amazon EKS를 설치하려면:

  1. Kubernetes 환경에 액세스합니다. Helm에 Snyk Charts 리포지토리를 추가하기 위해 다음 명령을 실행합니다.

helm repo add snyk-charts https://snyk.github.io/kubernetes-monitor --force-update
  1. 리포지토리가 추가되면 Snyk Controller에 대한 고유한 네임스페이스를 생성합니다.

kubectl create namespace snyk-monitor
circle-info

Kubernetes 애플리케이션의 모범 사례로, 컨트롤러 리소스를 쉽게 격리하기 위해 고유한 네임스페이스를 사용하십시오.

네임스페이스 snyk-monitor를 기억해 두십시오. 다른 리소스를 구성할 때 사용하게 됩니다.

  1. "dockercfg.json"이라는 파일을 생성하고 다음 예제와 일치하는지 확인합니다.

{
  "credsStore": "ecr-login"
}

개인 레지스트리에 대한 추가 설정은 개인 컨테이너 레지스트리에 인증을 참조하십시오.

  1. 통합 ID, 서비스 계정 토큰 및 dockercfg.json 파일을 포함하는 Kubernetes 시크릿을 생성합니다.

kubectl create secret generic snyk-monitor \
        -n snyk-monitor --from-file=dockercfg.json \
        --from-literal=integrationId=abcd1234-abcd-1234-abcd-1234abcd1234 \
        --from-literal=serviceAccountApiToken=bdca4123-dbca-4343-bbaa-1313cbad4231
  1. 노드에 대한 정책 또는 역할을 연결합니다. 아래 옵션 중 하나를 사용하여 이를 수행할 수 있습니다.

워커 노드에 정책 연결

  1. NodeInstanceRole 정책을 연결합니다. Amazon EKS와 함께 Amazon ECR 이미지 사용arrow-up-right을 참조하십시오.

  2. EKS 워커 노드에 AmazonEC2ContainerRegistryReadOnly 정책을 연결합니다. 이제 Snyk Controller가 해당 워커 노드에서 실행될 때 개인 이미지를 가져올 수 있습니다.

노드 그룹에 대한 EKS 노드 역할 생성 및 IAM 역할에 대한 신뢰 관계 추가

  1. Amazon EKS 노드 IAM 역할arrow-up-right의 지침을 따르고 기존 노드 역할을 확인합니다. AmazonEC2ContainerRegistryReadOnly 정책을 연결했는지 확인하십시오.

  2. Snyk Controller가 IAM 역할을 성공적으로 맡고 ECR에서 이미지를 가져오려면 역할의 신뢰 정책이 EKS 클러스터의 OIDC 공급자를 신뢰하도록 구성되어야 합니다. JSON 형식으로 신뢰 정책 문서를 생성하고 Snyk Controller가 사용할 IAM 역할에 이 신뢰 정책 문서를 적용하십시오.

  1. Node IAM Role ARN이 표시되는 EKS 노드 그룹 페이지의 Details 탭으로 이동합니다.

  1. 다음 내용으로 .yaml을 생성합니다.

  1. Snyk Controller를 설치합니다.

서비스 계정에 대한 IAM 역할을 생성한 후 새로 생성된 YAML 파일로 Snyk Controller를 설치하여 Helm 차트의 값을 덮어쓸 수 있습니다.

Last updated