Politiques IAM du programmateur de ressources

Découvrez comment utiliser les politiques IAM pour garantir un accès sécurisé au programmateur de ressources afin de créer et de gérer des programmations du programmateur de ressources et d'autres fonctionnalités.

Authentification, autorisation et politiques requises

Le programmateur de ressources utilise les politiques IAM pour garantir un accès sécurisé au programmateur de ressources, pour créer des programmations et pour utiliser des programmations pour gérer les ressources. Chaque service d'Oracle Cloud Infrastructure est intégré avec le service GIA aux fins d'authentification et d'autorisation, pour toutes les interfaces (console, trousse SDK ou interface de ligne de commande et API REST).

Vous ou un autre administrateur de votre organisation devez configurer des groupes, des compartiments et des politiques qui contrôlent l'utilisateur le niveau et le type d'accès aux services et aux ressources. Ces politiques contrôlent qui peut créer des utilisateurs, créer et gérer le réseau en nuage, créer des instances, créer des seaux, télécharger des objets, etc. Pour plus d'informations, voir Gestion des domaines d'identité. Pour des détails précis sur l'écriture de politiques pour les différents services, voir Informations de référence sur les politiques.

Politiques requises

Pour créer et gérer des programmes, vous devez créer une politique permettant aux utilisateurs de créer et de modifier des programmes. Vous devez également créer une politique pour accorder aux programmations l'autorisation de gérer les ressources.

Les exemples suivants montrent comment ces politiques fonctionnent.

exemple 1. Cette politique permet aux utilisateurs de créer et de modifier des programmes

Autorisez le groupe ResourceScheduleUsers à voir et à lister les programmes de ressources dans la location.

Allow ResourceScheduleUsers to inspect resource-schedule in tenancy

Exemple 2

Cette politique donne l'autorisation de programmer une ressource pour effectuer une action sur la ressource cible.

Lorsqu'un programme de ressources est créé, par défaut, il n'est pas autorisé à effectuer l'action sur les ressources cibles. Vous devez donc lui accorder l'autorisation nécessaire.

L'exemple suivant permet à tout utilisateur d'effectuer une action sur une ressource cible.

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'}

Les utilisateurs non administrateurs qui doivent utiliser les ressources Oracle Cloud Infrastructure dont votre société est responsable doivent communiquer avec leur administrateur pour configurer leurs ID utilisateur. L'administrateur peut confirmer le ou les compartiments auxquels ces utilisateurs doivent avoir accès.

Pour utiliser l'une des opérations d'API du programmateur de ressources, vous devez être autorisé dans une politique IAM. Si vous n'êtes pas autorisé, communiquez avec l'administrateur. Si vous êtes un administrateur qui doit écrire des politiques pour accorder l'accès aux utilisateurs, voir Gestion des domaines d'identité

Types de ressource

Le tableau suivant répertorie les types de ressource utilisés dans Resource Scheduler et les autorisations REQUIRED pour les utiliser.

Types de ressource et autorisations
Type de ressource Permissions
calendrier des ressources
  • RESOURCE_SCHEDULE_INSPECT
  • RESOURCE_SCHEDULE_READ
  • RESOURCE_SCHEDULE_CREATE
  • RESOURCE_SCHEDULE_UPDATE
  • RESOURCE_SCHEDULE_MOVE
  • RESOURCE_SCHEDULE_DELETE
ressource-calendrier-demande de travail
  • RESOURCE_SCHEDULE_WORKREQUEST_INSPECT
  • RESOURCE_SCHEDULE_WORKREQUEST_READ

Variables prises en charge

Le planificateur de ressources prend en charge toutes les variables générales.

Pour plus d'informations, voir Variables générales pour toutes les demandes et les variables répertoriées dans le tableau suivant :

Conventions d'attribution de nom

Les variables sont en minuscules et séparées par des tirets.

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

Voir Variables générales pour toutes les demandes, plus les variables répertoriées dans le tableau suivant :

Types et sources de variables

Types de variable
Type Description du type
Chaîne Texte de forme libre
Liste(Type) Liste d'entités ou de chaînes
Entité OCID
Sources de variable
Source Description source
Demande Provient de l'entrée de la demande
Calculé Provient de la demande
Stockée Provient du service, entrée conservée
Calculé Calculé à partir des données du service

Variables pour chaque demande

Le tableau suivant présente les variables obligatoires, qui sont fournies par les services pour chaque demande.

Variables requises du programmateur de ressources
Variable Type de variable Description
target.compartment.id ENTITY OCID de la ressource principale de la demande
request.operation STRING ID opération, par exemple GetUser pour la demande
target.resource.kind STRING Nom du type de ressource de la ressource principale de la demande

Le tableau suivant présente les variables automatiques, fournies par la trousse SDK pour chaque demande.

Variables automatiques
Variable Type de variable Description

Pour les demandes lancées par l'utilisateur :

request.user.id

request.groups.id

ENTITY

LIST(ENTITY)

OCID de l'utilisateur appelant

OCID des groupes de request.user.id

request.principal.group.tag.

<tagNS>.<tagKey

STRING Valeur de chaque marqueur d'un groupe dont le principal est un membre
request.principal.compartment.tag.

<tagNS>.<tagKey

STRING Valeur de chaque marqueur d'un compartiment dont le principal est un membre

Le tableau suivant présente les variables dynamiques, qui sont calculées implicitement par le service IAM AuthZ.

Variables dynamiques
Variable Type de variable Description
request.principal.group.tag.<tagNS>.<tagKey> STRING

Valeur de chaque marqueur d'un groupe dont le principal est un membre.

request.principal.compartment.tag.<tagNS>.<tagKey STRING Valeur de chaque marqueur du compartiment qui contient le principal.
target.resource.tag.<tagNS>.<tagKey> STRING

Valeur de chaque marqueur sur la ressource cible. (Calculé sur la base de tagSlug fourni par le service à chaque demande.)

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

Valeur de chaque marqueur du compartiment contenant la ressource cible.

Informations détaillées sur les combinaisons Verbe + Type de ressource

Les tableaux suivants présentent les autorisations et les opérations d'API couvertes par chaque verbe. Le niveau d'accès est cumulatif depuis inspect > read > use > manage. Un signe plus (+) dans une cellule de tableau indique un accès incrémentiel par rapport à la cellule directement au-dessus, alors que la mention "aucun accès supplémentaire" indique qu'il n'y a aucun accès incrémentiel.

Pour plus de détails sur les autorisations, voir Autorisations.

Autorisations requises pour chaque opération d'API

Listez les attributs propres à l'opération que vous mettez à la disposition du compilateur de politiques. Pour un type de ressource spécifique, vous devez avoir le même jeu d'attributs pour toutes les tâches (get, list, delete, etc.). À l'exception de la tâche Create, pour laquelle vous ne disposez pas encore de l'ID de l'objet, vous ne pouvez pas avoir d'attribut target.RESOURCE-KIND.id pour Create.

Pour plus d'informations sur les autorisations, voir Autorisations.

Le tableau suivant liste les opérations d'API du programmateur de ressources dans un ordre logique, regroupées par type de ressource.

Autorisations requises pour chaque opération d'API du programmateur de ressources
API Autorisations requises pour utiliser l'opération Opération
ListSchedules RESOURCE_SCHEDULE_INSPECT Sert à retourner une liste d'horaires de ressources.
GetSchedule RESOURCE_SCHEDULE_READ Obtenir un programme de ressources.
CreateSchedule RESOURCE_SCHEDULE_CREATE Créer un programme de ressources.
UpdateSchedule RESOURCE_SCHEDULE_UPDATE Mettre à jour un programme de ressources.
DeleteSchedule RESOURCE_SCHEDULE_DELETE Supprimer un programme de ressources.
ChangeScheduleCompartment RESOURCE_SCHEDULE_MOVE Modifier le compartiment du programme de ressources
ListWorkRequests RESOURCE_SCHEDULE_WORKREQUEST_INSPECT Liste des demandes de travail associées à un horaire de ressource.
GetWorkRequest RESOURCE_SCHEDULE_WORKREQUEST_READ Obtenir une demande de travail.

Mappage Metaverb

Mappage Metaverb
Type de ressource Inspecter Lecture Utiliser Gérer
RESOURCE-SCHEDULE RESOURCE_SCHEDULE_INSPECT RESOURCE_SCHEDULE_READ aucune
  • 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 aucune aucune

Exemple de politiques

Vous pouvez utiliser ces exemples de politiques en tant que modèles pour créer et gérer (créer, supprimer, activer et autres) vos propres politiques de planificateur de ressources.

Note

Pour utiliser des programmes de ressources, vous devez créer une politique pour accorder aux utilisateurs l'autorisation de créer un programme et vous devez créer une politique pour accorder à un programme l'autorisation de gérer des ressources.

Exemple 1

Cette politique permet aux utilisateurs de gérer les programmes de ressources dans leur location.

Cet exemple permet à un groupe d'utilisateurs nommé de gérer les programmes de ressources dans l'ensemble de la location :

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

Exemple :

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

Exemple 2

Cette politique permet aux utilisateurs de gérer les programmes de ressources dans un compartiment spécifique.

L'exemple suivant permet à un groupe de gérer les programmes de ressources dans un compartiment nommé :

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

Exemple :

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

Exemple 3

Cette politique donne une autorisation de programmation de ressource pour effectuer une action sur une ressource.

Lorsqu'un programme de ressources est créé, par défaut, il n'est pas autorisé à effectuer l'action sur les ressources cibles. Vous devez lui accorder l'autorisation.

Cette politique permet de programmer la gestion de ressources prédéfinies telles que les instances d'un compartiment.

L'exemple suivant permet à un utilisateur de gérer un type de ressource dans un compartiment où 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>'}

Exemple :

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'}

Exemple 4

Cet exemple de politique montre comment accorder une autorisation de programmation de ressource pour effectuer une action en tant que groupe dynamique.

Tout d'abord, créez un groupe dynamique pour identifier les ressources pour lesquelles vous souhaitez autoriser l'accès. Le groupe dynamique nécessite une ou plusieurs règles de correspondance, comme illustré dans l'exemple suivant.

L'exemple suivant montre comment créer un groupe dynamique pour le programmateur de ressources nommé resource-scheduler-dynamic-group :

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

Ensuite, configurez les politiques appropriées.

L'exemple suivant montre comment autoriser dynamic-group resource-scheduler-dynamic-group à gérer functions-family dans la location :
Allow dynamic-group resource-scheduler-dynamic-group to manage functions-family in tenancy