File Storage with Lustre

Utilisez le service Oracle Cloud Infrastructure Identity and Access Management (IAM) pour créer des politiques pour le service File Storage with Lustre.

Cette rubrique présente des informations détaillées sur l'écriture de politiques permettant de contrôler l'accès au service File Storage with Lustre. Pour plus d'informations, voir Aperçu des politiques IAM.

Aperçu de la syntaxe d'une politique

La syntaxe globale d'un énoncé de politique est la suivante :

allow <subject> to <verb>
                    <resource-type> in <location> where <condition>
                

Par exemple, vous pouvez spécifier :

  • Un groupe ou un groupe dynamique par nom ou OCID comme <subject> . Vous pouvez également utiliser any-user pour couvrir tous les utilisateurs de la location.

  • inspect, read, use et manage comme <verb> pour accorder à <subject> l'accès à une ou plusieurs autorisations.

    inspect > read > use > manage représentent des niveaux d'accès croissants et les autorisations octroyées sont cumulatives. Par exemple, use inclut read et la possibilité de mettre à jour.

  • Une famille de ressources comme virtual-network-family pour resource-type . Vous pouvez également spécifier une ressource individuelle d'une famille telle que vcns et subnets.

  • Un compartiment par nom ou OCID comme <location> . Vous pouvez également utiliser tenancy pour couvrir l'ensemble de la location.

Pour plus d'informations sur la création de politiques, voir Introduction aux politiques et Informations de référence sur les politiques.

Types de ressource

Pour permettre aux utilisateurs d'accéder aux ressources File Storage with Lustre, créez des politiques IAM avec des types de ressource File Storage with Lustre.

Type de ressource agrégé

  • lustre-file-family

Une politique utilisant <verb> lustre-file-family est égale à l'écriture d'une politique ayant un énoncé <verb> <individual resource-type> distinct pour chacun des types de ressource individuels.

Voir les tableaux sous Détails pour les combinaisons Verbes + Type de ressource pour plus de détails sur les opérations d'API couvertes par chaque verbe, pour chaque type de ressource individuel inclus dans lustre-file-family.

Types de ressource individuels

Pour accéder aux ressources File Storage with Lustre, utilisez chacun des types de ressource suivants :

  • lustre-file-system
  • lfs-work-request

Pour plus d'informations, voir Exemples de politiques.

Variables prises en charge

Le service File Storage with Lustre prend en charge toutes les variables générales, ainsi que celles répertoriées ici.

Pour plus d'informations sur les variables générales prises en charge par les services OCI, voir Variables générales pour toutes les demandes.

VariableType de variableSource
target.lustre-file-system.id Entité (OCID)Demande

Détails pour les combinaisons Verbes + Type de ressource

Vous pouvez utiliser divers verbes et types de ressource Oracle Cloud Infrastructure pour créer une politique.

Les tableaux suivants présentent les autorisations et les opérations d'API couvertes par chaque verbe pour le service File Storage with Lustre. Le niveau d'accès est cumulatif au fur et à mesure que vous progressez depuis inspect à read, use et manage. Un signe plus (+) dans une cellule de tableau indique un accès supplémentaire par rapport à la cellule qui la précède directement, alors que "aucun accès supplémentaire" indique qu'il n'y a aucun accès supplémentaire.

lustre-file-système
VerbesPermissionsAPI entièrement couvertesAPI partiellement couvertes
inspect

LUSTRE_FILE_SYSTEM_INSPECT

ListLustreFileSystems

aucune

lire

INSPECT +

LUSTRE_FILE_SYSTEM_READ

INSPECT +

GetLustreFileSystem

aucune

use

READ +

LUSTRE_FILE_SYSTEM_UPDATE

READ +

UpdateLustreFileSystem

aucune

manage

USE +

LUSTRE_FILE_SYSTEM_CREATE

LUSTRE_FILE_SYSTEM_DELETE

LUSTRE_FILE_SYSTEM_MOVE

USE +

CreateLustreFileSystem

DeleteLustreFileSystem

ChangeLustreFileSystemCompartment

aucune

lfs-work-request
VerbesPermissionsAPI entièrement couvertesAPI partiellement couvertes
inspect

LFS_WORK_REQUEST_INSPECT

ListWorkRequests

ListWorkRequestErrors

ListWorkRequestLogs

aucune

lire

INSPECT +

LFS_WORK_REQUEST_READ

INSPECT +

GetWorkRequest

aucune

use

READ +

aucune

READ +

aucune

aucune

manage

USE +

LFS_WORK_REQUEST_DELETE

USE +

CancelWorkRequest

aucune

Autorisations requises pour chaque opération d'API

Le tableau suivant liste les opérations d'API pour OCI Database with PostgreSQL dans un ordre logique, regroupées par type de ressource.

Les types de ressource sont lustre-file-system et lfs-work-request.

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

Autorisations requises
Opérations d'APIAutorisations requises pour utiliser l'opération
ListLustreFileSystems LUSTRE_FILE_SYSTEM_INSPECT
GetLustreFileSystem LUSTRE_FILE_SYSTEM_READ
CreateLustreFileSystem LUSTRE_FILE_SYSTEM_CREATE
UpdateLustreFileSystem LUSTRE_FILE_SYSTEM_UPDATE
DeleteLustreFileSystem LUSTRE_FILE_SYSTEM_DELETE
ChangeLustreFileSystemCompartment LUSTRE_FILE_SYSTEM_MOVE
ListObjectStorageLinks LFS_OBJECT_STORAGE_LINK_INSPECT
GetObjectStorageLink LFS_OBJECT_STORAGE_LINK_READ
CreateObjectStorageLink LFS_OBJECT_STORAGE_LINK_CREATE
DeleteObjectStorageLink LFS_OBJECT_STORAGE_LINK_DELETE
ChangeObjectStorageLinkCompartment LFS_OBJECT_STORAGE_LINK_MOVE
ListSyncJobs LFS_OBJECT_STORAGE_LINK_INSPECT
GetSyncJob LFS_OBJECT_STORAGE_LINK_READ
StartExportToObject LFS_EXPORT_TO_OBJECT
StartImportFromObject LFS_IMPORT_FROM_OBJECT
StopExportToObject LFS_EXPORT_TO_OBJECT
StopImportFromObject LFS_IMPORT_FROM_OBJECT
ListWorkRequests LFS_WORK_REQUEST_INSPECT
GetWorkRequest LFS_WORK_REQUEST_READ
CancelWorkRequest LFS_WORK_REQUEST_DELETE
ListWorkRequestErrors LFS_WORK_REQUEST_INSPECT
ListWorkRequestLogs LFS_WORK_REQUEST_INSPECT

Politiques pour la synchronisation bidirectionnelle entre le stockage d'objets et Lustre

Pour qu'un système de fichiers Lustre puisse synchroniser des données avec le stockage d'objets, vous devez lui accorder des autorisations spécifiques. Pour ce faire, créez des politiques de gestion des identités et des accès (IAM) qui permettent au système de fichiers Lustre d'effectuer des lectures à partir des objets et de les gérer dans les seaux de stockage d'objets.

L'utilisateur qui configure la synchronisation a besoin des autorisations suivantes :
  • Voir les seaux de stockage d'objets (pour sélection)
  • Créer, mettre à jour et gérer des liens de stockage d'objets
  • Possibilité de démarrer et d'arrêter des travaux sur le système de fichiers Lustre.
Le système de fichiers Lustre a besoin des autorisations suivantes :
  • Lire et gérer les objets dans le seau de stockage d'objets spécifié (pour la synchronisation de données).

Le seau de stockage d'objets n'a pas besoin d'autorisations explicites. Vous contrôlez plutôt l'accès au seau en accordant à la ressource Lustre l'autorisation de lire et de gérer les objets.

Voici comment affecter des autorisations :
  • Option 1 : Affecter des autorisations à l'aide d'un groupe dynamique : Créez des groupes dynamiques pour regrouper des ressources, telles que des systèmes de fichiers Lustre, et affectez-leur des politiques collectivement. Nous avons fourni quelques exemples.
  • Option 2 : Contrôler l'accès aux systèmes de fichiers Lustre (aucun groupe dynamique) : Si vous ne voulez pas configurer un groupe dynamique, vous pouvez toujours contrôler l'accès aux systèmes de fichiers Lustre à l'aide de conditions de type de ressource, avec ou sans marqueurs. Nous avons fourni quelques exemples.

Exemples de politique

Utilisez les exemples suivants pour créer des politiques communes en plus de celles requises pour les systèmes de fichiers et de celles requises si vous chiffrez des systèmes de fichiers avec votre propre clé.

Autoriser un groupe à utiliser mais pas à supprimer des systèmes de fichiers

allow group lfsadminusers to use lustre-file-family in compartment <file_system_compartment>
                        

Politiques de synchronisation bidirectionnelle du stockage d'objets à l'aide de groupes dynamiques

Pour définir un groupe dynamique qui inclut tous les systèmes de fichiers Lustre, utilisez :
resource.type='lustrefilesystem'

Pour étendre la définition du groupe dynamique à un seul compartiment Lustre spécifique, utilisez :

All {resource.type = 'lustrefilesystem', resource.compartment.id = '<comp_ocid>'}

Pour accorder au groupe dynamique l'accès à n'importe quel seau de stockage d'objets d'une location, utilisez :

allow dynamic-group lustre-fs-group to read buckets in tenancy
allow dynamic-group lustre-fs-group to manage objects in tenancy

Pour accorder au groupe dynamique l'accès à un seul compartiment Lustre dans une location, utilisez :

allow dynamic-group lustre-fs-group to read buckets in compartment <comp id or name e.g. cell:compute-data>
allow dynamic-group lustre-fs-group to manage objects in compartment <comp id or name e.g. cell:compute-data>

Politiques de synchronisation bidirectionnelle du stockage d'objets sans utiliser de groupes dynamiques

Pour permettre à tous les systèmes de fichiers Lustre d'un compartiment de lire les seaux de stockage d'objets et de gérer leur contenu, utilisez :
allow any-user to read buckets in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem'}
allow any-user to manage objects in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem'}
Note

Ne supprimez pas la condition request.principal.type = 'lustrefilesystem'. Il restreint l'accès aux ressources du système de fichiers Lustre uniquement - pas aux utilisateurs ou à d'autres services.
Pour limiter les autorisations aux seaux de stockage d'objets uniquement qui ont un marqueur spécifique, combinez un type de principal avec un marqueur, comme celui-ci :
allow any-user to read buckets in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem' , target.bucket.tag.<tag-namespace>.<tag-key> = <"tag-value">}
allow any-user to manage objects in compartment <comp id or name e.g. cell:compute-data> where ALL { request.principal.type = 'lustrefilesystem' , target.bucket.tag.<tag-namespace>.<tag-key> = <"tag-value">}