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.
Tipo de recurso | Permisos |
---|---|
programa de recursos |
|
resource-schedule-workrequest |
|
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
Escribir | Descripción de Tipo |
---|---|
Cadena | Texto con formato libre |
Lista (tipo) | Lista de entidades o cadenas |
Entidad | OCID |
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.
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.
Variable | Tipo de variable | Descripción |
---|---|---|
Para las solicitudes iniciadas por el usuario: request.user.id
|
ENTITY
|
OCID del usuario que realiza la llamada OCID de los grupos de |
request.principal.group.tag.
|
STRING |
Valor de cada etiqueta de un grupo del que el principal es miembro |
request.principal.compartment.tag.
|
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.
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 |
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.
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
Tipo de recurso | Inspeccionar | Lectura | Usar | Gestionar |
---|---|---|---|---|
RESOURCE-SCHEDULE |
RESOURCE_SCHEDULE_INSPECT |
RESOURCE_SCHEDULE_READ |
ninguno |
|
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.
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.
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.
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