-
Notifications
You must be signed in to change notification settings - Fork 155
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
RBAC for template access control #4315
Comments
On:
I'm not sure what you mean? Surely Azure ML would just not be deployed into the workspace? Can I suggest that we start with "As a TRE Admin I want to be able to define which templates can be deployed into a workspace by a Workspace Owner", rather than boil the ocean. I would see something like: "allowedChildResources": [
{
"name": "tre-service-azureml"
}
] We can then check for the presence of the "allowedServices", if not there, allow all (for backwards compatibility), if it is there then check the service name is listed before deploying. We can then move forward to look at versions, and another ask is maximum number of each type of child resource. |
True, in the current model, it's enough to simply not deploy the resource. However, features for the Workspace Admin are mostly a byproduct of what's needed for the TRE Admin, this is buy-one-get-one-free. The primary motivation for this work is for the TRE Admin to be able to control the introduction and deprecation of resource versions in a controlled manner, per workspace. Testing new versions in development environments is fine, but they should also, always, be tested in production before making them generally available. This approach, having a boolean flag for each (workspace, resource, version) triple allows that to be done properly. Making it two flags, instead of one, allows the possibility of extending this to functionality that the Workspace Admin is likely to want in future. |
This is something we've already started work on, would like to get other people's opinions.
Currently, the TRE supports only one
current
version of a template at a time, with that flag being TRE-wide for the given template. This makes it impossible to test newly-introduced services in the production instance without making them generally available. We want to replace that mechanism with something more flexible.The requirements we're working to are:
This requires an extension to the workspace document in CosmosDB. We're thinking along the lines of adding a block like this:
When a service is to be instantiated, by whoever it is, the list of versions that are allowed by both the TRE Admin (
version.enabled.TRE
) and the Workspace Admin (version.enabled.Workspace
) is retrieved, and the highest version number wins (or, stretching a bit, the user is offered a choice).The UI and the Resource Processor will both need some work to pull out and run the correct version, instead of using the
current
flag as at the moment.Managing the set of versions can be implemented in three phases:
tre
CLI for easier use.The absolute minimum we need is to satisfy requirements 1 and 2 above, with the first phase of implementation being adequate. With that, we can control the release of new versions of templates without risk to our users if something goes wrong.
I'd be very interested to hear opinions on this.
The text was updated successfully, but these errors were encountered: