Probar y validar

En esta página se tratan algunas de las pruebas que se pueden realizar directamente desde instancias de VM que son miembros de los grupos dinámicos configurados. RCLONE y OCIFS se deben probar de forma similar, mediante una variedad de comandos que prueban el acceso de lectura y escritura.

Pruebas de RCLONE

Como parte de este esfuerzo, la regla de retención del cubo se elimina durante una parte del tiempo, para que podamos probar completamente la capacidad de rclone para leer y escribir en un cubo.

Una vez finalizadas las pruebas, la regla se puede restablecer y bloquear. Las pruebas se realizan empezando por un grupo dinámico con permisos de "lectura de bloque" y "lectura de objeto" en todos los cubos del compartimento que contiene el cubo de archivo.

Para ver un RCLONE remoto configurado, ejecute el siguiente comando:
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
Todos los comandos siguientes necesitarán OCI-IP para hacer referencia a nuestro entorno y credenciales de almacenamiento de objetos configurados. Para sincronizar (copiar o actualizar) un archivo en un cubo, el cubo se ha creado previamente mediante la consola de OCI, porque nuestro estrecho juego de permisos no incluye la creación ni la supresión de cubos. El siguiente bloque muestra la operación de sincronización, seguida de una lista de cubos.
OS prompt> rclone sync rclone-test.txt OCI-IP:rclone-testing
OS prompt> rclone ls OCI-IP:rclone-testing 
 33 rclone-test.txt

La eliminación de archivos también se puede probar. Siga la documentación de RCLONE para conocer todas las opciones disponibles, como el filtrado.

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

Cambios de Política

Por lo general, RCLONE simplemente volverá a la petición de datos si la operación es correcta, pero dará un mensaje de error si faltan los permisos para una operación en particular. Por ejemplo, si se intenta suprimir un cubo, dados nuestros permisos definidos anteriormente, la acción falla con el siguiente mensaje:
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
Como se mencionó anteriormente, las sentencias de política que se habían definido para el grupo dinámico se pueden cambiar según sea necesario. Por ejemplo, para permitir la creación o supresión de cubos, se puede agregar la siguiente sentencia:
allow dynamic-group oci-rclone-full-dg to manage buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name =
    'rclone-testing'}
Después de agregar esta sentencia de política, se puede reintentar la operación anterior y se suprimirá el cubo.

Resulta útil mantener un explorador abierto para la pantalla OCI Object Storage y refrescar la página en un cubo para que se pueda verificar cada operación.

Pruebas de OCIFS

Con los ejemplos proporcionados en la sección anterior, la utilidad OCIFS se probó de varias formas. Una vez que el grupo dinámico y la política funcionan según lo diseñado, es posible modificar las políticas y ver rápidamente los resultados cambiando a medida que se editan los permisos.

Se recomienda desmontar los sistemas de archivos de OCIFS como parte de la prueba de cambios de permisos. La documentación proporciona la sintaxis para el desmontaje.

El almacenamiento en caché proporcionado por OCIFS también está disponible y se probó como parte de la solución. Hay varias opciones descritas, cualquiera de las cuales funcionará con la solución.

Note:

El uso de automount puede afectar al almacenamiento en caché de OCIFS, ya que elimina la caché a menos que se utilicen las opciones cache-reuse y cache-keep.

En el siguiente ejemplo se muestra la creación de un punto de montaje y la conexión a un cubo mediante 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
Como prueba de permisos limitados, esta VM no debe tener la capacidad de suprimir un archivo de este cubo. Se debe producir un error de la siguiente manera:
root OS prompt# rm file.txt
rm: remove regular file 'file.txt'? y
rm: cannot remove file.txt': Input/output error

Se pueden realizar más pruebas con cubos adicionales, definiciones de grupos dinámicos y sentencias de política. Permita uno o dos minutos entre los cambios y las pruebas, para que los permisos se puedan propagar.