Testar e Validar

Esta página abrange alguns dos testes que podem ser executados diretamente das instâncias de VM que são membros dos grupos dinâmicos configurados. O RCLONE e o OCIFS devem ser testados da mesma forma, usando uma variedade de comandos que testam o acesso de leitura e gravação.

Teste RCLONE

Como parte desse esforço, a regra de retenção no bucket é removida por uma parte do tempo, para que possamos testar totalmente a capacidade do rclone de ler e gravar em um bucket.

Depois que o teste for concluído, a regra poderá ser restabelecida e bloqueada. O teste é feito começando com um grupo dinâmico que tem permissões de "leitura de bucket" e "leitura de objeto" em todos os buckets dentro do compartimento que contém o bucket de arquivamento.

Para ver um controle remoto RCLONE configurado, execute o seguinte 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 os comandos a seguir exigirão OCI-IP para fazer referência ao nosso ambiente e credenciais de armazenamento de objetos configurados. Para sincronizar (copiar ou atualizar) um arquivo em um bucket, o bucket foi pré-criado usando a console do OCI, porque nosso conjunto restrito de permissões não inclui a criação ou exclusão do bucket. O bloco a seguir mostra a operação de sincronização, seguida de uma listagem de buckets.
OS prompt> rclone sync rclone-test.txt OCI-IP:rclone-testing
OS prompt> rclone ls OCI-IP:rclone-testing 
 33 rclone-test.txt

A exclusão de arquivos também pode ser testada. Siga a documentação RCLONE para todas as opções disponíveis, como filtragem.

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

Alterações da Política

Geralmente, o RCLONE simplesmente retornará ao prompt se a operação for bem-sucedida, mas fornecerá uma mensagem de erro se as permissões para uma operação específica estiverem ausentes. Por exemplo, se for feita uma tentativa de excluir um bucket, com nossas permissões definidas anteriormente, a ação falhará com a seguinte mensagem:
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 mencionado anteriormente, as declarações de política que foram definidas para o grupo dinâmico podem ser alteradas conforme necessário. Por exemplo, para permitir a criação ou exclusão de bucket, a seguinte instrução pode ser adicionada:
allow dynamic-group oci-rclone-full-dg to manage buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name =
    'rclone-testing'}
Depois de adicionar essa instrução de política, a operação anterior poderá ser repetida e o bucket será excluído.

É útil manter um browser aberto para a tela do OCI Object Storage e atualizar a página em um bucket para que cada operação possa ser verificada.

Teste do OCIFS

Usando os exemplos fornecidos na seção anterior, o utilitário OCIFS foi testado de várias maneiras. Uma vez que o grupo dinâmico e a política estejam funcionando conforme projetado, é possível alterar políticas e ver rapidamente os resultados mudando à medida que as permissões são editadas.

Recomenda-se desmontar os sistemas de arquivos OCIFS como parte do teste de alterações de permissão. A documentação fornece a sintaxe para desmontagem.

O armazenamento em cache fornecido pelo OCIFS também está disponível e foi testado como parte da solução. Existem várias opções descritas, qualquer uma das quais funcionará com a solução.

Observação:

O uso de automontagem pode afetar o cache do OCIFS, pois ele remove o cache, a menos que as opções cache-reuse e cache-keep sejam usadas.

O exemplo a seguir mostra como criar um ponto de montagem e estabelecer conexão com um bucket usando o 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 teste de permissões limitadas, essa VM não deve ter a capacidade de excluir um arquivo desse bucket. Deve ocorrer um erro da seguinte forma:
root OS prompt# rm file.txt
rm: remove regular file 'file.txt'? y
rm: cannot remove file.txt': Input/output error

Outros testes com buckets adicionais, definições de grupo dinâmico e instruções de política podem ser executados. Permitir um minuto ou dois entre alterações e testes, para que as permissões possam se propagar.