다음을 통해 공유


Azure CLI를 사용하여 Azure Container Registry에서 아티팩트 캐시 사용

이 문서에서는 Azure CLI를 사용하여 인증 여부에 관계없이 ACR(Azure Container Registry)에서 아티팩트 캐시 기능을 사용하도록 설정하는 방법을 알아봅니다.

여기에 나열된 필수 구성 요소 외에도 활성 구독이 있는 Azure 계정이 필요합니다. 무료로계정을 만드세요.

필수 조건

이 문서에서는 명명 MyRegistry된 예제 ACR 인스턴스를 사용합니다.

자격 증명 만들기

자격 증명을 구성하기 전에 Azure Key Vault에 비밀을 만들고 저장하고 Key Vault에서 비밀을 검색할 수 있는지 확인합니다.

  1. az acr credential set create를 실행합니다.

    az acr credential-set create 
    -r MyRegistry \
    -n MyDockerHubCredSet \
    -l docker.io \ 
    -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \
    -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
    
  2. 실행 az acr credential set update 하여 자격 증명 집합의 사용자 이름 또는 암호 Key Vault 비밀 ID를 업데이트합니다.

    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. az acr credential-set show를 실행하여 자격 증명을 표시합니다.

    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

캐시 규칙 만들기

다음으로, 리포지토리에서 캐시로 아티팩트 끌어오는 캐시 규칙을 만들고 구성합니다.

  1. 새 캐시 규칙을 만들려면 다음을 실행 az acr cache create합니다.

    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. 캐시 규칙에서 자격 증명을 업데이트하려면 다음을 실행 az acr cache update합니다.

    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    

    자격 증명을 제거해야 하는 경우 다음을 실행합니다 az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

  3. 캐시 규칙을 표시하려면 다음을 실행 az acr cache show합니다.

     az acr cache show -r MyRegistry -n MyRule
    

팁 (조언)

자격 증명을 사용하지 않고 캐시 규칙을 만들려면 자격 증명을 지정하지 않고 동일한 명령을 사용합니다. 예: az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Docker Hub와 같은 일부 원본의 경우 캐시 규칙을 만들려면 자격 증명이 필요합니다.

Azure RBAC를 사용하여 Key Vault에 권한 할당

Azure RBAC를 사용하여 사용자가 Azure Key Vault에 액세스할 수 있도록 적절한 권한을 사용자에게 할당할 수 있습니다.

Microsoft.KeyVault/vaults/secrets/getSecret/action Key Vault에 액세스하려면 권한이 필요합니다. Key Vault 비밀 사용자 Azure 기본 제공 역할은 이 작업을 포함하는 최소 권한 역할이므로 일반적으로 부여됩니다. 또는 해당 권한을 포함하는 사용자 지정 역할을 만들 수 있습니다.

사용되는 단계는 Azure CLI 또는 Bash를 사용하는지에 따라 달라집니다.

  1. Key Vault에 액세스하는 데 사용할 시스템 식별의 주체 ID를 가져옵니다.

    az acr credential-set show --name MyCredentialSet --registry MyRegistry 
    

    3단계에서 필요하므로 주 ID 값을 기억하세요.

  2. Key Vault의 속성을 표시하여 리소스 ID를 가져옵니다.

    az keyvault show --name MyKeyVaultName --resource-group MyResouceGroup
    

    다음 단계에서는 이 리소스 ID 값이 필요합니다.

  3. 자격 증명 집합의 시스템 ID에 Key Vault 비밀 사용자 역할을 할당합니다.

    az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID 
    
    

팁 (조언)

Key Vault의 리소스 ID를 사용하면 Key Vault의 모든 비밀에 대한 액세스 권한이 부여됩니다. 원하는 경우 사용자 이름 및 암호 비밀에만 액세스 권한을 부여할 수 있습니다. 이렇게 하려면 2단계의 명령 대신 다음 명령을 실행하여 사용자 이름과 암호 암호만 검색합니다.

az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName

다음으로, 사용자 이름 비밀의 ID로 KeyVaultResourceID를 바꾸어 3단계를 수행한 후, 암호 비밀의 ID로 KeyVaultResourceID를 바꾸어 다시 3단계를 수행합니다.

액세스 정책을 사용하여 Key Vault에 권한 할당

또는 액세스 정책을 사용하여 권한을 할당할 수 있습니다.

  1. Key Vault에 액세스하는 데 사용할 시스템 식별의 주체 ID를 가져옵니다.

    az acr credential-set show --name CredentialSet --registry MyRegistry
    

    다음 단계에서 필요하므로 주요 ID 값을 기록해 두세요.

  2. az keyvault set-policy 이미지를 풀하기 전에 명령을 실행하여 Key Vault에 대한 액세스 권한을 할당합니다. 예를 들어 자격 증명에 대한 권한을 할당하여 KeyVault 비밀에 액세스하려면 다음을 수행합니다.

    az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
    

이미지 끌어오기

캐시에서 이미지를 끌어오려면 Docker 명령을 사용하고 레지스트리 로그인 서버 이름, 리포지토리 이름 및 원하는 태그를 제공합니다. 예를 들어, 레지스트리 로그인 서버 hello-world의 원하는 태그 latest를 사용하여 리포지토리 myregistry.azurecr.io에서 이미지를 끌어오려면 다음을 실행합니다.

 docker pull myregistry.azurecr.io/hello-world:latest

리소스 정리

더 이상 필요하지 않은 경우 만든 캐시 규칙 및 자격 증명을 삭제합니다.

  1. 캐시 규칙을 삭제하려면 다음을 실행 az acr cache delete합니다.

    az acr cache delete -r MyRegistry -n MyRule
    
  2. 자격 증명을 삭제하려면 다음을 실행합니다 az acr credential-set delete.

    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

다음 단계