Stratégies de déploiement de modèle

Vous devez créer un groupe d'utilisateurs autorisés à utiliser des déploiements de modèle pour pouvoir déployer un modèle avec une ressource de déploiement de modèle.

Vous pouvez également créer un groupe dynamique de ressources (comme des sessions de bloc-notes) autorisé à créer un déploiement. Dans ce cas, toute personne pouvant accéder à la session de bloc-notes peut utiliser l'identité de la session et créer un déploiement de modèle. La méthode d'authentification à partir d'une session de bloc-notes recourt aux principaux de ressource.

Le même modèle s'applique lors de l'appel de l'adresse de modèle après le déploiement. Un groupe d'utilisateurs ou de ressources doit être autorisé à appeler le modèle.

Nous pensons que les exemples suivants correspondent aux instructions de stratégie les plus courantes à utiliser avec un déploiement de modèle, et les exemples de stratégie de déploiement de modèle contiennent d'autres exemples.

Gestion des stratégies de déploiement de modèle

Permet au groupe d'utilisateurs <group-name> d'effectuer toutes les opérations CRUD sur les modèles stockés dans le catalogue de modèles. Tout utilisateur voulant déployer un modèle via le déploiement de modèle doit également accéder au modèle à déployer.
allow group <group-name> to manage data-science-models 
in compartment <compartment-name>
Permet à un groupe d'utilisateurs <group-name> d'effectuer toutes les opérations CRUD, y compris l'appel de l'adresse d'inférence, sur des ressources de déploiement du modèle dans un compartiment particulier. Vous pouvez modifier le verbe manage pour limiter ce que les utilisateurs peuvent faire.
allow group <group-name> to manage data-science-model-deployments 
in compartment <compartment-name>
Permet à un groupe dynamique de ressources (comme une session de bloc-notes) d'effectuer toutes les opérations CRUD, y compris l'appel de l'adresse d'inférence, sur la ressource de déploiement d'un modèle dans un compartiment particulier. Le verbe 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>

Les exemples de stratégie précédents sont permissifs. Vous pouvez créer des stratégies plus restrictives. Par exemple, vous limitez les personnes et les ressources pouvant appeler l'adresse de prédiction du déploiement du modèle.

Autoriser l'accès à la stratégie d'adresse de prédiction ou de diffusion en continu

Permet à un groupe d'utilisateurs <group-name> d'effectuer toutes les opérations CRUD, y compris l'appel de l'adresse d'inférence, sur des ressources de déploiement du modèle dans un compartiment particulier. Vous pouvez modifier le verbe manage pour limiter ce que les utilisateurs peuvent faire.
allow group <group-name> to manage data-science-model-deployments 
in compartment <compartment-name>
Vous pouvez également autoriser les ressources à faire de même. Seul le groupe dynamique de ressources dans le groupe dynamique indiqué peut appeler l'adresse de modèle pour les ressources de déploiement de modèle créées dans un compartiment spécifique.
allow dynamic-group <dynamic-group-name-2> to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} 
in compartment <compartment-name>

Octroi à un déploiement de modèle l'accès à un bucket conda publié

(Facultatif) Permet à un déploiement de modèle d'accéder aux environnements conda publiés stockés dans un bucket Object Storage. Cela est requis si vous voulez utiliser les environnements conda publiés pour capturer les dépendances tierces d'un modèle.
allow any-user to read objects in compartment <compartment-name>
where ALL { request.principal.type='datasciencemodeldeployment', 
target.bucket.name=<published-conda-envs-bucket-name> }

Octroi à un déploiement de modèle de l'accès au service Logging

(Facultatif) Permet à un déploiement de modèle d'émettre des journaux vers le service Logging. Vous avez besoin de cette stratégie si vous utilisez la journalisation dans un déploiement de modèle. Cette instruction est permissive. Vous pouvez, par exemple, restreindre le droit d'utilisation du contenu de journal dans un compartiment spécifique.
allow any-user to use log-content in tenancy 
where ALL {request.principal.type = 'datasciencemodeldeployment'}

Octroi à un déploiement de modèle de l'accès à un bucket Object Storage

(Facultatif) Permet à un déploiement de modèle d'accéder à un bucket Object Storage qui réside dans une location. Par exemple, un modèle déployé va lire des fichiers (notamment un fichier CSV de recherche) à partir d'un bucket Object Storage que vous gérez.
allow any-user to read objects in compartment <compartment-name> 
where ALL { request.principal.type='datasciencemodeldeployment', target.bucket.name=<bucket-name> }

Octroi à un déploiement de modèle de l'accès à un conteneur personnalisé à l'aide du principal de ressource

Les stratégies peuvent être configurées comme suit :

Configurer des groupes dynamiques et créer des stratégies dans le groupe dynamique

Créer un groupe dynamique:

ALL { resource.type = 'datasciencemodeldeployment' }

Permet à un groupe dynamique de lire un conteneur personnalisé.

allow dynamic-group <dynamic-group-name> to read repos in compartment <compartment-name> where ANY {
    request.operation='ReadDockerRepositoryMetadata',
    request.operation='ReadDockerRepositoryManifest',
    request.operation='PullDockerLayer'

Si le référentiel se trouve dans le compartiment racine, autoriser la lecture de la location :

allow dynamic-group <dynamic-group-name> to read repos in tenancy where ANY {
    request.operation='ReadDockerRepositoryMetadata',
    request.operation='ReadDockerRepositoryManifest',
    request.operation='PullDockerLayer'
}

Autres méthodes d'authentification et d'autorisation

Le déploiement de modèle prend en charge uniquement l'autorisation et l'authentification définies par le service OCI Identity and Access Management (IAM). Le déploiement de modèle ne prend pas en charge d'autres méthodes d'autorisation et d'authentification, comme OAuth ou l'authentification d'accès de base.