The way we use Azure Managed Applications is to offer an end-to-end solution to the customer. We must be able to hide the intellectual property, while offering a nice solution to the customer.
Resources within the managed application resource group are protected using deny assignments. Anything other than read is denied for all principles, except the managed application identity itself and the principles we included during the setup of the managed application.
In the managed application we have for example:
- App service or azure functions configured with system assigned identity, these app services should access the storage account, included in the same application, with Write permissions and using the system assigned identity
- Storage account
As it is now, the app service is not able to get any write permissions due to the deny assignment, since the newly created system assigned identity is not in the excluded principle list.
The only way I have found is by using the customer allowed actions to enable Write permissions on the storage account.
However, this beats the point of providing a "black box" to the customer, since he now has access to the storage account directly instead of using for example the API we are offering.
The only way we can counter this for the moment is using storage keys instead of system assigned identity within the managed application, but this not a wanted workaround.
Can the principes that are created during the setup of the managed application, also be automatically included in the excluded list of deny assignments? And by doing so, will the principle of a black box still be valid?
Any other solution that can help us?
Thanks!
I can only confirmed that this case is open with Azure support however so far the issue is unresolved. The Deny assignment in the managed resource group states clearly that write operations are only allowed for Admin principal - the rest is hard blocked.
For the moment I would consider RBAC in the managed applications as unsupported scenario. In our project we resorted to connection strings etc.