비공개 컨테이너 레지스트리에 인증
프라이빗 컨테이너 레지스트리를 사용하는 경우, 레지스트리로의 인증 정보를 포함하는 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 파일에 입력할 내용이 달라집니다. 파일은 여러 레지스트리에 대해 인증 정보를 포함할 수 있습니다.
이미 $HOME/.docker/config.json에 사용자 인증 정보가 있는 경우, 이 정보를 dockercfg.json 파일로 복사합니다.
만약 $HOME/.docker/config.json 파일에 auth 항목이 비어있다면, 다음 명령을 실행하고 출력을 dockercfg.json의 auth 항목에 붙여넣기 하세요:
echo -n 'username:password' | base64dockercfg.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을 사용하는 경우 다음을 추가하세요:
다른 레지스트리에 대해 서로 다른 자격 증명 도우미를 구성할 수 있습니다.
Kubernetes 비밀 생성
다음 명령을 실행하여 Kubernetes에 비밀을 생성하세요:
```
Last updated