온라인 엔드포인트의 비밀 주입(미리 보기)

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

온라인 엔드포인트의 컨텍스트에서 비밀 삽입은 비밀 저장소에서 비밀(예: API 키)을 검색하여 온라인 배포 내에서 실행되는 사용자 컨테이너에 삽입하는 프로세스입니다. 결국 비밀은 점수 매기기 스크립트를 실행하는 유추 서버 또는 BYOC(사용자 고유의 컨테이너 가져오기) 배포 방법을 사용하여 가져오는 추론 스택에서 사용하는 환경 변수를 통해 안전하게 액세스됩니다.

Important

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.

자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

문제 설명

온라인 배포를 만들 때 배포 내에서 비밀을 사용하여 외부 서비스에 액세스하는 것이 좋습니다. 이러한 외부 서비스 중 일부에는 Microsoft Azure OpenAI 서비스, Azure AI Services 및 Azure AI Content Safety가 포함됩니다.

비밀을 사용하려면 배포 내에서 실행되는 사용자 컨테이너에 안전하게 전달하는 방법을 찾아야 합니다. 이 방법은 배포 정의에 비밀을 노출하므로 비밀을 배포 정의의 일부로 포함하지 않는 것이 좋습니다.

더 나은 방법은 비밀 저장소에 비밀을 저장한 다음 배포 내에서 안전하게 검색하는 것입니다. 그러나 이 방법은 배포가 비밀을 검색하기 위해 비밀 저장소에 인증하는 방법이라는 자체적인 과제를 제기합니다. 온라인 배포는 관리 ID엔드포인트 ID를 사용하여 사용자 컨테이너를 실행하므로 Azure RBAC를 사용하여 엔드포인트 ID의 권한을 제어하고 엔드포인트가 비밀 저장소에서 비밀을 검색하도록 허용할 수 있습니다. 이 방법을 사용하려면 다음 작업을 수행해야 합니다.

  • 비밀 저장소에서 비밀을 읽을 수 있도록 엔드포인트 ID에 올바른 역할을 할당합니다.
  • 엔드포인트의 관리 ID를 사용하여 비밀 저장소에서 비밀을 검색하도록 배포에 대한 점수 매기기 논리를 구현합니다.

관리 ID를 사용하는 방법은 비밀을 검색하고 삽입하는 안전한 방법이지만 비밀 삽입 기능을 통한 비밀 주입작업 영역 연결키 자격 증명 모음에 대한 비밀을 검색하는 프로세스를 더욱 간소화합니다.

엔드포인트와 연결된 관리 ID

온라인 배포는 엔드포인트와 연결된 관리 ID를 사용하여 사용자 컨테이너를 실행합니다. 엔드포인트 ID라고 하는 이 관리 ID는 Azure RBAC를 지원하는 Microsoft Entra ID입니다. 따라서 ID에 Azure 역할을 할당하여 작업을 수행하는 데 필요한 권한을 제어할 수 있습니다. 엔드포인트 ID는 SAI(시스템 할당 ID) 또는 UAI(사용자 할당 ID)일 수 있습니다. 엔드포인트를 만들 때 사용할 ID 종류를 결정할 수 있습니다.

  • 시스템 할당 ID의 경우, 엔드포인트를 만들 때 ID가 자동으로 만들어지고 기본 권한(예: Azure Container Registry 끌어오기 권한 및 Storage Blob 데이터 읽기 권한자)이 있는 역할이 자동으로 할당됩니다.
  • 사용자 할당 ID의 경우, 먼저 ID를 만든 다음 엔드포인트를 만들 때 ID를 엔드포인트와 연결해야 합니다. 또한 필요에 따라 UAI에 적절한 역할을 할당해야 합니다.

엔드포인트의 관리 ID를 사용하는 방법에 대한 자세한 내용은 관리 ID를 사용하여 엔드포인트에서 리소스에 액세스하는 방법관리 ID를 사용하여 외부 서비스와 상호 작용하는 데 대한 예제를 참조하세요.

엔드포인트 ID에 대한 역할 할당

비밀 저장소에는 다음 역할이 필요합니다.

  • 작업 영역의 작업 영역 연결에 저장된 비밀의 경우: Workspace Connections는 API를 호출하는 ID가 ID에 할당된 Azure Machine Learning Workspace Connection Secrets Reader 역할(또는 이와 동등한 역할)을 요구하는 비밀 목록 API(미리 보기)를 제공합니다.
  • 외부 Microsoft Azure Key Vault에 저장된 비밀의 경우: Key Vault는 API를 호출하는 ID가 ID에 할당된 Key Vault Secrets User 역할(또는 이와 동등한 역할)을 요구하는 비밀 버전 가져오기 API를 제공합니다.

비밀 주입 구현

비밀 저장소에서 비밀(예: API 키)을 검색하면 온라인 배포 내에서 실행되는 사용자 컨테이너에 비밀을 삽입하는 두 가지 방법이 있습니다.

  • 관리 ID를 사용하여 비밀을 직접 삽입합니다.
  • 비밀 삽입 기능을 사용하여 비밀을 삽입합니다.

이러한 두 방법 모두 다음 두 단계를 포함합니다.

  1. 먼저 엔드포인트 ID를 사용하여 비밀 저장소에서 비밀을 검색합니다.
  2. 둘째, 비밀을 사용자 컨테이너에 삽입합니다.

관리 ID 사용을 통한 비밀 주입

배포 정의에서 엔드포인트 ID를 사용하여 비밀 저장소에서 API를 호출해야 합니다. 점수 매기기 스크립트 또는 BYOC 컨테이너에서 실행하는 셸 스크립트에서 이 논리를 구현할 수 있습니다. 관리 ID를 사용하여 비밀 주입을 구현하려면 관리 ID를 사용하여 외부 서비스와 상호 작용하는 데 대한 예제를 참조하세요.

비밀 주입 기능을 통한 비밀 주입

비밀 삽입 기능을 사용하려면 배포 정의에서 작업 영역 연결 또는 Key Vault의 비밀을 환경 변수에 매핑합니다. 이 방법을 사용하면 BYOC 컨테이너에서 실행하는 점수 매기기 스크립트 또는 셸 스크립트에서 코드를 작성할 필요가 없습니다. 작업 영역 연결 또는 Key Vault의 비밀을 환경 변수에 매핑하려면 다음 조건을 충족해야 합니다.

  • 엔드포인트를 만드는 동안 기본 비밀 저장소(현재 작업 영역 아래의 작업 영역 연결)에 대한 액세스를 적용하도록 온라인 엔드포인트가 정의된 경우 엔드포인트에서 배포를 만드는 사용자 ID에는 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 있어야 합니다.
  • 배포에서 사용하는 엔드포인트 ID에는 배포 정의에서 참조된 대로 작업 영역 연결 또는 Key Vault에서 비밀을 읽을 수 있는 권한이 있어야 합니다.

참고 항목

  • 기본 비밀 저장소에 대한 액세스를 적용하기 위해 SAI 및 플래그를 설정하여 엔드포인트를 성공적으로 만든 경우 엔드포인트는 자동으로 작업 영역 연결에 대한 권한을 갖습니다.
  • 엔드포인트가 UAI를 사용했거나 기본 비밀 저장소에 대한 액세스를 적용하는 플래그가 설정되지 않은 경우 엔드포인트 ID에 작업 영역 연결에 대한 권한이 없을 수 있습니다. 이러한 상황에서는 작업 영역 연결에 대한 역할을 엔드포인트 ID에 수동으로 할당해야 합니다.
  • 엔드포인트 ID는 외부 Key Vault에 대한 권한을 자동으로 받지 않습니다. Key Vault를 비밀 저장소로 사용하는 경우 Key Vault에 대한 역할을 엔드포인트 ID에 수동으로 할당해야 합니다.

비밀 주입 사용에 대한 자세한 내용은 비밀 주입을 사용하여 온라인 엔드포인트에 기계 학습 모델 배포(미리 보기)를 참조하세요.