관리형 온라인 엔드포인트에 대한 인증
적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)
이 문서에서는 온라인 엔드포인트의 컨텍스트에서 ID 및 권한의 개념을 설명합니다. Azure RBAC를 지원하는 Microsoft Entra ID에 대한 논의로 시작합니다. Microsoft Entra ID의 용도에 따라 이를 사용자 ID 또는 엔드포인트 ID라고 합니다.
사용자 ID는 엔드포인트 및 해당 배포를 만드는 데 사용하거나 엔드포인트 또는 작업 영역과 상호 작용하는 데 사용할 수 있는 Microsoft Entra ID입니다. 즉, ID가 엔드포인트, 배포 또는 작업 영역에 요청을 발행하는 경우 ID를 사용자 ID로 간주할 수 있습니다. 사용자 ID에는 엔드포인트 또는 작업 영역에서 컨트롤 플레인 및 데이터 평면 작업을 수행하기 위한 적절한 권한이 필요합니다.
엔드포인트 ID는 배포에서 사용자 컨테이너를 실행하는 Microsoft Entra ID입니다. 즉, ID가 엔드포인트와 연결되고 배포의 사용자 컨테이너에 사용되는 경우 엔드포인트 ID라고 합니다. 또한 엔드포인트 ID에는 사용자 컨테이너가 필요에 따라 리소스와 상호 작용할 수 있는 적절한 권한이 필요합니다. 예를 들어 엔드포인트 ID에는 Azure Container Registry에서 이미지를 끌어오거나 다른 Azure 서비스와 상호 작용할 수 있는 적절한 권한이 필요합니다.
일반적으로 사용자 ID 및 엔드포인트 ID에는 별도의 권한 요구 사항이 있습니다. ID 및 권한을 관리하는 방법에 대한 자세한 내용은 온라인 엔드포인트용 클라이언트를 인증하는 방법을 참조하세요. 비밀의 추가 권한을 자동으로 추가하는 특별한 경우에 대한 자세한 내용은 사용자 ID에 대한 추가 권한을 참조하세요.
제한 사항
Microsoft Entra ID 인증(aad_token
)은 관리형 온라인 엔드포인트에만 지원됩니다. Kubernetes 온라인 엔드포인트의 경우 키 또는 Azure Machine Learning 토큰(aml_token
)을 사용할 수 있습니다.
사용자 ID에 필요한 권한
Microsoft 계정(예: az login
사용)으로 Azure 테넌트에 로그인하면 사용자 인증 단계(일반적으로 authn이라고 함)가 완료되고 사용자로서의 ID가 결정됩니다. 이제 작업 영역에서 온라인 엔드포인트를 만들려면 적절한 권한이 필요합니다. 바로 이 지점에서 권한 부여(일반적으로 authz라고 함)가 필요합니다.
컨트롤 플레인 작업
컨트롤 플레인 작업은 온라인 엔드포인트를 제어하고 변경합니다. 이러한 작업에는 온라인 엔드포인트 및 온라인 배포에 대한 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업이 포함됩니다. 온라인 엔드포인트 및 배포의 경우 컨트롤 플레인 작업을 수행하기 위한 요청이 Azure Machine Learning 작업 영역으로 이동합니다.
컨트롤 플레인 작업에 대한 인증
컨트롤 플레인 작업의 경우 작업 영역에 클라이언트를 인증하는 한 가지 방법이 있습니다.바로 Microsoft Entra 토큰을 사용하는 것입니다.
사용 사례에 따라 여러 인증 워크플로 중에서 선택하여 이 토큰을 가져올 수 있습니다. 또한 사용자 ID에는 리소스에 대한 액세스를 허용하는 적절한 Azure RBAC(Azure 역할 기반 액세스 제어)가 있어야 합니다.
컨트롤 플레인 작업에 대한 권한 부여
컨트롤 플레인 작업의 경우 사용자 ID에는 리소스에 대한 액세스를 허용하는 적절한 Azure RBAC(Azure 역할 기반 액세스 제어)가 있어야 합니다. 특히 온라인 엔드포인트 및 배포에 대한 CRUD 작업의 경우 ID에 다음 작업을 수행하는 역할이 할당되어 있어야 합니다.
연산 | 필요한 Azure RBAC 역할 | 역할이 할당되는 범위 |
---|---|---|
온라인 엔드포인트 및 배포에 대한 만들기/업데이트 작업 | 소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write 를 허용하는 모든 역할 |
작업 영역 |
온라인 엔드포인트 및 배포에 대한 삭제 작업 | 소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete 를 허용하는 모든 역할 |
작업 영역 |
Azure Machine Learning 스튜디오를 통한 온라인 엔드포인트 및 배포에 대한 만들기/업데이트/삭제 작업 | 소유자, 기여자 또는 Microsoft.Resources/deployments/write 를 허용하는 모든 역할 |
작업 영역이 속한 리소스 그룹 |
온라인 엔드포인트 및 배포에 대한 읽기 작업 | 소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read 를 허용하는 모든 역할 |
작업 영역 |
작업 영역에서 온라인 엔드포인트(관리형 및 Kubernetes 모두)를 호출하기 위한 Azure Machine Learning 토큰 (aml_token ) 가져오기 |
소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action 을 허용하는 모든 역할 |
endpoint |
작업 영역에서 온라인 엔드포인트(관리형 및 Kubernetes 모두)를 호출하기 위한 키 가져오기 | 소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action 을 허용하는 모든 역할 |
endpoint |
온라인 엔드포인트(관리형 및 Kubernetes 모두)에 대한 키 다시 생성 | 소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action 을 허용하는 모든 역할 |
endpoint |
관리형 온라인 엔드포인트를 호출하기 위한 Microsoft Entra 토큰(aad_token ) 가져오기 |
역할이 필요하지 않습니다. | 적용할 수 없음 |
참고 항목
로그인한 후에는 Microsoft Entra ID에서 직접 Microsoft Entra 토큰(aad_token
)을 가져올 수 있으며 작업 영역에 대한 추가 Azure RBAC 권한이 필요하지 않습니다.
기본 비밀 저장소에 대한 액세스를 적용할 때 사용자 ID에 대한 추가 권한
비밀 삽입 기능을 사용하려는 경우 엔드포인트를 만드는 동안 기본 비밀 저장소에 대한 액세스를 적용하도록 플래그를 설정하면 사용자 ID에 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 있어야 합니다.
SAI(시스템 할당 ID)를 사용하여 엔드포인트를 만들고 그리고 기본 비밀 저장소에 대한 액세스를 적용하도록 플래그가 설정된 경우 사용자 ID에는 엔드포인트를 만들고 엔드포인트에서 배포를 만들 때 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 있어야 합니다. 이 제한은 비밀을 읽을 수 있는 권한이 있는 사용자 ID만 엔드포인트 ID에 비밀을 읽을 수 있는 권한을 부여할 수 있도록 합니다.
사용자 ID에 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 없지만 SAI 및 엔드포인트의 플래그가 기본 비밀 저장소에 대한 액세스를 적용하도록 설정된 상태에서 엔드포인트를 만들려고 하면 엔드포인트 만들기가 거부됩니다.
마찬가지로, 사용자 ID에 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 없지만 SAI 및 엔드포인트의 플래그가 기본 비밀 저장소에 대한 액세스를 적용하도록 설정된 상태에서 엔드포인트 아래에 배포를 만들려고 하면 배포 만들기가 거부됩니다.
(1) UAI를 사용하여 엔드포인트를 만들거나 또는 (2) 기본 비밀 저장소에 대한 액세스를 적용하도록 플래그가 설정되지 않은 경우 사용자 ID에 작업 영역 연결에서 비밀을 읽을 수 있는 권한이 필요하지 않습니다. 이 경우 엔드포인트 ID에 비밀을 읽을 수 있는 권한이 자동으로 부여되지 않지만 필요한 경우 적절한 역할을 할당하여 엔드포인트 ID에 이 권한을 수동으로 부여할 수 있습니다. 역할 할당이 자동으로 또는 수동으로 수행되었는지에 관계없이 배포 정의에서 환경 변수를 비밀 참조와 매핑한 경우에도 비밀 검색 및 삽입이 트리거되며, 엔드포인트 ID를 사용하여 이를 수행합니다.
Azure Machine Learning 작업 영역에 대한 권한 부여를 관리하는 방법에 대한 자세한 내용은 Azure Machine Learning에 대한 액세스 관리를 참조하세요.
비밀 삽입에 대한 자세한 내용은 온라인 엔드포인트의 비밀 삽입을 참조하세요.
데이터 평면 작업
데이터 평면 작업은 온라인 엔드포인트를 변경하지 않고 데이터를 사용하여 엔드포인트와 상호 작용합니다. 데이터 평면 작업의 예로는 온라인 엔드포인트에 채점 요청을 보내고 해당 엔드포인트에서 응답을 받는 것이 있습니다. 온라인 엔드포인트 및 배포의 경우 데이터 평면 작업을 수행하기 위한 요청은 엔드포인트의 채점 URI로 이동합니다.
데이터 평면 작업에 대한 인증
데이터 평면 작업의 경우 엔드포인트의 채점 URI에 요청을 보내도록 클라이언트를 인증하는 다음 세 가지 방법 중에서 선택할 수 있습니다.
- key
- Azure Machine Learning 토큰(
aml_token
) - Microsoft Entra 토큰(
aad_token
)
데이터 평면 작업을 위해 클라이언트를 인증하는 방법에 대한 자세한 내용은 온라인 엔드포인트용 클라이언트를 인증하는 방법을 참조하세요.
데이터 평면 작업에 대한 권한 부여
데이터 평면 작업의 경우 엔드포인트가 Microsoft Entra 토큰(aad_token
)을 사용하도록 설정된 경우에만 사용자 ID에 리소스에 대한 액세스를 허용하는 적절한 Azure RBAC(Azure 역할 기반 액세스 제어)가 있어야 합니다. 특히 온라인 엔드포인트 및 배포에 대한 데이터 평면 작업의 경우 ID에 다음 작업을 수행하는 역할이 할당되어 있어야 합니다.
연산 | 필요한 Azure RBAC 역할 | 역할이 할당되는 범위 |
---|---|---|
키(key ) 또는 Azure Machine Learning 토큰(aml_token )을 사용하여 온라인 엔드포인트를 호출합니다. |
역할이 필요하지 않습니다. | 해당 없음 |
Microsoft Entra 토큰(aad_token )을 사용하여 관리형 온라인 엔드포인트를 호출합니다. |
소유자, 기여자 또는 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action 을 허용하는 모든 역할 |
endpoint |
Microsoft Entra 토큰(aad_token )을 사용하여 Kubernetes 온라인 엔드포인트를 호출합니다. |
Kubernetes 온라인 엔드포인트는 데이터 평면 작업에 대한 Microsoft Entra 토큰을 지원하지 않습니다. | 해당 없음 |
엔드포인트 ID에 필요한 권한
온라인 배포는 엔드포인트 ID(즉, 엔드포인트와 연결된 관리 ID)를 사용하여 사용자 컨테이너를 실행합니다. 엔드포인트 ID는 Azure RBAC를 지원하는 Microsoft Entra ID입니다. 따라서 엔드포인트 ID에 Azure 역할을 할당하여 작업을 수행하는 데 필요한 권한을 제어할 수 있습니다. 이 엔드포인트 ID는 SAI(시스템 할당 ID) 또는 UAI(사용자 할당 ID)일 수 있습니다. 엔드포인트를 만들 때 SAI 또는 UAI를 사용할 것인지 결정할 수 있습니다.
- 시스템 할당 ID의 경우, 엔드포인트를 만들 때 ID가 자동으로 만들어지고 기본 권한(예: Azure Container Registry 끌어오기 권한 및 Storage Blob 데이터 읽기 권한자)이 있는 역할이 자동으로 할당됩니다.
- 사용자 할당 ID의 경우, 먼저 ID를 만든 다음 엔드포인트를 만들 때 ID를 엔드포인트와 연결해야 합니다. 또한 필요에 따라 UAI에 적절한 역할을 할당해야 합니다.
엔드포인트 ID에 대한 자동 역할 할당
엔드포인트 ID가 시스템 할당 ID인 경우 편의를 위해 일부 역할이 엔드포인트 ID에 할당됩니다.
역할 | 설명 | 자동 역할 할당 조건 |
---|---|---|
AcrPull |
엔드포인트 ID가 작업 영역과 연결된 ACR(Azure Container Registry)에서 이미지를 끌어올 수 있습니다. | 엔드포인트 ID는 SAI(시스템 할당 ID)입니다. |
Storage Blob Data Reader |
엔드포인트 ID가 작업 영역의 기본 데이터 저장소에서 BLOB을 읽을 수 있습니다. | 엔드포인트 ID는 SAI(시스템 할당 ID)입니다. |
AzureML Metrics Writer (preview) |
엔드포인트 ID가 작업 영역에 메트릭을 쓸 수 있습니다. | 엔드포인트 ID는 SAI(시스템 할당 ID)입니다. |
Azure Machine Learning Workspace Connection Secrets Reader 1 |
엔드포인트 ID가 작업 영역 연결에서 비밀을 읽을 수 있습니다. | 엔드포인트 ID는 SAI(시스템 할당 ID)입니다. 엔드포인트는 기본 비밀 저장소에 대한 액세스를 적용하는 플래그를 사용하여 만들어집니다. 엔드포인트를 만드는 사용자 ID 에는 작업 영역 연결에서 비밀을 읽을 수 있는 동일한 권한이 있습니다. 2 |
1 Azure Machine Learning Workspace Connection Secrets Reader
역할에 대한 자세한 내용은 ID에 권한 할당을 참조하세요.
2 엔드포인트 ID가 SAI인 경우에도 적용 플래그가 설정되지 않았거나 사용자 ID에 권한이 없으면 이 역할에 대한 자동 역할 할당이 없습니다. 자세한 내용은 비밀 삽입으로 온라인 엔드포인트를 배포하는 방법을 참조하세요.
엔드포인트 ID가 사용자 할당 ID인 경우 자동 역할 할당이 없습니다. 이 경우 필요에 따라 엔드포인트 ID에 역할을 수동으로 할당해야 합니다.
권한 부여의 권한 및 범위 선택
Azure RBAC를 사용하면 특정 범위에서 허용 및/또는 거부된 작업 집합으로 역할을 정의하고 할당할 수 있습니다. 비즈니스 요구 사항에 따라 이러한 역할 및 범위를 사용자 지정할 수 있습니다. 다음 예는 시작점으로 사용되며 필요에 따라 확장될 수 있습니다.
사용자 ID의 예
- 앞의 컨트롤 플레인 작업 표와 데이터 평면 작업 표에 나열된 모든 작업을 제어하려면 권한 작업
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
가 포함된 기본 제공 역할AzureML Data Scientist
를 사용하는 것이 좋습니다. - 특정 엔드포인트에 대한 작업을 제어하려면
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>
범위를 사용하는 것이 좋습니다. - 작업 영역의 모든 엔드포인트에 대한 작업을 제어하려면
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
범위를 사용하는 것이 좋습니다.
엔드포인트 ID의 예
- 사용자 컨테이너가 BLOB을 읽을 수 있도록 하려면 권한 데이터 작업
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
포함된 기본 제공 역할Storage Blob Data Reader
사용하는 것이 좋습니다.
컨트롤 플레인 작업의 지침에 대한 자세한 내용은 Azure Machine Learning에 대한 액세스 관리 참조하세요. 역할 정의, 범위 및 역할 할당에 대한 자세한 내용은 Azure RBAC 참조하세요. 할당된 역할의 범위를 알아보려면 Azure RBAC의 범위 이해를 참조하세요.