비공개 컨테이너 레지스트리에 인증

프라이빗 컨테이너 레지스트리를 사용하는 경우, 레지스트리로의 인증 정보를 포함하는 dockercfg.json 파일을 생성해야 합니다. 그런 다음, snyk-monitor로 불려야 하는 시크릿을 생성해야 합니다.

dockercfg.json 파일은 Monitor가 프라이빗 레지스트리에서 이미지를 찾을 수 있도록 필요합니다. 보통 사용자 인증 정보는 $HOME/.docker/config.json에 저장됩니다. 그러나, 인증 정보는 dockercfg.json 파일에도 추가되어 있어야 합니다. 사용자 인증 정보가 $HOME/.docker/config.json에만 저장되어 있는 경우, Snyk Controller는 이러한 레지스트리에 액세스할 수 없습니다.

아래 단계에서는 프라이빗 컨테이너 레지스트리에 인증하는 방법을 설명합니다.

dockercfg.json 파일 구성

dockercfg.json 파일을 생성하고 이 파일에 사용자 인증 정보를 저장합니다.

인증 정보가 포함된 파일을 dockercfg.json으로 명명하는 것이 중요합니다. 이 파일명은 snyk-monitor에서 필요합니다.

dockercfg.json 파일의 서식이 올바르게 유지되어야 합니다. 줄 바꿈 문자와 공백이 포함되어 있어야 합니다. 올바르지 않은 파일은 인증 실패로 이어질 수 있습니다.

클러스터가 실행되는 위치와 레지스트리가 실행되는 위치에 따라 dockercfg.json 파일에 입력할 내용이 달라집니다. 파일은 여러 레지스트리에 대해 인증 정보를 포함할 수 있습니다.

이미 $HOME/.docker/config.json에 사용자 인증 정보가 있는 경우, 이 정보를 dockercfg.json 파일로 복사합니다.

만약 $HOME/.docker/config.json 파일에 auth 항목이 비어있다면, 다음 명령을 실행하고 출력을 dockercfg.jsonauth 항목에 붙여넣기 하세요:

echo -n 'username:password' | base64

dockercfg.json 파일 구성 예제

Nexus 이외의 프라이빗 레지스트리

만약 클러스터가 GKE에서 실행되지 않거나, GKE에서 실행 중이지만 다른 프라이빗 레지스트리에서 이미지를 가져온다면, dockercfg.json 파일에는 다음이 포함되어야 합니다:

{  
  "auths": {
    "gcr.io": {
      "auth": "BASE64로 인코딩된 인증 정보"
    },
    // 필요한 경우 다른 레지스트리를 추가합니다. 예시:
    "<yourdomain>.azurecr.io": {
      "auth": "BASE64로 인코딩된 인증 정보"
    }
  }
}

Nexus 레지스트리

Nexus 레지스트리를 사용하는 경우, dockercfg.json 파일은 다음과 같아야 합니다:

Artifactory 컨테이너 레지스트리

여러 개인 저장소를 호스팅하는 Artifactory 컨테이너 레지스트리를 사용하는 경우, dockercfg.json 파일은 다음과 같아야 합니다:

GKE에서 GCR을 사용하는 경우

클러스터가 GKE에서 실행되고 GCR를 사용하는 경우, dockercfg.json 파일은 다음과 같아야 합니다:

GKE에서 Google Artifact Registry (GAR)를 사용하는 경우

클러스터가 GKE에서 실행되고 GAR를 사용하는 경우, dockercfg.json 파일은 다음과 같아야 합니다:

이 방식은 서비스 계정을 생성하는 것에 의존합니다. Google Cloud 서비스 계정 키를 참조하십시오. 옵션 단계를 따라 파일을 base64로 인코딩하는 것이 중요합니다.

“auth” 줄은 다음 명령어로 생성됩니다. 여기서 사용자 이름은 json_key_base64이고, 비밀번호는 base64 json 키 파일의 전체 내용입니다.

예를 들어, 이 명령어의 출력은 dockercfg.json 파일의 “auth” 줄에 사용됩니다.

EKS에서 ECR을 사용하는 경우

클러스터가 EKS에서 실행되고 ECR을 사용하는 경우, 다음을 추가합니다:

특정 ECR 레지스트리에 대해 이 자격 증명 도우미를 사용하려면, ECR 레지스트리의 URI로 credHelpers 섹션을 생성하세요:

AKS에서 ACR 사용하는 경우

클러스터가 AKS에서 실행되고 ACR을 사용하는 경우 다음을 추가하세요:

또한, AKS에서 실행되고 ACR을 사용하는 클러스터의 경우, Entra ID Workload Identity 서비스 계정을 참조하세요. snyk-monitor ServiceAccount에 레이블 및 어노테이션을 구성해야 할 수도 있습니다.

다른 레지스트리에 대해 서로 다른 자격 증명 도우미를 구성할 수 있습니다.

Kubernetes 비밀 생성

다음 명령을 실행하여 Kubernetes에 비밀을 생성하세요:

```

Last updated