Políticas de IAM del programador de recursos

Obtenga información sobre cómo utilizar las políticas de IAM para garantizar un acceso seguro al programador de recursos a fin de crear y gestionar programas del programador de recursos y otras funciones.

Autenticación, autorización y políticas necesarias

El programador de recursos utiliza las políticas de IAM para garantizar el acceso seguro al programador de recursos, crear programas y utilizar programas para gestionar recursos. Cada servicio de Oracle Cloud Infrastructure se integra con IAM con fines de autenticación y autorización para todas las interfaces (la consola, el SDK o la CLI, y la API de REST).

Usted u otro administrador de la organización deben configurar grupos , compartimentos y políticas que controlen al usuario el nivel y el tipo de acceso a los servicios y recursos. Estas políticas controlan quién puede crear usuarios nuevos, crear y gestionar la red en la nube, crear instancias, crear cubos, descargar objetos, etc. Para obtener más información, consulte Gestión de dominios de identidad. Para obtener detalles específicos sobre la escritura de políticas de los distintos servicios, consulte Referencia de políticas.

Políticas necesarias

Para crear y gestionar programas, debe crear una política para otorgar a los usuarios permiso para crear y cambiar programas. También debe crear una política para otorgar permisos de programación para gestionar recursos.

Los siguientes ejemplos muestran cómo funcionan estas políticas.

Ejemplo 1. Esta política otorga a los usuarios permiso para crear y modificar programas

Permita al grupo ResourceScheduleUsers ver y mostrar los programas de recursos en el arrendamiento.

Allow ResourceScheduleUsers to inspect resource-schedule in tenancy

Ejemplo 2

Esta política otorga al programa de recursos permiso para realizar una acción en el recurso de destino.

Cuando se crea un programa de recursos, por defecto, no tiene permiso para realizar la acción en los recursos de destino, por lo que debe otorgarle permiso.

El siguiente ejemplo permite a cualquier usuario realizar una acción en un recurso de destino.

Allow any-user to manage <resource_type (instance, database, and others)> in compartment id <target_compartment_ocid> where all {request.principal.type='resourceschedule',request.principal.id='ocid_of_resourceschedule'}

Los usuarios que no sean administradores y necesiten utilizar los recursos de Oracle Cloud Infrastructure que posee su compañía deben ponerse en contacto con su administrador para configurar sus ID de usuario. El administrador puede confirmar a qué compartimento o compartimentos deben tener acceso estos usuarios.

Para utilizar cualquiera de las operaciones de API del programador de recursos, debe estar autorizado en una política de IAM. Si no tiene autorización, póngase en contacto con el administrador. Si es un administrador que necesita escribir políticas para otorgar acceso a los usuarios, consulte Gestión de dominios de identidad.

Tipos de recursos

En la siguiente tabla, se muestran los tipos de recursos utilizados en Resource Scheduler y los permisos REQUIRED para utilizarlos.

Tipos de recursos y permisos
Tipo de recurso Permisos
programa de recursos
  • RESOURCE_SCHEDULE_INSPECT
  • RESOURCE_SCHEDULE_READ
  • RESOURCE_SCHEDULE_CREATE
  • RESOURCE_SCHEDULE_UPDATE
  • RESOURCE_SCHEDULE_MOVE
  • RESOURCE_SCHEDULE_DELETE
resource-schedule-workrequest
  • RESOURCE_SCHEDULE_WORKREQUEST_INSPECT
  • RESOURCE_SCHEDULE_WORKREQUEST_READ

Variables soportadas

El programador de recursos soporta todas las variables generales.

Para obtener más información, consulte Variables generales para todas las solicitudes y las variables que se muestran en la siguiente tabla:

Reglas de Nomenclatura

Las variables se especifican en minúsculas y separadas por guiones.

target.tag-namespace.name # "name"indicates a unique key
target.display-name # "display-name"indicates a non-unique description

Consulte Variables generales para todas las solicitudes, además de las variables que se muestran en la siguiente tabla:

Tipos y orígenes de variables

Tipos de variables
Escribir Descripción de Tipo
Cadena Texto con formato libre
Lista (tipo) Lista de entidades o cadenas
Entidad OCID
Orígenes de variables
Origen Descripción de Origen
Solicitud Procede de la entrada de la solicitud
Derivado Procede de la solicitud.
Almacenado Procede del servicio y la entrada retenida
Calculado Se calcula a partir de los datos del servicio

Variables para cada solicitud

En la siguiente tabla, se muestran las variables required, que son proporcionadas por los servicios para cada solicitud.

Variables necesarias del programador de recursos
Variable Tipo de variable Descripción
target.compartment.id ENTITY OCID del recurso primario para la solicitud
request.operation STRING ID de operación, por ejemplo, GetUser para la solicitud
target.resource.kind STRING Nombre de tipo de recurso del recurso primario de la solicitud

En la siguiente tabla, se muestran las variables automáticas, que proporciona el SDK para cada solicitud.

Variables automáticas
Variable Tipo de variable Descripción

Para las solicitudes iniciadas por el usuario:

request.user.id

request.groups.id

ENTITY

LIST(ENTITY)

OCID del usuario que realiza la llamada

OCID de los grupos de request.user.id

request.principal.group.tag.

<tagNS>.<tagKey

STRING Valor de cada etiqueta de un grupo del que el principal es miembro
request.principal.compartment.tag.

<tagNS>.<tagKey

STRING Valor de cada etiqueta de un compartimento del que el principal es miembro

En la siguiente tabla se muestran las variables dinámicas, que IAM AuthZ calcula implícitamente.

Variables dinámicas
Variable Tipo de variable Descripción
request.principal.group.tag.<tagNS>.<tagKey> STRING

Valor de cada etiqueta de un grupo del que el principal es miembro.

request.principal.compartment.tag.<tagNS>.<tagKey STRING Valor de cada etiqueta del compartimento que contiene el principal.
target.resource.tag.<tagNS>.<tagKey> STRING

Valor de cada etiqueta en el recurso de destino. (Se calcula en función del valor de tagSlug proporcionado por el servicio en cada solicitud).

target.resource.compartment.tag.<tagNS>.<tagKey> STRING

Valor de cada etiqueta del compartimento que contiene el recurso de destino.

Detalles de las combinaciones de verbo + tipo de recurso

En las siguientes tablas, se muestran los permisos y las operaciones de API que cubre cada verbo. El nivel de acceso es acumulativo a medida que pasa de inspect > read > use > manage. Un signo más (+) en una celda de la tabla indica un acceso incremental en comparación con la celda situada directamente encima, mientras que "sin extra" indica que no hay un acceso incremental.

Para obtener más información sobre los permisos, consulte Permisos.

Permisos necesarios para cada operación de API

Muestre los atributos específicos de la operación que pone a disposición del compilador de políticas. Para un tipo de recurso específico, debe tener el mismo juego de atributos en todas las tareas (obtener, enumerar, suprimir y más). La única excepción es para la tarea Create, donde aun no tendrá el ID para ese objeto, por lo cual no podrá tener un atributo target.RESOURCE-KIND.id para Create.

Para obtener información sobre los permisos, consulte Permisos.

En el siguiente cuadro se muestran las operaciones del programador de recursos en un orden lógico, agrupadas por tipo de recurso.

Permisos necesarios para cada operación de API del programador de recursos
API Permisos necesarios para utilizar la operación Operación
ListSchedules RESOURCE_SCHEDULE_INSPECT Devolver una lista de programas de recursos.
GetSchedule RESOURCE_SCHEDULE_READ Obtener un programa de recursos.
CreateSchedule RESOURCE_SCHEDULE_CREATE Cree un programa de recursos.
UpdateSchedule RESOURCE_SCHEDULE_UPDATE Actualizar un programa de recursos.
DeleteSchedule RESOURCE_SCHEDULE_DELETE Suprimir un programa de recursos.
ChangeScheduleCompartment RESOURCE_SCHEDULE_MOVE Cambiar compartimento de programa de recurso
ListWorkRequests RESOURCE_SCHEDULE_WORKREQUEST_INSPECT Enumerar las solicitudes de trabajo asociadas con una programación de recursos.
GetWorkRequest RESOURCE_SCHEDULE_WORKREQUEST_READ Obtención de una solicitud del trabajo.

Mapa Metaverb

Mapa Metaverb
Tipo de recurso Inspeccionar Lectura Usar Gestionar
RESOURCE-SCHEDULE RESOURCE_SCHEDULE_INSPECT RESOURCE_SCHEDULE_READ ninguno
  • RESOURCE_SCHEDULE_CREATE
  • RESOURCE_SCHEDULE_UPDATE
  • RESOURCE_SCHEDULE_UPDATE
  • RESOURCE_SCHEDULE_MOVE
  • RESOURCE_SCHEDULE_DELETE
RESOURCE-SCHEDULE-WORKREQUEST RESOURCE_SCHEDULE_WORKREQUEST_INSPECT RESOURCE_SCHEDULE_WORKREQUEST_READ ninguno ninguno

Políticas de ejemplo

Puede utilizar estas políticas de ejemplo como plantillas para crear y gestionar (crear, suprimir, activar y otras) sus propias políticas del programador de recursos.

Nota

Para utilizar programas de recursos, debe crear una política para otorgar a los usuarios permiso para crear un programa y debe crear una política para otorgar un permiso de programa para gestionar recursos.

Ejemplo 1

Esta política otorga a los usuarios permiso para gestionar programas de recursos en su arrendamiento.

Este ejemplo permite a un grupo de usuarios designado gestionar programas de recursos en todo el arrendamiento:

Allow group <group_name> to manage resource-schedule-family in tenancy

Por ejemplo:

Allow group YourResourceScheduleAdminGroup to manage resource-schedule-family in tenancy

Ejemplo 2

Esta política otorga a los usuarios permiso para gestionar programas de recursos en un compartimento específico.

El siguiente ejemplo permite a un grupo gestionar programas de recursos en un compartimento con nombre:

Allow group <group_name> to manage resource-schedule-family in compartment <compartment_name>

Por ejemplo:

Allow group ResourceScheduleAdmins to manage resource-schedule-family in compartment ResourceScheduleCompartment

Ejemplo 3

Esta política proporciona un permiso de programación de recursos para realizar una acción en un recurso.

Cuando se crea un programa de recursos, por defecto, no tiene permiso para realizar la acción en los recursos de destino. Debe otorgarle permiso.

Esta política proporciona un permiso de programación para gestionar recursos predefinidos, como instancias de un compartimento.

El siguiente ejemplo permite a un usuario gestionar un tipo de recurso en un compartimento donde all{request.principal.type='resourceschedule',request.principal.id='<ocid_of_resourceschedule>:
Allow any-user to manage <resource_type> in compartment id <compartment_ocid> where all{request.principal.type='resourceschedule',request.principal.id='<ocid_of_resourceschedule>'}

Por ejemplo:

Allow any-user to manage instance in compartment id ocid.compartment.oc1...q7fa where all{request.principal.type='resourceschedule',request.principal.id='ocid.resourceschedule.oc1.iad.axgr...dt8zb'}

Ejemplo 4

Esta política de ejemplo muestra cómo otorgar un permiso de programación de recursos para realizar una acción como grupo dinámico.

En primer lugar, cree un grupo dinámico para identificar los recursos para los que desea autorizar el acceso. El grupo dinámico necesita una o más reglas de coincidencia, como se muestra en el siguiente ejemplo.

En el siguiente ejemplo se muestra cómo crear un grupo dinámico para el programador de recursos denominado resource-scheduler-dynamic-group:

ALL {resource.type='resourceschedule', resource.id='ocid.resourceschedule.oc1.iad.axgr...dt8zb'}

A continuación, configure las políticas adecuadas.

En el siguiente ejemplo se muestra cómo permitir que dynamic-group resource-scheduler-dynamic-group gestione functions-family en el arrendamiento:
Allow dynamic-group resource-scheduler-dynamic-group to manage functions-family in tenancy