다음을 통해 공유


Azure Container Registry Entra 권한 및 역할 할당 개요

ACR(Azure Container Registry)은 ACR 레지스트리에 Microsoft Entra 기반 권한 관리를 제공하는 기본 제공 역할 집합을 제공합니다. Azure RBAC(역할 기반 액세스 제어)를 사용하여 사용자, 관리 ID 또는 서비스 주체에 기본 제공 역할을 할당하여 역할 내에 정의된 Microsoft Entra 기반 권한을 부여할 수 있습니다. 기본 제공 역할이 요구 사항을 충족하지 않는 경우 특정 요구 사항에 맞게 조정된 세분화된 권한으로 사용자 지정 역할을 정의하고 할당할 수도 있습니다.

지원되는 역할 할당 ID 유형

ACR 역할을 다음 ID 유형에 할당하여 레지스트리에 권한을 부여할 수 있습니다.

클라우드 기반 ACR과 다른 ACR의 온-프레미스 레지스트리 제품인 ACR 연결 레지스트리는 Azure 역할 할당 및 Entra 기반 권한 관리를 지원하지 않습니다.

역할 할당을 수행하여 사용 권한 부여

ID 에 역할을 할당하는 방법에 대한 자세한 내용은 역할 할당을 추가하는 단계를 참조하세요. 역할 할당은 다음을 사용하여 수행할 수 있습니다.

역할 할당을 수행하려면 레지스트리에 Owner 역할 또는 Role Based Access Control Administrator 역할이 있어야 합니다.

특정 리포지토리에 대한 역할 할당 범위 지정

Microsoft Entra 기반 리포지토리 사용 권한을 관리하기 위해 ABAC(Microsoft Entra 특성 기반 액세스 제어)를 사용할 수 있습니다. 이 기능을 사용하면 레지스트리의 특정 리포지토리로 역할 할당 범위를 지정할 수 있습니다.

Microsoft Entra ABAC 조건을 지원하는 ACR 기본 제공 역할을 포함하여 Microsoft Entra ABAC 리포지토리 권한에 대한 개요는 Microsoft Entra 기반 리포지토리 권한을 참조하세요. 또는 Azure Container Registry 역할 디렉터리 참조 에서 Microsoft Entra ABAC 조건을 지원하는 기본 제공 역할 목록을 참조할 수 있습니다.

ID가 의도한 기능을 수행하는 데 필요한 권한만 할당하여 최소 권한 원칙을 적용합니다. 이러한 일반적인 시나리오에는 각각 권장되는 기본 제공 역할이 있습니다.

비고

적용 가능한 기본 제공 역할 및 역할 동작은 레지스트리의 "역할 할당 권한 모드"에 따라 달라집니다. Azure Portal의 "속성" 블레이드에 표시됩니다.

  • RBAC 레지스트리 + ABAC 리포지토리 권한: 선택적 Microsoft Entra ABAC 조건을 사용하여 특정 리포지토리로 할당 범위를 지정하는 표준 RBAC 역할 할당을 지원합니다.
  • RBAC 레지스트리 권한: ABAC 조건 없이 표준 RBAC 할당만 지원합니다.

Microsoft Entra ABAC 및 ABAC 사용 역할에 대한 자세한 내용은 Microsoft Entra 기반 리포지토리 권한을 참조하세요.

  • 시나리오: 이미지를 끌어오고 개발자, 파이프라인 및 컨테이너 오케스트레이터와 같은 공급망 아티팩트(예: Azure Kubernetes Service 노드 kubelet ID, Azure Container Apps, Azure Container Instances, Azure Machine Learning 작업 영역)의 유효성을 검사해야 하는 ID

    • 역할: Container Registry Repository Reader
    • 목적: 이미지 및 아티팩트 끌어오기, 뷰 태그, 리포지토리, OCI(Open Container Initiative) 참조자 및 아티팩트 스트리밍 구성에 대한 데이터 평면 읽기 전용 액세스 권한을 부여합니다. 컨트롤 플레인 또는 쓰기 권한을 포함하지 않습니다. 레지스트리의 리포지토리를 나열할 수 있는 리포지토리 카탈로그 목록 권한을 부여하지 않습니다.
    • ABAC 지원: 이 역할은 레지스트리의 특정 리포지토리로 역할 할당 범위를 지정하는 선택적 Microsoft Entra ABAC 조건을 지원합니다.
  • 시나리오: CI/CD 빌드 파이프라인 및 이미지를 빌드 및 푸시하고 이미지 태그를 관리하는 개발자와 같은 ID

    • 역할: Container Registry Repository Writer
    • 사용 권한: 데이터 평면에 이미지 및 아티팩트 푸시, 끌어오기 및 업데이트(삭제 안 함), 태그 읽기/관리, OCI 참조자 읽기/관리, 리포지토리 및 이미지에 대한 아티팩트 스트리밍 사용(사용 안 함)에 대한 액세스 권한을 부여합니다. 컨트롤 플레인 권한은 포함되어 있지 않습니다. 레지스트리의 리포지토리를 나열할 수 있는 리포지토리 카탈로그 목록 권한을 부여하지 않습니다.
    • ABAC 지원: 이 역할은 레지스트리의 특정 리포지토리로 역할 할당 범위를 지정하는 선택적 Microsoft Entra ABAC 조건을 지원합니다.
  • 시나리오: 이미지, 아티팩트, 태그 및 OCI 참조자를 삭제해야 하는 ID

    • 역할: Container Registry Repository Contributor
    • 사용 권한: 이미지 및 아티팩트 읽기, 쓰기, 업데이트 및 삭제 , 태그 읽기/관리/삭제, OCI 참조 읽기/관리/삭제, 리포지토리 및 이미지에 대한 아티팩트 스트리밍 사용/사용 안 함 권한을 부여합니다. 컨트롤 플레인 권한은 포함되어 있지 않습니다. 레지스트리의 리포지토리를 나열할 수 있는 리포지토리 카탈로그 목록 권한을 부여하지 않습니다.
    • ABAC 지원: 이 역할은 레지스트리의 특정 리포지토리로 역할 할당 범위를 지정하는 선택적 Microsoft Entra ABAC 조건을 지원합니다.
  • 시나리오: 레지스트리의 모든 리포지토리를 나열해야 하는 ID

    • 역할: Container Registry Repository Catalog Lister
    • 사용 권한: 레지스트리 API 엔드포인트를 {loginServerURL}/acr/v1/_catalog 포함하여 {loginServerURL}/v2/_catalog 레지스트리의 모든 리포지토리를 나열할 수 있는 데이터 평면 액세스 권한을 부여합니다. 컨트롤 플레인 관련 권한 또는 이미지 푸시/풀 하기 위한 권한이 포함되어 있지 않습니다.
    • ABAC 지원: 이 역할은 Microsoft Entra ABAC 조건을 지원하지 않습니다. 따라서 이 역할 할당은 레지스트리의 모든 리포지토리를 나열할 수 있는 권한을 부여 합니다.
  • 시나리오: 이미지에 서명하는 파이프라인, ID 및 개발자

    • OCI 참조를 사용하는 Notary Project와 같은 경우 이미지를 서명하려면:
      • 역할: Container Registry Repository Writer
      • 사용 권한: 이미지 및 아티팩트에 부착된 OCI 참조자 형태로 서명을 푸시할 수 있는 데이터 평면 접속 권한을 부여합니다. 컨트롤 플레인 권한은 포함되어 있지 않습니다.
      • ABAC 지원: 이 역할은 레지스트리의 특정 리포지토리로 역할 할당 범위를 지정하는 선택적 Microsoft Entra ABAC 조건을 지원합니다.
    • DOCKER DCT(Content Trust)를 사용하여 이미지 서명:
      • ABAC 사용 레지스트리용 DCT를 사용하여 이미지 서명은 지원되지 않습니다.
  • 시나리오: ACR 레지스트리를 만들거나 업데이트하거나 삭제 해야 하는 파이프라인, ID 및 개발자

  • 시나리오: 레지스트리를 나열하고 레지스트리 구성을 확인해야 하지만 레지스트리 이미지에 액세스하지 않는 파이프라인, 인프라 엔지니어 또는 제어 평면 관찰/모니터링 도구

    • 역할: Container Registry Configuration Reader and Data Access Configuration Reader
    • 사용 권한: 읽기 전용 역할의 대응 Container Registry Contributor and Data Access Configuration Administrator입니다. 레지스트리를 보고 나열하고 레지스트리 구성을 검사할 수 있는 제어 평면 액세스 권한을 부여하지만 수정하지는 않습니다. 데이터 평면 작업(예: 이미지 푸시/끌어오기) 또는 역할 할당 기능은 포함하지 않습니다.
    • ABAC 지원: 이 역할은 역할의 범위가 레지스트리 수준으로 지정되므로 Microsoft Entra ABAC 조건을 지원하지 않으며 전체 레지스트리에 대한 컨트롤 플레인 설정 및 구성을 읽을 수 있는 권한을 부여합니다.
  • 시나리오: 레지스트리 및 레지스트리 구성을 감사해야 하는 취약성 스캐너 및 도구뿐만 아니라 레지스트리 이미지에 액세스하여 취약성을 검사해야 합니다.

    • 역할: Container Registry Repository Reader, Container Registry Repository Catalog ListerContainer Registry Configuration Reader and Data Access Configuration Reader
    • 사용 권한: ACR 레지스트리를 보고 나열하고 감사 및 규정 준수를 위해 레지스트리 구성을 감사할 수 있는 제어 평면 액세스 권한을 부여합니다. 또한 이미지, 아티팩트 및 뷰 태그를 끌어오고 이미지를 검사하고 분석하여 취약성을 검사할 수 있는 권한을 부여합니다.
    • ABAC 지원: ACR은 취약성 스캐너 및 모니터가 레지스트리의 모든 리포지토리에 대한 전체 데이터 평면 액세스를 가질 것을 권장합니다. 따라서 특정 리포지토리의 범위를 지정하지 않고 역할 권한을 부여하려면 Microsoft Entra ABAC 조건 없이 이러한 역할을 할당해야 합니다.
  • 시나리오: ACR 작업을 오케스트레이션하는 파이프라인 및 ID

    • 역할: Container Registry Tasks Contributor
    • 사용 권한: 작업 정의 및 작업 실행, 작업 에이전트 풀, az acr build작업 로그를 포함한 az acr run 작업을 관리합니다. 데이터 평면 사용 권한 또는 더 광범위한 레지스트리 구성을 포함하지 않음
    • 참고: 작업 ID를 완전히 관리하려면 담당자에게 Managed Identity Operator 역할이 있어야 합니다.
    • ABAC 지원: 이 역할은 역할의 범위가 레지스트리 수준으로 지정되므로 Microsoft Entra ABAC 조건을 지원하지 않으며 레지스트리의 모든 ACR 작업을 관리할 수 있는 권한을 부여합니다.
  • 시나리오: 이미지를 az acr import가져오는 파이프라인 및 개발자와 같은 ID

    • 역할: Container Registry Data Importer and Data Reader
    • 사용 권한: 컨트롤 플레인 액세스 권한을 부여하여 이미지 가져오기를 az acr import트리거하고 데이터 평면 액세스 권한을 부여하여 가져오기 성공의 유효성을 검사합니다(가져온 이미지 및 아티팩트 끌어오기, 리포지토리 콘텐츠 보기, OCI 참조자 나열 및 가져온 태그 검사). 레지스트리의 콘텐츠를 푸시하거나 수정하는 것을 허용하지 않습니다.
    • ABAC 지원: 이 역할은 역할의 범위가 레지스트리 수준으로 지정되므로 Microsoft Entra ABAC 조건을 지원하지 않으며 레지스트리의 리포지토리로 이미지를 가져올 수 있는 권한을 부여합니다. 또한 레지스트리의 모든 리포지토리에서 이미지를 읽을 수 있는 권한을 부여합니다.
  • 시나리오: 네트워크, 테넌트 또는 에어 갭 경계를 넘어 중간 스토리지 계정을 사용하여 레지스트리 간에 아티팩트를 전송하기 위해 ACR 전송 파이프라인 을 관리하는 파이프라인 및 개발자와 같은 ID

    • 역할: Container Registry Transfer Pipeline Contributor
    • 사용 권한: 중간 스토리지 계정을 사용하여 ACR 가져오기/내보내기 전송 파이프라인 및 파이프라인 실행을 관리하기 위한 제어 평면 액세스 권한을 부여합니다. 데이터 평면 사용 권한, 광범위한 레지스트리 액세스 또는 스토리지 계정 또는 키 자격 증명 모음과 같은 다른 Azure 리소스 유형을 관리할 수 있는 권한은 포함되지 않습니다.
    • ABAC 지원: 이 역할은 역할의 범위가 레지스트리 수준으로 지정되므로 Microsoft Entra ABAC 조건을 지원하지 않으며 레지스트리의 모든 ACR 전송 파이프라인을 관리할 수 있는 권한을 부여합니다.
  • 시나리오: 격리된 이미지 관리

    • 역할: AcrQuarantineReaderAcrQuarantineWriter
    • 사용 권한: 추가 검사를 위해 격리된 이미지를 나열 및 끌어와 이미지의 격리 상태를 수정하는 등 레지스트리에서 격리된 이미지를 관리합니다. 격리된 이미지는 격리되지 않을 때까지 끌어오거나 사용할 수 없는 푸시된 이미지입니다.
    • ABAC 지원: 역할의 범위가 레지스트리 수준으로 지정되므로 이 역할은 Microsoft Entra ABAC 조건을 지원하지 않으며 레지스트리의 모든 격리된 이미지를 관리할 수 있는 권한을 부여합니다.
  • 시나리오: ACR 작업에서 레지스트리 자동 제거를 구성하는 개발자 또는 프로세스

    • 역할: Container Registry Tasks Contributor
    • 사용 권한: ACR 작업에서 실행되는 자동 제거를 관리하는 컨트롤 플레인 권한을 부여합니다.
    • ABAC 지원: 이 역할은 역할의 범위가 레지스트리 수준으로 지정되므로 Microsoft Entra ABAC 조건을 지원하지 않으며 레지스트리의 모든 ACR 작업을 관리할 수 있는 권한을 부여합니다.
  • 시나리오: Visual Studio Code Docker 확장 사용자

    • 역할: Container Registry Repository Writer, Container Registry Tasks ContributorContainer Registry Contributor and Data Access Configuration Administrator
    • 사용 권한: 레지스트리를 찾아보고, 이미지를 끌어오고 푸시하며, az acr build 이미지를 빌드하는 기능을 부여하여 Visual Studio Code에서 일반적인 개발자 워크플로를 지원합니다.
    • ABAC 지원: ACR은 Visual Studio Code 사용자가 레지스트리의 모든 리포지토리에 대한 전체 데이터 평면 액세스를 가질 것을 권장합니다. 따라서 특정 리포지토리의 범위를 지정하지 않고 역할 권한을 부여하려면 Microsoft Entra ABAC 조건 없이 이러한 역할을 할당해야 합니다.

다음 단계