Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Isolate workspaces into individual subscriptions #1073

Open
cricex opened this issue Nov 12, 2021 · 12 comments
Open

Isolate workspaces into individual subscriptions #1073

cricex opened this issue Nov 12, 2021 · 12 comments
Assignees
Labels

Comments

@cricex
Copy link

cricex commented Nov 12, 2021

Describe the solution you'd like
As an Information Security Officer
I want each workspace deployed into their own spoke subscription, each user's resources deployed into their own resource group within the workspace's subscription, and service resources deployed into a service resource group within the workspace's subscription
So that we may improve security isolation, billing isolation, and overcome subscription resource limitations

image

@cricex cricex added the feature label Nov 12, 2021
@marrobi
Copy link
Member

marrobi commented Nov 12, 2021

Thanks, we would be limited to 800 resource groups per subscription. Is that an issue?

The separate resource groups for services and user resources can be handled in the respective templates. So no changes to the TRE APIs, or resources processor are required.

The subscription piece is doable, but work required.

@cricex
Copy link
Author

cricex commented Nov 12, 2021

Is 800 a TRE or ARM limitation? The documentation states that there is a limitation of 980 resource groups per subscription. (https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#subscription-limits)

Regardless, I believe 800 or 980 resource groups (and therefore 799 or 979 individual researchers) is sufficiently high limitation for an individual workspace.

@joalmeid joalmeid added this to the Backlog milestone Apr 21, 2022
@marrobi
Copy link
Member

marrobi commented Jan 20, 2023

We will refine this feature into stages, separation of workspaces into subscriptions being the most requested ask.

@marrobi marrobi changed the title Isolate workspaces into individual subscriptions, user resources into user resource groups, and service resources into a core resource group Isolate workspaces into individual subscriptions Jun 1, 2023
@marrobi marrobi removed this from the Backlog milestone Jun 27, 2023
@SvenAelterman SvenAelterman self-assigned this Dec 21, 2023
@Danny-Cooke
Copy link

Danny-Cooke commented Jan 2, 2024

This feature has been requested by a third party so will be looking at how to deliver this or assist

@marrobi
Copy link
Member

marrobi commented Jan 2, 2024

@SvenAelterman @Danny-Cooke is it worth us getting on a call to discuss requirements? Then a design can be posted here and discussed?

@SvenAelterman
Copy link
Collaborator

We can. Unfortunately, our project has not progressed.

@marrobi
Copy link
Member

marrobi commented Feb 13, 2025

This branch shows how this might be done - haven't tested across multiple subscriptions.

https://github.com/marrobi/AzureTRE/tree/marrobi/workspace-different-subscription

Each workspace service would have to use the parent workspace_subscription_id when configuring the provider.

If someone wants to pick it up happy to help.

@TonyWildish-BH
Copy link
Contributor

that looks interesting, thanks Marcus. We may be able to pick this up in the near future, we're mapping out our future strategy for scaling up, hence all the tickets recently.

@SvenAelterman
Copy link
Collaborator

I am working with a customer who also needs a solution for 300+ workspaces. The customer is working with a partner on implementation.

I would propose we all work together on the solution? LMK if you'd be open to that.

If so, as a next step, we should individually review Marcus' work so far and then schedule a call to flesh out remaining work items and try to divide the tasks?

@TonyWildish-BH
Copy link
Contributor

I am working with a customer who also needs a solution for 300+ workspaces. The customer is working with a partner on implementation.

I would propose we all work together on the solution? LMK if you'd be open to that.

If so, as a next step, we should individually review Marcus' work so far and then schedule a call to flesh out remaining work items and try to divide the tasks?

I'd be interested, thanks.

@SvenAelterman
Copy link
Collaborator

This branch shows how this might be done - haven't tested across multiple subscriptions.

https://github.com/marrobi/AzureTRE/tree/marrobi/workspace-different-subscription

Each workspace service would have to use the parent workspace_subscription_id when configuring the provider.

If someone wants to pick it up happy to help.

We've evaluated this and this approach looks very good.

To extend this, we'd need to use a similar approach with an aliased azurerm provider for each workspace service, I presume? How would we get the subscription ID of the workspace passed on to the bundle for the workspace service without having to ask for it again in the UI?

I think we would use the same way the workspace_id gets passed along, but I can't recall how that happens? Is in the Python code or is it declaratively?

@marrobi
Copy link
Member

marrobi commented Feb 20, 2025

Correct, could get the workspace subscription ID as discussed here - #4284

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

No branches or pull requests

6 participants