Project Based Authorization¶
Pre-requisites¶
Ensure PostgreSQL has been installed.
Ensure Authentication is enabled.
Ensure Open Policy Agent authorization is enabled, along with project-based auth.
Policies Setup¶
This demo assumes the existence of two users in your OIDC provider: alice and bob.
Both
aliceandbobbelong to thedata-scientistgroup.From the role grants, they both get read-write access to all namespaces and the
defaultproject.
In addition:
alicehas read-write access to theirisandincomeprojects.bobhas read-only access to theincomeproject.
These permissions are reflected in the following seldon-deploy-policies ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: seldon-deploy-policies
namespace: seldon-system
data:
data: |-
{
"role_grants": {
"data-scientist": [
{
"action": "read",
"resource": "namespace/*"
},
{
"action": "write",
"resource": "namespace/*"
},
{
"action": "read",
"resource": "project/default"
},
{
"action": "write",
"resource": "project/default"
}
]
},
"user_grants": {
"alice": [
{
"action": "read",
"resource": "project/iris"
},
{
"action": "write",
"resource": "project/iris"
},
{
"action": "read",
"resource": "project/income"
},
{
"action": "write",
"resource": "project/income"
}
],
"bob": [
{
"action": "read",
"resource": "project/income"
}
]
}
}
Confirm Policies Are Working¶
Log in as
alice.Go to the
Model Catalogpage and create the following models (see Model Catalog demo for detailed instructions):Name
URI
Project
Artifact type
1
Iris
gs://seldon-models/scv2/samples/rolling/iris/v1
default
SciKit Learn
2
Iris
gs://seldon-models/scv2/samples/rolling/iris/v1
iris
SciKit Learn
2
Income
gs://seldon-models/scv2/examples/mlserver_1.4.0/income/classifier
income
SciKit Learn
Your Model Catalog page should look similar to the following now:

Create a pipeline from each of these models using the
Deployfunctionality from the Model Catalog. Make sure to set the deployment type asSeldon ML Pipeline.The pipeline names could be:
iris-defaultiris-irisincome
Your
Overviewpage should look similar to the following now:
Log out from the
aliceprofile and log in asbob.Confirm you only see the pipelines in the
defaultandincomeprojects, but not theirisproject.
Confirm you only see the models in the
defaultandincomeprojects in the Model Catalog, but not theirisone.
Confirm that you cannot delete or modify the
incomemodel in the Model Catalog, sincebobhas onlyreadpermissions on theincomeproject.
Confirm that you cannot delete or modify the
incomePipeline in theOverviewpage.