Hi! I'm new to Azure and struggling to find solution to properly setup impersonation for the following use case.
Problem I'm trying to solve is pushing data to a Storage that belong to a different accounts where I have no access. It can be hundreds accounts/storages I need to work with.
The problem has the following constraints:
- I can't ask for target account credentials and I can't share credentials for my account with other account managers. However, I can provide steps for account managers so they can allow impersonation.
- I don't need to run a VM inside Azure. (I can potentially relax on this one if there is no other way)
In order to illustrate it better, this is how above problem can be solved with other cloud providers:
AWS:
- I create a role on my side. let's call it MyRole.
- Account manager creates a role that can access a bucket on their side. let's call it TargetRole
- Account manager creates trusted relationship between MyRole and TargetRole, so that I can use MyRole to call AssumeRole API and get temp credentials for TargetRole and access the bucket.
GCP:
- I create service account on my side. let's call it MyServiceAccount.
- Account manager creates a service account that can access a bucket on their side. let's call it TargetServiceAccount
- Account manager grants MyServiceAccount access to impersonate TargetServiceAccount. Now I can use MyServiceAccount to call impersonation API and get temp credentials for TargetServiceAccount and access the bucket.
What would be the right way to implement above scenario in Azure?