File Storage avec des stratégies Lustre

Utilisez le service Oracle Cloud Infrastructure Identity and Access Management (IAM) afin de créer des stratégies pour File Storage avec des ressources Lustre.

Cette rubrique traite de la rédaction de stratégies visant à contrôler l'accès au service File Storage with Lustre. Pour plus d'informations, reportez-vous à Présentation des stratégies IAM.

Présentation de la syntaxe de stratégie

La syntaxe générale d'une instruction de stratégie est la suivante :

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

Voici des exemples de ce que vous pouvez indiquer :

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

  • inspect, read, use et manage en tant que <verb> pour accorder à <subject> des droits d'accès.

    Lorsque vous passez de inspect à read, puis à use, puis à manage, le niveau d'accès augmente généralement et les droits d'accès octroyés sont cumulés. Par exemple, use inclut read et autorise en plus la mise à jour.

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

  • Un compartiment par son nom ou son OCID en tant que <location> . Vous pouvez également utiliser tenancy pour couvrir l'intégralité de la location.

Pour plus d'informations sur la création de stratégies, reportez-vous à Introduction aux stratégies et à Référence de stratégie.

Types de ressource

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

Type agrégé de ressource

  • lustre-file-family

Une stratégie qui utilise <verb> lustre-file-family équivaut à écrire une règle avec une instruction <verb> <individual resource-type> distincte pour chaque type individuel de ressource.

Reportez-vous aux tableaux dans Détails des combinaisons de verbes et de type de ressource afin d'obtenir des détails sur le type individuel de ressource inclus dans lustre-file-family pour chaque opération d'API couverte par chaque verbe.

Types individuels de ressource

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

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

Pour plus d'informations, reportez-vous à Exemples de stratégie.

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, reportez-vous à Variables générales pour toutes les demandes.

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

Détails des combinaisons de verbe et de type de ressource

Vous pouvez utiliser différents verbes et types de ressource Oracle Cloud Infrastructure pour créer une stratégie.

Les tableaux suivants indiquent les droits d'accès et les opérations d'API couverts par chaque verbe pour File Storage with Lustre. Le niveau d'accès est cumulatif à mesure que vous passez d'un verbe à l'autre, dans l'ordre suivant : inspect, read, use, manage. La présence d'un signe plus (+) dans une cellule de tableau indique l'accès incrémentiel par rapport à la cellule qui la précède directement, tandis que la référence "aucun autre élément supplémentaire" indique l'absence d'accès incrémentiel.

système de fichiers lustre
VerbesDroits d'accèsAPI entièrement couvertesAPI partiellement couvertes
inspect

LUSTRE_FILE_SYSTEM_INSPECT

ListLustreFileSystems

aucun

lire

INSPECT +

LUSTRE_FILE_SYSTEM_READ

INSPECT +

GetLustreFileSystem

aucun

utiliser

READ +

LUSTRE_FILE_SYSTEM_UPDATE

READ +

UpdateLustreFileSystem

aucun

manage

USE +

LUSTRE_FILE_SYSTEM_CREATE

LUSTRE_FILE_SYSTEM_DELETE

LUSTRE_FILE_SYSTEM_MOVE

USE +

CreateLustreFileSystem

DeleteLustreFileSystem

ChangeLustreFileSystemCompartment

aucun

lfs-work-request
VerbesDroits d'accèsAPI entièrement couvertesAPI partiellement couvertes
inspect

LFS_WORK_REQUEST_INSPECT

ListWorkRequests

ListWorkRequestErrors

ListWorkRequestLogs

aucun

lire

INSPECT +

LFS_WORK_REQUEST_READ

INSPECT +

GetWorkRequest

aucun

utiliser

READ +

aucun

READ +

aucun

aucun

manage

USE +

LFS_WORK_REQUEST_DELETE

USE +

CancelWorkRequest

aucun

Droits d'accès requis pour chaque opération d'API

Le tableau suivant répertorie 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 droits d'accès, reportez-vous à Droits d'accès.

Droits d'accès requis
Opération d'APIDroits d'accès requis 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

Stratégies de synchronisation bidirectionnelle entre Object Storage et Lustre

Pour qu'un système de fichiers Lustre puisse synchroniser des données avec Object Storage, vous devez lui accorder des droits d'accès spécifiques. Pour ce faire, créez des stratégies Identity and Access Management (IAM) qui permettent au système de fichiers Lustre de lire et de gérer les objets dans les buckets Object Storage.

Remarque

Une fois que vous avez créé ou mis à jour des stratégies IAM, attendez 10 minutes avant de démarrer un travail de synchronisation pour vous assurer que les modifications de stratégie ont été entièrement propagées dans Oracle Cloud Infrastructure.
L'utilisateur qui configure la synchronisation doit disposer des autorisations suivantes :
  • Affichez les buckets Object Storage (pour la sélection).
  • Créer, mettre à jour et gérer des liens Object Storage.
  • Possibilité de démarrer et d'arrêter des travaux sur le système de fichiers Lustre.
Le système de fichiers Lustre requiert les autorisations suivantes :
  • Lire et gérer les objets dans le bucket Object Storage indiqué (pour la synchronisation des données).

Le bucket Object Storage ne nécessite pas de droits d'accès explicites. Au lieu de cela, vous contrôlez l'accès au bucket en accordant à la ressource Lustre l'autorisation de lire et de gérer les objets.

Pour affecter des autorisations, procédez comme suit :
  • Option 1 : affectation d'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 stratégies collectivement. Nous avons fourni quelques exemples.
  • Option 2 : contrôle de l'accès aux systèmes de fichiers Lustre (pas de groupe dynamique) : si vous ne voulez pas configurer de 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 balises. Nous avons fourni quelques exemples.
Conseil

Si le bucket Object Storage se trouve dans un compartiment imbriqué, dans la stratégie, indiquez le chemin complet du compartiment (par exemple, my-tenancy.subcompartmentA.subcompartmentB) ou utilisez l'OCID de compartiment.

Exemples de stratégie

Utilisez les exemples suivants pour créer des stratégies 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>
                        

Stratégies de synchronisation bidirectionnelle Object Storage à 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 à uniquement un compartiment Lustre spécifique, utilisez la commande suivante :

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

Pour accorder au groupe dynamique l'accès à n'importe quel bucket Object Storage dans une location, utilisez la commande suivante :

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>

Stratégies de synchronisation bidirectionnelle Object Storage sans utilisation de groupes dynamiques

Pour permettre à n'importe quel système de fichiers Lustre d'un compartiment de lire les buckets Object Storage 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'}
Remarque

N'enlevez pas la condition request.principal.type = 'lustrefilesystem'. Il limite l'accès aux ressources du système de fichiers Lustre uniquement, et non aux utilisateurs ou aux autres services.
Pour limiter les droits d'accès aux buckets Object Storage uniquement dotés d'une balise spécifique, combinez un type de principal avec une balise, comme suit :
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">}