Bicep 모듈에 대한 프라이빗 레지스트리 만들기

조직 내에서 모듈을 공유하기 위해 프라이빗 모듈 레지스트리를 만들 수 있습니다. 해당 레지스트리에 모듈을 게시하고 모듈을 배포해야 하는 사용자에게 읽기 액세스 권한을 부여합니다. 모듈이 레지스트리에서 공유된 후 Bicep 파일에서 참조할 수 있습니다. 공용 모듈 레지스트리에 기여하려면 기여 가이드를 참조하세요.

모듈 레지스트리를 사용하려면 Bicep CLI 버전 0.4.1008 이상이 있어야 합니다. Azure CLI와 함께 사용하려면 버전 2.31.0 이상도 있어야 합니다. Azure PowerShell과 함께 사용하려면 버전 7.0.0 이상도 있어야 합니다.

학습 리소스

단계별 지침을 통해 매개 변수에 대해 알아보려면 프라이빗 레지스트리를 사용하여 Bicep 모듈 공유를 참조하세요.

프라이빗 레지스트리 구성

Bicep 레지스트리는 ACR(Azure Container Registry)에 호스트됩니다. 다음 단계를 사용하여 모듈에 대한 레지스트리를 구성합니다.

  1. 컨테이너 레지스트리가 이미 있는 경우 사용할 수 있습니다. 컨테이너 레지스트리를 만들어야 하는 경우 빠른 시작: Bicep 파일을 사용하여 컨테이너 레지스트리 만들기를 참조하세요.

    모듈 레지스트리에 사용할 수 있는 레지스트리 SKU를 사용할 수 있습니다. 레지스트리 지역 복제는 사용자에게 로컬 존재 또는 핫 백업으로 제공합니다.

  2. 로그인 서버 이름을 가져옵니다. Bicep 파일에서 레지스트리에 연결할 때 이 이름이 필요합니다. 로그인 서버 이름의 형식은 <registry-name>.azurecr.io입니다.

    로그인 서버 이름을 가져오려면 Get-AzContainerRegistry를 사용합니다.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. 레지스트리에 모듈을 게시하려면 이미지를 푸시할 수 있는 권한이 있어야 합니다. 레지스트리에 모듈을 게시하려면 이미지를 할 수 있는 권한이 있어야 합니다. 적절한 액세스 권한을 부여하는 역할에 대한 자세한 내용은 Azure Container Registry 역할 및 권한을 참조하세요.

  4. 모듈을 배포하는 데 사용하는 계정 유형에 따라 사용되는 자격 증명을 사용자 지정해야 할 수 있습니다. 이러한 자격 증명은 레지스트리에서 모듈을 가져오는 데 필요합니다. 기본적으로 자격 증명은 Azure CLI 또는 Azure PowerShell에서 가져옵니다. bicepconfig.json 파일에서 자격 증명을 가져오기 위한 우선 순위를 사용자 지정할 수 있습니다. 자세한 내용은 모듈 복원을 위한 자격 증명을 참조하세요.

Important

프라이빗 컨테이너 레지스트리는 필요한 액세스 권한이 있는 사용자만 사용할 수 있습니다. 그러나 공용 인터넷을 통해 액세스할 수 있습니다. 보안을 강화하기 위해 프라이빗 엔드포인트를 통해 액세스해야 할 수 있습니다. Azure Private Link를 사용하여 Azure 컨테이너 레지스트리에 비공개로 연결을 참조하세요.

프라이빗 컨테이너 레지스트리에는 azureADAuthenticationAsArmPolicy 정책이 enabled로 설정되어 있어야 합니다. azureADAuthenticationAsArmPolicydisabled로 설정된 경우 모듈을 게시할 때 401(권한 없음) 오류 메시지가 표시됩니다. Azure Container Registry는 조건부 액세스 정책을 도입합니다.를 참조하세요.

레지스트리에 파일 게시

컨테이너 레지스트리를 설정한 후 파일을 게시할 수 있습니다. publish 명령을 사용하여 모듈로 사용할 Bicep 파일을 제공합니다. 레지스트리에서 모듈의 대상 위치를 지정합니다. 게시 명령은 ARM 템플릿을 만들며, 템플릿은 레지스트리에 저장됩니다. 다시 말해 다른 로컬 모듈을 참조하는 Bicep 파일을 게시할 경우 해당 모듈은 단일 JSON 파일로 전체 확장되어 레지스트리에 게시됩니다.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html

레지스트리에서 파일 보기

포털에서 게시된 모듈을 보려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 컨테이너 레지스트리를 검색합니다.

  3. 레지스트리를 선택합니다.

  4. 왼쪽 메뉴에서 리포지토리를 선택합니다.

  5. 모듈 경로(리포지토리)를 선택합니다. 앞의 예제에서 모듈 경로 이름은 bicep/modules/storage입니다.

  6. 태그를 선택합니다. 앞의 예제에서 태그는 v1입니다.

  7. 아티팩트 참조는 Bicep 파일에서 사용할 참조와 일치합니다.

    Bicep module registry artifact reference

이제 Bicep 파일에서 레지스트리의 파일을 참조할 준비가 되었습니다. 외부 모듈을 참조하는 데 사용할 구문의 예는 Bicep 모듈을 참조하세요.


Bicep 레지스트리 파일 관련 작업

원격 레지스트리에서 호스트되는 Bicep 파일을 활용하려면 로컬 컴퓨터가 레지스트리와 상호 작용하는 방식을 이해하는 것이 중요합니다. 레지스트리에 대한 참조를 처음 선언하면 로컬 편집기가 Azure Container Registry와 통신하고 레지스트리 사본을 로컬 캐시에 다운로드하려고 합니다.

로컬 캐시는 다음 위치에 있습니다.

  • Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • Linux

    /home/<username>/.bicep
    
  • Mac에서

    ~/.bicep
    

원격 레지스트리에 대한 변경 사항은 restore가 레지스트리 참조가 포함된 지정된 파일로 실행될 때까지 로컬 컴퓨터에서 인식되지 않습니다.

az bicep restore --file <bicep-file> [--force]

자세한 내용은 restore 명령을 참조하세요.

다음 단계