Tester et valider

Cette page couvre certains des tests qui peuvent être effectués directement à partir des instances de machine virtuelle qui sont membres des groupes dynamiques configurés. RCLONE et OCIFS doivent être testés de la même manière, à l'aide de diverses commandes qui testent l'accès en lecture et en écriture.

Test RCLONE

Dans le cadre de cet effort, la règle de conservation sur le seau est supprimée pendant une partie de temps, de sorte que nous puissions tester entièrement la capacité de rclone à lire et écrire dans un seau.

Une fois le test terminé, la règle peut être rétablie et verrouillée. Le test est effectué en commençant par un groupe dynamique ayant les autorisations "lecture de seau" et "lecture d'objet" sur tous les seaux du compartiment contenant le seau d'archives.

Pour voir une télécommande RCLONE configurée, exécutez la commande suivante :
OS prompt> rclone config show [OCI-IP]
type = oracleobjectstorage
provider = instance_principal_auth
namespace = <tenancy-namespace>
compartment = ocid1.compartment.oc1..xxx
region = us-ashburn-1
Toutes les commandes qui suivent nécessiteront OCI-IP pour faire référence à notre environnement de stockage d'objets et à nos données d'identification configurés. Pour synchroniser (copier ou mettre à jour) un fichier avec un seau, celui-ci a été pré-créé à l'aide de la console OCI, car notre jeu d'autorisations étroit n'inclut pas la création ou la suppression de seau. Le bloc suivant affiche l'opération de synchronisation, suivie d'une liste de seaux.
OS prompt> rclone sync rclone-test.txt OCI-IP:rclone-testing
OS prompt> rclone ls OCI-IP:rclone-testing 
 33 rclone-test.txt

La suppression de fichiers peut également être testée. Suivez la documentation RCLONE pour toutes les options disponibles, telles que le filtrage.

OS prompt> rclone delete OCI-IP:rclone-testing/rclone-test.txt

Modification de politique

Généralement, RCLONE retournera simplement à l'invite si l'opération réussit, mais il enverra un message d'erreur si les autorisations d'une opération particulière sont manquantes. Par exemple, si une tentative de suppression d'un seau est effectuée, compte tenu de nos autorisations définies précédemment, l'action échoue avec le message suivant :
OS prompt> rclone purge OCI-IP:rclone-testing
2024/08/29 14:36:15 ERROR : : Failed to rmdir: Error returned by ObjectStorage Service. Http Status Code: 404. Error Code: BucketNotFound. Opc request id: iad-1:xxx. Message: Either the bucket named 'rclone-testing' does not exist in the namespace '<namespace>' or you are not authorized to access it
Operation Name: DeleteBucket
Comme mentionné précédemment, les énoncés de politique qui avaient été définis pour le groupe dynamique peuvent être modifiés au besoin. Par exemple, pour autoriser la création ou la suppression d'un seau, vous pouvez ajouter l'énoncé suivant :
allow dynamic-group oci-rclone-full-dg to manage buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name =
    'rclone-testing'}
Après avoir ajouté cet énoncé de politique, vous pouvez relancer l'opération précédente et supprimer le seau.

Il est utile de garder un navigateur ouvert pour l'écran Stockage d'objets OCI et d'actualiser la page sur un seau afin que chaque opération puisse être vérifiée.

Test OCIFS

À l'aide des exemples fournis dans la section précédente, l'utilitaire OCIFS a été testé de différentes façons. Une fois que le groupe dynamique et la politique fonctionnent comme prévu, il est possible de modifier les politiques et de voir rapidement les résultats changer au fur et à mesure que les autorisations sont modifiées.

Il est recommandé de démonter les systèmes de fichiers OCIFS dans le cadre du test des modifications d'autorisation. La documentation fournit la syntaxe pour le démontage.

La mise en mémoire cache fournie par OCIFS est également disponible et a été testée dans le cadre de la solution. Il existe plusieurs options décrites, dont l'une fonctionnera avec la solution.

Note :

L'utilisation d'automount peut avoir une incidence sur la mise en mémoire cache OCIFS, car elle supprime la mémoire cache sauf si les options cache-reuse et cache-keep sont utilisées.

L'exemple suivant montre comment créer un point de montage et se connecter à un seau à l'aide d'OCIFS :

root OS prompt# mkdir /mnt/read-bucket
root OS prompt# ocifs --auth=instance_principal read-bucket /mnt/read-bucket/
root OS prompt# cd /mnt/read-bucket
root OS prompt# ls -al
total 0
drwxr-xr-x. 2 root root 6 Nov 6 14:56 .
drwxr-xr-x. 5 root root 68 Nov 6 14:56 ..
-rw-r--r--. 1 root root 4 Nov 6 14:57 file.txt
À titre de test des autorisations limitées, cette machine virtuelle ne doit pas pouvoir supprimer un fichier de ce seau. Une erreur doit se produire comme suit :
root OS prompt# rm file.txt
rm: remove regular file 'file.txt'? y
rm: cannot remove file.txt': Input/output error

D'autres tests avec des seaux, des définitions de groupe dynamique et des énoncés de politique supplémentaires peuvent être effectués. Autorisez une minute ou deux entre les modifications et les tests, afin que les autorisations puissent se propager.