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