azureblog.co.uk
← cd ~/roles
// roles/azure · containers

Azure Red Hat OpenShift Image Registry OperatorAzure built-in role

Enables permissions for the operator to manage a singleton instance of the OpenShift image registry. It manages all configuration of the registry, including creating storage.

Role ID8b32b316-c2f5-4ddf-b05b-83dacd2d08b5
CategoryContainers
Actions25
Data actions5

Before you assign it

  • It reaches the data, not just the resource. It has 5 data actions, such as reading blobs, secrets or messages.

What it can do

PermissionWhat it allows
Microsoft.Storage/storageAccounts/blobServices/readList blob services
Microsoft.Storage/storageAccounts/blobServices/containers/readReturns a container
Microsoft.Storage/storageAccounts/blobServices/containers/writeReturns the result of patch blob container
Microsoft.Storage/storageAccounts/blobServices/containers/deleteReturns the result of deleting a container
Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/actionReturns a user delegation key for the blob service
Microsoft.Storage/storageAccounts/readReturns the list of storage accounts or gets the properties for the specified storage account.
Microsoft.Storage/storageAccounts/writeCreates a storage account with the specified parameters or update the properties or tags or adds custom domain for the specified storage account.
Microsoft.Storage/storageAccounts/deleteDeletes an existing storage account.
Microsoft.Storage/storageAccounts/listKeys/actionReturns the access keys for the specified storage account.
Microsoft.Storage/storageAccounts/PrivateEndpointConnectionsApproval/actionApprove Private Endpoint Connections
Microsoft.Resources/tags/writeUpdates the tags on a resource by replacing or merging existing tags with a new set of tags, or removing existing tags.
Microsoft.Network/privateEndpoints/writeCreates a new private endpoint, or updates an existing private endpoint.
Microsoft.Network/privateEndpoints/readGets an private endpoint resource.
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/writePuts a Private DNS Zone Group
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readGets a Private DNS Zone Group
Microsoft.Network/privateDnsZones/readGet the Private DNS zone properties, in JSON format. Note that this command does not retrieve the virtual networks to which the Private DNS zone is linked or the record sets contained within the zone.
Microsoft.Network/privateDnsZones/writeCreate or update a Private DNS zone within a resource group. Note that this command cannot be used to create or update virtual network links or record sets within the zone.
Microsoft.Network/privateDnsZones/join/actionJoins a Private DNS Zone
Microsoft.Network/privateDnsZones/A/writeCreate or update a record set of type 'A' within a Private DNS zone. The records specified will replace the current records in the record set.
Microsoft.Network/privateDnsZones/virtualNetworkLinks/writeCreate or update a Private DNS zone link to virtual network.
Microsoft.Network/privateDnsZones/virtualNetworkLinks/readGet the Private DNS zone link to virtual network properties, in JSON format.
Microsoft.Network/networkInterfaces/readGets a network interface definition.
Microsoft.Network/virtualNetworks/subnets/readGets a virtual network subnet definition
Microsoft.Network/virtualNetworks/subnets/join/actionJoins a virtual network. Not Alertable.
Microsoft.Network/virtualNetworks/join/actionJoins a virtual network. Not Alertable.

Data actions

PermissionWhat it allows
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/deleteReturns the result of deleting a blob
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/writeReturns the result of writing a blob
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/readReturns a blob or a list of blobs
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/actionReturns the result of adding blob content
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/actionMoves the blob from one path to another

Assign it

Scope it as tightly as you can: a resource or resource group rather than the whole subscription.

azure cli
az role assignment create \
  --assignee "jane.doe@contoso.com" \
  --role "Azure Red Hat OpenShift Image Registry Operator" \
  --scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
powershell3 lines
New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
  -RoleDefinitionName "Azure Red Hat OpenShift Image Registry Operator" `
  -Scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
bicep7 lines
resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(resourceGroup().id, principalId, '8b32b316-c2f5-4ddf-b05b-83dacd2d08b5')
  properties: {
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8b32b316-c2f5-4ddf-b05b-83dacd2d08b5')
    principalId: principalId
  }
}

Who already has it?

kql · azure resource graph
authorizationresources
| where type == "microsoft.authorization/roleassignments"
| where tostring(properties.roleDefinitionId) endswith "8b32b316-c2f5-4ddf-b05b-83dacd2d08b5"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)

Other containers roles

Find the smallest role for a task →