Problem Statement
Imagine a healthcare SaaS app storing sensitive patient data in Azure Storage. Their data engineers needed read access to process analytics, but were accidentally granted full Storage Blob Data Contributor permissions. One misstep in a script led to unintended deletion of critical files, triggering a compliance audit and a week-long recovery effort.
Solution Steps
1. Audit Existing Permissions
Use PowerShell to list current role assignments for your storage account:
$storageAccountId = "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}" Get-AzRoleAssignment -Scope $storageAccountId | Format-Table DisplayName, RoleDefinitionName
Example output:
DisplayName RoleDefinitionName ----------- ------------------ Data Team Storage Blob Data Contributor Admin Team Owner
2. Define Custom RBAC Roles
Create a Data Engineer role (read-only) and a Storage Admin role (write/delete scoped to a container).
data-engineer-role.json
{ "Name": "Storage Blob Data Reader Custom", "Description": "Read and list blobs in assigned containers.", "Actions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/read", "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read" ], "AssignableScopes": ["/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}/blobServices/default/containers/analytics"]}
storage-admin-role.json
{ "Name": "Storage Blob Admin Scoped", "Description": "Full access to a specific container.", "Actions": ["*"], "NotActions": [ "Microsoft.Authorization/*/write" // Block role assignment changes ], "AssignableScopes": ["/subscriptions/{sub-id}/.../containers/secure-patient-data"]}
Deploy the roles via PowerShell:
New-AzRoleDefinition -InputFile "data-engineer-role.json" New-AzRoleDefinition -InputFile "storage-admin-role.json"
3. Assign Roles with Least Privilege
In the Azure Portal:
Navigate to your storage account → Access Control (IAM).
Click Add role assignment → choose your custom role.
Scope the assignment to a specific container (not the entire storage account!).
4. Architecture Flow
Alternatives Approachs Compared- Built-in roles (e.g., Contributor)
- Pros: Quick to implement
- Cons: Overly broad permissions
- Access Keys
- Pros: Simple
- Cons: No identity-centric security
- Custom RBAC
- Pros: Granular control
- Cons: Requires upfront planning
Results
After implementing custom roles:
- 80% reduction in overprivileged identities.
- Zero accidental deletions in 6 months.
- Achieved HIPAA compliance for patient data containers.
Lessons learned:
- Scope roles to containers, not entire storage accounts.
- Use Azure Policy to audit non-compliant assignments.
- Combine with Azure Monitor alerts for suspicious activity.
What’s your biggest RBAC challenge? Share your story in the comments!

.png)

.png)
This is classic pro
ReplyDelete