Políticas
Para controlar quién tiene acceso a Data Science y el tipo de acceso para cada grupo de usuarios, debe crear políticas.
Para supervisar los recursos de Data Science, se le debe otorgar el acceso necesario en una política. Esto se aplica tanto si utiliza la consola como la API de REST con un SDK, una CLI u otra herramienta. La política debe otorgarle acceso a los servicios de supervisión y a los recursos que se supervisen. Si intenta realizar una acción y obtiene un mensaje indicando que no tiene permiso o que no está autorizado, confirme con un administrador el tipo de acceso que se le ha otorgado y en qué compartimento puede trabajar. Para obtener más información sobre las autorizaciones de los usuarios para la supervisión, consulte la sección Autenticación y autorización del servicio relacionado, Supervisión o Notificaciones.
Por defecto, solo los usuarios del grupo Administrators
tienen acceso a todos los recursos de Data Science. Para todos los demás usuarios implicados en Data Science, debe crear nuevas políticas que les asignen los derechos adecuados a los recursos de Data Science.
Para obtener una lista completa de las políticas de OCI, consulte Referencia de políticas.
Tipos de recursos
Data Science ofrece tanto tipos de recursos individuales como agregados para escribir políticas.
Puede utilizar los tipos de recursos agregados para escribir menos políticas. Por ejemplo, en lugar de permitir que un grupo gestione data-science-projects
, data-science-notebook-sessions
, data-science-models
y data-science-work-requests
, puede tener una política que permita al grupo gestionar el tipo de recurso agregado data-science-family
.
Tipo de recurso agregado
data-science-family
Tipos de recursos individuales
data-science-projects
data-science-notebook-sessions
data-science-models
data-science-modelversionsets
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-schedules
data-science-model-groups
data-science-model-group-version-histories
Variables soportadas
Para agregar condiciones a las políticas, puede utilizar variables generales de OCI o variables específicas del servicio.
Data Science soporta las Variables generales para todas las solicitudes para su uso con recursos, además de las siguientes variables específicas del servicio:
Operaciones para este tipo de recurso... |
Puede utilizar estas variables... |
Tipo de Variable |
Comentarios |
---|---|---|---|
|
|
Entidad (OCID) |
No disponible para utilizar con |
|
Cadena |
No disponible para utilizar con |
El usuario que crea un Notebook es el único usuario que puede abrirlo y utilizarlo.
Ejemplos de diversas operaciones
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
Detalles de combinaciones de verbo + tipo de recurso
Hay varios verbos y tipos de recurso de OCI que puede utilizar para crear una política.
Una sintaxis de política es similar a esta:
allow <subject> to <verb> <resource_type> in <location> where <conditions>.
A continuación se describen los permisos y las operaciones de API que abarcan cada verbo para Data Science. El nivel de acceso es acumulativo a medida que se desplaza de inspect
a read
a use
a manage
. Un signo más (+)
en una celda de la tabla indica un acceso incremental en comparación con la celda directamente por encima, mientras que "no extra" indica que no hay acceso incremental.
Las API cubiertas para el tipo de recurso data-science-projects
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
|
|
|
|
No extra |
|
|
|
No extra |
Las API cubiertas para el tipo de recurso data-science-notebook-sessions
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
Las API cubiertas para el tipo de recurso data-science-models
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
Las API cubiertas para el tipo de recurso data-science-modelversionsets
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
A continuación se muestran las API cubiertas para el tipo de recurso data-science-model-deployments
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
Las API cubiertas para el tipo de recurso data-science-work-requests
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
A continuación se muestran las API cubiertas para el tipo de recurso data-science-jobs
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A continuación se muestran las API cubiertas para el tipo de recurso data-science-job-runs
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
|
|
|
|
Aquí se muestran las API cubiertas para el tipo de recurso data-science-pipelines
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
|
|
|
|
|
|
|
|
(También necesita |
Aquí se muestran las API cubiertas para el tipo de recurso data-science-pipelineruns
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
|
|
|
|
Las API cubiertas para el tipo de recurso data-science-private-endpoint
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
|
|
|
|
No extra |
|
|
|
|
Aquí se muestran las API cubiertas para el tipo de recurso data-science-schedule
. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
|
|
|
|
No extra |
|
|
|
No extra |
Las API cubiertas para el tipo de recurso data-science-model-groups
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
Las API cubiertas para el tipo de recurso data-science-model-group-version-histories
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Verbos |
Permisos |
API totalmente cubiertas |
API parcialmente cubiertas |
---|---|---|---|
|
|
|
No extra |
|
|
|
No extra |
|
|
|
No extra |
|
|
|
|
Ejemplos de políticas
Las API cubren el agregado data-science-family
de Data Science y los tipos de recursos individuales. Por ejemplo, allow group <group_name> to manage data-science-family in compartment <compartment_name>
es lo mismo que escribir las siguientes cuatro políticas:
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>
Para obtener una guía paso a paso sobre la configuración de políticas, consulte: 4. Creación de políticas en el tutorial Configuración manual de un arrendamiento de Data Science.
Ejemplo: vista de lista
Permite a un grupo ver simplemente la lista de todos los modelos de Data Science en un compartimento específico:
allow group <group_name> to inspect data-science-models in compartment
<compartment_name>
El verbo read
para data-science-models
cubre los mismos permisos y operaciones de API que el verbo inspect
con el permiso DATA_SCIENCE_MODEL_READ
y las operaciones de API que abraca, como GetModel
y GetModelArtifact
.
Ejemplo: todas las operaciones
Permite a un grupo realizar todas las operaciones que se muestran para DATA_SCIENCE_MODEL_READ
en un compartimento especificado:
allow group <group_name> to read data-science-models in compartment
<compartment_name>
El verbo manage
para data-science-models
incluye las mismas operaciones de permisos y API que el verbo read
, además de las API para los permisos DATA_SCIENCE_MODEL_CREATE
, DATA_SCIENCE_MODEL_MOVE
, DATA_SCIENCE_MODEL_UPDATE
y DATA_SCIENCE_MODEL_DELETE
. Por ejemplo, un usuario puede suprimir un modelo solo con el permiso de gestión o el permiso DATA_SCIENCE_MODEL_DELETE
específico. Con el permiso read
para data-science-models
, un usuario no puede suprimir los modelos.
Ejemplos: gestionar todos los recursos
Permite a un grupo gestionar todos los recursos para el uso de Data Science:
allow group <group_name> to manage <data_science_family> in compartment
<compartment_name>
Permite a un grupo gestionar todos los recursos de Data Science, excepto la supresión de proyectos de Data Science:
allow group <group_name> to manage <data_science_family> in compartment
<compartment_name> where request.permission !='DATA_SCIENCE_PROJECT_DELETE'
Las API cubiertas para el tipo de recurso data-science-projects
se muestran aquí. Las API se muestran en orden alfabético para cada permiso.
Ejemplos de políticas
Hemos identificado las siguientes sentencias de política que probablemente adoptará en un arrendamiento para despliegues de modelos:
allow group <group-name> to manage data-science-models
in compartment <compartment-name>
manage
para limitar lo que pueden hacer los usuarios.
allow group <group-name> to manage data-science-model-deployments
in compartment <compartment-name>
manage
se puede cambiar para limitar lo que pueden hacer los recursos.
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> }
Ejemplos de puestos y ejecuciones de trabajos
(Opcional) Puede integrar el registro para los trabajos. Cuando está activado, el recurso de ejecución de trabajo requiere permisos para emitir logs en el servicio Logging. Debe crear un grupo dinámico de ejecuciones de trabajos con:
all { resource.type='datasciencejobrun', resource.compartment.id='<job-run-compartment-ocid>' }
A continuación, permita que este grupo dinámico escriba en los logs del servicio Logging:
allow dynamic-group <job-runs-dynamic-group> to use log-content in compartment <your-compartment-name>
Por último, el usuario que inicia las ejecuciones de trabajos también debe tener acceso para utilizar grupos de logs y logs:
Si utiliza un grupo dinámico de principal de instancia para crear e iniciar ejecuciones de trabajos, debe aplicar políticas de grupo al grupo dinámico. En concreto, el principal de instancia debe tener definida la política to manage log-groups
.
allow group <group-name> to manage log-groups in compartment <compartment-name>
allow group <group-name> to use log-content in compartment <compartment-name>
(Opcional) No se necesitan políticas adicionales para ejecutar trabajos con un entorno conda de Data Science. Para ejecutar trabajos con un entorno conda personalizado publicado, el recurso de ejecución de trabajo necesita permisos para descargar el entorno conda desde Object Storage de su arrendamiento. Debe permitir que el grupo dinámico de ejecuciones de trabajos acceda a los objetos del compartimento con:
allow dynamic-group <job-runs-dynamic-group> to read objects in compartment <compartment-name> where target.bucket.name='<bucket-name>'
Para extraer la imagen de contenedor de OCIR, agregue la siguiente política:
allow dynamic-group <your-dynamic-group> to read repos in compartment <compartment-name>
Si el repositorio está en el compartimento raíz, debe permitir la lectura para el arrendamiento con:
allow dynamic-group <your-dynamic-group> to read repos in tenancy where all {target.repo.name=<repository-name>}
Ejemplos para pipelines
Data Science utiliza otros servicios de OCI para ejecutar pipelines, principalmente trabajos. Para funcionar correctamente, los pipelines necesitan permisos para utilizar esos recursos en su arrendamiento o compartimento. Debe crear grupos dinámicos y políticas para utilizar pipelines de Data Science.
Cree un nuevo grupo dinámico o actualice un grupo dinámico existente para agregar las siguientes filas:
Para permitir que las ejecuciones de pipeline accedan a servicios de OCI como Logging, Networking, Object Storage, etc.:
all {resource.type='datasciencepipelinerun',resource.compartment.id='ocid1.compartment.oc1..<>'}
Si el pipeline incluye al menos un trabajo como paso, debe permitir que la ejecución del trabajo acceda a los recursos:
all {resource.type='datasciencejobrun',resource.compartment.id='ocid1.compartment.oc1..<>'}
Al trabajar desde sesiones de bloc de notas mediante la autenticación de entidad de recurso, deberá permitir que el bloc de notas acceda a los recursos:
all {resource.type='datasciencenotebooksession',resource.compartment.id='ocid1.compartment.oc1..<>'}
Ahora, agregue las políticas relevantes para permitir que el grupo dinámico acceda a los recursos de un compartimento o arrendamiento. A continuación se muestran algunas políticas de ejemplo útiles para el grupo dinámico:
(Opcional) Permita gestionar todos los recursos de Data Science, como blocs de notas, trabajos, pipelines, etc.:
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage data-science-family in compartment <YOUR_COMPARTMENT_NAME>
(Opcional) Permita utilizar redes, incluido el uso de OCI Object Storage y File Storage Service:
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use virtual-network-family in compartment <YOUR_COMPARTMENT_NAME>
(Opcional) Permitir gestionar Object Storage:
allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage objects in compartment <YOUR_COMPARTMENT_NAME>
(Opcional) Permita iniciar sesión en los logs del servicio 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>