Configurar Definições
Este tópico abordará como configurar a tenancy com permissões do IAM, Grupos Dinâmicos, Serviço OCI Object Storage e instâncias de VM.
Configurar um Bucket de Objeto
O bucket usado para esta solução é um bucket de Objeto simples, criado no modo Padrão, pois ele suporta todas as camadas - Padrão, Não Frequente e Arquivamento. Isso permite que os objetos alterem a camada à medida que envelhecem, fluindo para a camada de arquivamento de menor custo a ser retida até que o período especificado tenha passado.
A esse bucket, adicionamos uma Regra de Retenção, que efetivamente impede a alteração ou a exclusão de objetos depois de criados. A regra não é bloqueada até que o teste seja concluído.
Além disso, adicionamos Regras de Ciclo de Vida de Objetos para alterar automaticamente a camada de armazenamento de cada objeto com base nos requisitos. Depois que o objeto for movido para a camada de arquivamento, ele não estará mais disponível imediatamente, mas deverá ser "chamado" antes de ser acessado. Isso pode ser feito por meio de uma Função do OCI, um script ou algum processo externo, que precisa ser projetado.
Por fim, depois que o OCID e o nome do bucket forem conhecidos, poderemos definir permissões estreitas nos grupos dinâmicos que acessarão o bucket. Essas instruções de política podem aproveitar os predicados de política avançados do OCI, como target.bucket.name.
Configurar Grupos Dinâmicos
É possível que um Grupo Dinâmico já exista em um nível de compartimento, se a tenancy tiver sido configurada usando a Zona de Destino do CIS. Esta seção pressupõe que não haja Grupo Dinâmico existente.
Grupos Dinâmicos
Considere que diferentes conjuntos de máquinas virtuais da OCI estarão instalando RCLONE ou OCIFS e acessando o armazenamento de objetos. Assim, podemos definir grupos dinâmicos com base em OCIDs de instância específicos ou OCIDS de compartimento, dependendo de onde as VMs são criadas. Os 2 grupos dinâmicos a seguir foram criados para esta solução:
Name: oci-rclone-full-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz1', instance.id = 'ocid.xxx.yyy.zzzz2' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz'
Name: oci-ocifs-readonly-dg Matching Rule: ANY {instance.id = 'ocid1.xxx.yyy.zzz3', instance.id = 'ocid.xxx.yyy.zzz4' } or instance.compartment.id = 'ocid1.compartment.yyy.zzz
Podemos usar placeholders para um OCID de instância se isso não tiver sido criado ou puder ser alterado. A segunda opção acima permite criar instâncias ilimitadas no compartimento referenciado, sem se preocupar em atualizar o grupo dinâmico. Observe que, se todas as instâncias usadas para a solução existirem no mesmo compartimento, será necessário definir Grupos Dinâmicos usando OCIDs de instância para que as instâncias somente leitura também não tenham acesso total.
Permissões de Configuração
Suponha que, para começar, você não tenha permissões específicas de armazenamento de objetos em um compartimento ou em um bucket. Para começar, poderíamos criar uma política específica ou anexar nossas declarações a uma política existente.
cislz-appdev-cmp-policy
, atualizada para adicionar instruções de grupo dinâmico, conforme mostrado abaixo. Caso estejamos começando do zero, o exemplo a seguir usa um modelo de política para definir o acesso de permissões de grupo dinâmico e grupo de usuários ao armazenamento de objetos. As instruções de política podem ser aumentadas com condições, se necessário agora ou mais tarde.allow dynamic-group oci-rclone-full-dg to read buckets in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-rclone-full-dg to manage objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
allow dynamic-group oci-ocifs-readonly-dg to read objects in compartment cis-landing-top:app-cmp where ANY {target.bucket.name = 'archive-bucket-1', target.bucket.name = 'archive-bucket-2' }
Mais permissões podem ser adicionadas ou removidas posteriormente e como parte do teste. É recomendável testar totalmente o RCLONE e o OCIFS para garantir que todas as permissões concedidas estejam corretas.
Configurar uma Instância de VM com o RCLONE
A criação de Máquinas Virtuais da OCI está fora do escopo desta solução, mas qualquer VM Linux de forma funcionará. A conectividade básica via Gateway de Serviço ou Gateway NAT é necessária, assim como a Saída da VCN para a porta 443. Se os Pontos Finais Privados do Object Storage estiverem em uso, os gateways e as regras de saída não serão necessários.
Essencialmente, a VM deve ser capaz de acessar o OCI Object Storage. O outro requisito importante é que a VM seja criada dentro do compartimento referenciado no grupo dinâmico. Conforme mencionado, a definição de grupo dinâmico pode ser ajustada posteriormente para incluir apenas o OCID da VM ou pode corresponder à definição baseada em compartimento do grupo dinâmico. Depois que a VM estiver configurada e acessível, o RCLONE poderá ser instalado. Siga a documentação geral do RCLONE, especificamente a seção do OCI Object Storage.
Para utilizar a configuração de grupo dinâmico, o tipo de autenticação aqui é instance_principal_auth
. Siga as etapas no documento acima e construa um conjunto de testes. Dependendo das permissões concedidas por meio do grupo dinâmico, você pode excluir facilmente um bucket com o comando rclone
errado. Conforme descrito acima, a permissão que essa solução começa com limita o grupo dinâmico a "ler buckets" e "gerenciar objetos". Portanto, você não pode criar ou excluir um bucket, mas pode remover seu conteúdo. Os documentos RCLONE fornecem alguns exemplos seguros para testes, como listar conteúdo, colocar objetos e remover um único objeto.
Configurar uma Instância de VM com o OCIFS
Semelhante à seção anterior, a criação da máquina virtual não está no escopo. O OCIFS será instalado de forma semelhante em um conjunto de VMs.
Para obter mais informações sobre o uso de controladores de instância, que aproveitarão o grupo dinâmico e a política adicionados anteriormente, consulte a documentação do Utilitário OCIFS.
- comandos de montagem direta do ocifs
- Entradas
/etc/fstab
- configuração de montagem automática
archive-bucket /mnt/archive-bucket fuse.ocifs auth=instance_principal 0 0
archive-bucket -fstype=fuse,allow_other,auth=instance_principal :ocifs\#archive-bucket