← cd ~/roles
// roles/azure · ai-machine-learning
Cognitive Services Custom Vision DeploymentAzure built-in role
Publish, unpublish or export models. Deployment can view the project but can't update.
| Role ID | 5c4089e1-6d96-4d2f-b296-c1bc7137275f |
|---|---|
| Category | Ai-machine-learning |
| Actions | 1 |
| Data actions | 7 |
Before you assign it
- It reaches the data, not just the resource. It has 7 data actions, such as reading blobs, secrets or messages.
What it can do
| Permission | What it allows |
|---|---|
Microsoft.CognitiveServices/*/read | Any read operation on anything under Microsoft.CognitiveServices |
Data actions
| Permission | What it allows |
|---|---|
Microsoft.CognitiveServices/accounts/CustomVision/*/read | Any read operation on anything under Microsoft.CognitiveServices/accounts/CustomVision |
Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions |
Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/publish/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/publish |
Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/export/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/export |
Microsoft.CognitiveServices/accounts/CustomVision/projects/quicktest/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/projects/quicktest |
Microsoft.CognitiveServices/accounts/CustomVision/classify/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/classify |
Microsoft.CognitiveServices/accounts/CustomVision/detect/* | Every operation under Microsoft.CognitiveServices/accounts/CustomVision/detect |
Data actions it can't do
| Permission | What it allows |
|---|---|
Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read | Exports a project. |
Assign it
Scope it as tightly as you can: a resource or resource group rather than the whole subscription.
az role assignment create \
--assignee "jane.doe@contoso.com" \
--role "Cognitive Services Custom Vision Deployment" \
--scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
-RoleDefinitionName "Cognitive Services Custom Vision Deployment" `
-Scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(resourceGroup().id, principalId, '5c4089e1-6d96-4d2f-b296-c1bc7137275f')
properties: {
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5c4089e1-6d96-4d2f-b296-c1bc7137275f')
principalId: principalId
}
}Who already has it?
authorizationresources
| where type == "microsoft.authorization/roleassignments"
| where tostring(properties.roleDefinitionId) endswith "5c4089e1-6d96-4d2f-b296-c1bc7137275f"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)Other ai-machine-learning roles
- AzureML Metrics Writer (preview) · 1 permission
- Cognitive Services Data Reader · 1 permission
- Cognitive Services Immersive Reader User · 1 permission
- Cognitive Services Usages Reader · 1 permission
- Search Index Data Reader · 1 permission
- AzureML Compute Operator · 2 permissions
- AzureML Registry User · 2 permissions
- Cognitive Services Custom Vision Contributor · 2 permissions