Stratégies
Pour contrôler qui a accès à Data Science et le type d'accès de chaque groupe d'utilisateurs, vous devez créer des stratégies.
Pour surveiller les ressources Data Science, vous devez disposer de l'accès requis dans une stratégie. Cela s'applique que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. La stratégie doit vous donner accès aux services de surveillance ainsi qu'aux ressources surveillées. Si vous essayez d'effectuer une action et qu'un message indique que vous n'y êtes pas autorisé, vérifiez avec un administrateur le type d'accès qui vous a été accordé et le compartiment dans lequel vous pouvez travailler. Pour plus d'informations sur les autorisations utilisateur liées à la surveillance, reportez-vous à la section Authentification et autorisation du service associé , Monitoring ou Notifications.
Par défaut, seuls les utilisateurs du groupe Administrators
ont accès à toutes les ressources Data Science. Pour les autres utilisateurs de Data Science, vous devez créer des stratégies qui leur accordent les droits appropriés sur les ressources Data Science.
Pour obtenir la liste complète des stratégies OCI, reportez-vous à Référence de stratégie.
Types de ressource
Le service Data Science offre des types individuels et agrégés de ressource pour l'élaboration des stratégies.
Vous pouvez utiliser des types de ressource agrégés pour écrire moins de stratégies. Par exemple, au lieu d'autoriser un groupe à gérer data-science-projects
, data-science-notebook-sessions
, data-science-models
et data-science-work-requests
, vous pouvez disposer d'une stratégie permettant au groupe de gérer le type agrégé de ressource data-science-family
.
Type de ressource agrégé
data-science-family
Types individuels de ressource
data-science-projects
data-science-notebook-sessions
data-science-models
data-science-model-deployments
data-science-work-requests
data-science-jobs
data-science-job-runs
data-science-pipelines
data-science-pipeline-runs
data-science-private-endpoint
data-science-schedule
Variables prises en charge
Pour ajouter des conditions à vos stratégies, vous pouvez utiliser des variables générales ou propres à un service OCI.
Data Science prend en charge les variables générales pour toutes les demandes avec les ressources et les variables propres au service suivantes :
Opérations pour ce type de ressource... |
Variables pouvant être utilisées |
Type de variable |
Commentaires |
---|---|---|---|
|
|
Entité (OCID) |
Non disponible pour une utilisation avec |
|
Chaîne |
Non disponible pour une utilisation avec |
L'utilisateur qui crée un bloc-notes est le seul à pouvoir l'ouvrir et l'utiliser.
Exemples d'opérations diverses
allow group <data_science_hol_users> to manage data_science_projects
in compartment <datascience_hol>
allow group <data_science_hol_users> to manage data_science_models
in compartment <datascience_hol>
allow group <data_science_hol_users> to manage data_science_work_requests
in compartment <datascience_hol>
allow group <data_science_hol_users> to inspect data_science_notebook_sessions
in compartment <datascience_hol>
allow group <data_science_hol_users> to read data_science_notebook_sessions
in compartment <datascience_hol>
allow group <data_science_hol_users> to {DATA_SCIENCE_NOTEBOOK_SESSION_CREATE}
in compartment <datascience_hol>
allow group <data_science_hol_users> to
{DATA_SCIENCE_NOTEBOOK_SESSION_DELETE,DATA_SCIENCE_NOTEBOOK_SESSION_UPDATE,DATA_SCIENCE_NOTEBOOK
_SESSION_OPEN,DATA_SCIENCE_NOTEBOOK_SESSION_ACTIVATE,DATA_SCIENCE_NOTEBOOK_SESSION_DEACTIVATE}
in compartment <datascience_hol>
where target.notebook-session.createdBy = request.user.id
Détails des combinaisons de verbe et de type de ressource
Vous pouvez utiliser différents verbes et types de ressource OCI pour créer une stratégie.
La syntaxe d'une stratégie est la suivante :
allow <subject> to <verb> <resource_type> in <location> where <conditions>.
Voici une description des droits d'accès et des opérations d'API couvertes par chaque verbe dans Data Science. Le niveau d'accès est cumulatif à mesure que vous passez d'un verbe à l'autre, dans l'ordre suivant : inspect
, read
, use
et manage
. La présence d'un signe plus (+)
dans une cellule du tableau indique un accès incrémentiel par rapport à la cellule située directement au-dessus, tandis que la mention "aucun élément supplémentaire" indique l'absence d'accès incrémentiel.
Les API couvertes pour le type de ressource data-science-projects
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API complètement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
Les API couvertes pour le type de ressource data-science-notebook-sessions
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
|
Les API couvertes pour le type de ressource data-science-models
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
|
Les API couvertes pour le type de ressource data-science-work-requests
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
Les API couvertes pour le type de ressource data-science-model-deployments
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
Les API couvertes pour le type de ressource data-science-jobs
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les API couvertes pour le type de ressource data-science-job-runs
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
|
Les API couvertes pour le type de ressource data-science-pipelines
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
|
|
|
|
(Vous avez également besoin de |
Les API couvertes pour le type de ressource data-science-pipelineruns
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
|
Les API couvertes pour le type de ressource data-science-private-endpoint
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API entièrement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
Aucun élément supplémentaire |
|
|
|
|
Les API couvertes pour le type de ressource data-science-schedule
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Verbes |
Droits d'accès |
API complètement couvertes |
API partiellement couvertes |
---|---|---|---|
|
|
|
Aucun élément supplémentaire |
|
|
|
|
|
|
|
Aucun élément supplémentaire |
|
|
|
Aucun élément supplémentaire |
Exemples de stratégie
Les API couvrent les types de ressource individuels et le type agrégé data-science-family
Data Science. Par exemple, allow group <group_name> to manage data-science-family in compartment <compartment_name>
revient à écrire les quatre stratégies suivantes :
allow group <group_name>> to manage <data_science_projects> in compartment
<compartment_name>
allow group <group_name> to manage data-science-notebook-sessions in compartment
<compartment_name>
allow group <group_name> to manage data-science-models in compartment
<compartment_name>
allow group <group_name> to manage data-science-work-requests in compartment
<compartment_name>
Pour obtenir un guide pas à pas sur la configuration des stratégies, reportez-vous à : 4. Création de stratégies dans le tutoriel Configuration manuelle d'une location Data Science.
Exemple : vue de liste
Permet à un groupe d'afficher simplement la liste de tous les modèles Data Science dans un compartiment spécifique :
allow group <group_name> to inspect data-science-models in compartment
<compartment_name>
Le verbe read
pour data-science-models
couvre les mêmes droits d'accès et opérations d'API que le verbe inspect
avec le droit d'accès DATA_SCIENCE_MODEL_READ
et les opérations d'API qu'il couvre, comme GetModel
et GetModelArtifact
.
Exemple : toutes les opérations
Permet à un groupe d'effectuer toutes les opérations répertoriées pour DATA_SCIENCE_MODEL_READ
dans un compartiment indiqué :
allow group <group_name> to read data-science-models in compartment
<compartment_name>
Le verbe manage
pour data-science-models
inclut les mêmes droits d'accès et opérations d'API que le verbe read
, ainsi que les API pour les droits d'accès DATA_SCIENCE_MODEL_CREATE
, DATA_SCIENCE_MODEL_MOVE
, DATA_SCIENCE_MODEL_UPDATE
et DATA_SCIENCE_MODEL_DELETE
. Par exemple, un utilisateur peut supprimer un modèle uniquement avec le droit d'accès manage ou le droit d'accès DATA_SCIENCE_MODEL_DELETE
spécifique. Avec un droit d'accès read
pour data-science-models
, un utilisateur ne peut pas supprimer les modèles.
Exemples : gérer toutes les ressources
Permet à un groupe de gérer toutes les ressources pour Data Science :
allow group <group_name> to manage <data_science_family> in compartment
<compartment_name>
Permet à un groupe de gérer toutes les ressources Data Science, à l'exception de la suppression des projets Data Science :
allow group <group_name> to manage <data_science_family> in compartment
<compartment_name> where request.permission !='DATA_SCIENCE_PROJECT_DELETE'
Les API couvertes pour le type de ressource data-science-projects
sont répertoriées ici. Les API sont affichées par ordre alphabétique pour chaque droit d'accès.
Exemples de stratégie
Nous avons identifié les instructions de stratégie que vous êtes susceptible d'adopter dans une location pour les déploiements de modèle :
allow group <group-name> to manage data-science-models
in compartment <compartment-name>
manage
pour limiter ce que les utilisateurs peuvent faire.
allow group <group-name> to manage data-science-model-deployments
in compartment <compartment-name>
manage
peut être modifié pour limiter les actions que les ressources peuvent effectuer.
allow dynamic-group <dynamic-group-name> to manage data-science-model-deployments
in compartment <compartment-name>
allow dynamic-group <dynamic-group-name-2> to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT}
in compartment <compartment-name>
allow any-user to read objects in compartment <compartment-name>
where ALL { request.principal.type='datasciencemodeldeployment',
target.bucket.name=<published-conda-envs-bucket-name> }
allow any-user to use log-content in tenancy
where ALL {request.principal.type = 'datasciencemodeldeployment'}
allow any-user to read objects in compartment <compartment-name>
where ALL { request.principal.type='datasciencemodeldeployment', target.bucket.name=<bucket-name> }
Exemples de travaux et d'exécutions de travaux
(Facultatif) Vous pouvez intégrer la journalisation pour les travaux. Lorsque cette fonction est activée, la ressource de traitement de travail requiert des droits d'accès pour émettre des journaux au service Logging. Vous devez créer un groupe dynamique de traitements de travail avec la commande suivante :
all { resource.type='datasciencejobrun', resource.compartment.id='<job-run-compartment-ocid>' }
Autorisez ensuite ce groupe dynamique à écrire dans les journaux du service Logging :
allow dynamic-group <job-runs-dynamic-group> to use log-content in compartment <your-compartment-name>
Enfin, l'utilisateur qui démarre les traitements de travail doit également avoir accès aux groupes de journaux et aux journaux :
Si vous utilisez un groupe dynamique de principal d'instance pour créer et démarrer des traitements de travail, vous devez lui appliquer des stratégies de groupe. Plus précisément, la stratégie to manage log-groups
doit être définie pour le principal d'instance.
allow group <group-name> to manage log-groups in compartment <compartment-name>
allow group <group-name> to use log-content in compartment <compartment-name>
(Facultatif) Aucune stratégie supplémentaire n'est requise pour exécuter des travaux avec un environnement conda Data Science. Pour exécuter des travaux avec un environnement conda personnalisé publié, la ressource de traitement de travail nécessite des droits d'accès permettant de télécharger l'environnement conda à partir de l'instance Object Storage de votre location. Vous devez autoriser le groupe dynamique du traitement de travail à accéder aux objets de votre compartiment avec la commande suivante :
allow dynamic-group <job-runs-dynamic-group> to read objects in compartment <compartment-name> where target.bucket.name='<bucket-name>'
Pour extraire l'image de conteneur à partir d'OCIR, ajoutez la stratégie suivante :
allow dynamic-group <your-dynamic-group> to read repos in compartment <compartment-name>
Si le référentiel se trouve dans le compartiment racine, vous devez autoriser la lecture pour la location avec la commande suivante :
allow dynamic-group <your-dynamic-group> to read repos in tenancy where all {target.repo.name=<repository-name>}
Exemples pour les pipelines
Data Science utilise d'autres services OCI pour exécuter des pipelines, principalement des travaux. Pour fonctionner correctement, les pipelines nécessitent des droits d'accès permettant d'utiliser ces ressources sur votre location ou compartiment. Vous devez créer des groupes dynamiques et des stratégies pour utiliser les pipelines Data Science.
Créez un groupe dynamique ou mettez à jour un groupe dynamique existant pour ajouter les lignes suivantes :
Pour autoriser les exécutions de pipeline à accéder aux services OCI tels que Logging, Networking, Object Storage, etc., procédez comme suit :
all {resource.type='datasciencepipelinerun',resource.compartment.id='ocid1.compartment.oc1..<>'}
Si le pipeline inclut au moins un travail en tant qu'étape, vous devez autoriser l'exécution du travail à accéder aux ressources :
all {resource.type='datasciencejobrun',resource.compartment.id='ocid1.compartment.oc1..<>'}
Lorsque vous travaillez à partir de sessions de bloc-notes à l'aide de l'authentification de principal de ressource, vous devez autoriser le bloc-notes à accéder aux ressources :
all {resource.type='datasciencenotebooksession',resource.compartment.id='ocid1.compartment.oc1..<>'}
A présent, ajoutez les stratégies appropriées pour permettre à votre groupe dynamique d'accéder aux ressources d'un compartiment ou d'une location. Voici quelques exemples de stratégies utiles pour votre groupe dynamique :
(Facultatif) Autorisez à gérer toutes les ressources Data Science, telles que les blocs-notes, les travaux, les pipelines, etc. :
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage data-science-family in compartment <YOUR_COMPARTMENT_NAME>
(Facultatif) Autorisez l'utilisation du réseau, y compris l'utilisation d'OCI Object Storage et du service File Storage :
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use virtual-network-family in compartment <YOUR_COMPARTMENT_NAME>
(Facultatif) Autorisez la gestion d'Object Storage :
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage objects in compartment <YOUR_COMPARTMENT_NAME>
(Facultatif) Autorisez la connexion aux journaux du service Logging :
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use log-content in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to read repos in compartment <YOUR COMPARTMENT NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use object-family in compartment <YOUR_COMPARTMENT_NAME>
allow service datascience to use object-family in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> use file-systems in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> use mount-targets in compartment <YOUR_COMPARTMENT_NAME>
allow service datascience to use file-systems in compartment <YOUR_COMPARTMENT_NAME>
allow service datascience to use mount-targets in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> manage dataflow-run in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> read dataflow-application in compartment <YOUR_COMPARTMENT_NAME>
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> read object-family in compartment <YOUR_COMPARTMENT_NAME>
datascienceusers
.allow group datascienceusers to inspect compartments in tenancy
allow group datascienceusers in tenancy where all {target.rule.type='managed', target.event.source in ('dataflow')}
allow group datascienceusers to read dataflow-application in compartment <YOUR_COMPARTMENT_NAME>