Quando temos um único tenancy no ambiente Oracle Cloud a divisão de permissões de IAM é baseada em compartimentos, o que facilita e permite que os acessos e permissões de aplicativos sejam realizadas de forma lógica.
Isso auxilia para organizar os acessos aos recursos estruturados por departamento ou tipo de ambiente, a fim de garantir que cada equipe tenha seus recursos e também permissões organizadas por funções.
Porém em alguns casos é necessário permitir que outro tenancy tenha acesso aos recursos de seu tenancy, para gestão e manutenção dos recursos.
Esse tipo de acesso delegado, para quem já usou a AWS se chama AssumeRole, onde você delega permissões para que usuários de outra conta obtenha acesso baseados em função.
Na Oracle utilizamos a abordagem de Admit e Endorse, onde criamos políticas de tenancy, dando capacidades de acesso e gerenciamento de recursos para tenancy de parceiros ou secundários.
Nesse artigo iremos mostrar como fazer a movimentação de uma instância, através da restauração de um backup entre tenancy.
Abaixo exemplo do fluxo de operação entre tenancy

Antes de começar:
Para esse artigo estamos considerando que você já possua o grupo que deseja delegar a permissão do tenancy, os backups de boot e block volume executados.
Para isso iremos usar 2 domínios:
Domínio 1: Origem Objeto (Backup) – Chamado de ORIGEM <TenancyB>
Esse tenancy de ORIGEM do Objeto <TenancyB> irá possibilitar com que o DESTINO <TenancyA> faça a cópia de um boot/block volume para ele
Domínio 2: Destino Objeto – Chamado de DESTINO <TenancyA>
Esse tenancy <TenancyA> irá receber o boot volume do <TenancyB>
Passo 1: Criando as políticas de permissionamento
Colete o ocid de cada tenancy e ocid do grupo que irá ter permissão para executar a restauração do backup



Crie as políticas de permissão baseado no modelo abaixo
- <TenancyB> Origem do Objeto: Crie a seguinte política no root, substituindo os valores pelas informações coletadas anteriormente
Define tenancy <TenancyA> as <TenancyA-Ocid>
Define group <Grupo-TenancyA> as <Grupo-TenancyA-ocid>
Admit group <Grupo-TenancyA> of tenancy <TenancyA> to manage volume-family IN TENANCY
Exemplo de política para referência:
Define tenancy TenancyA as ocid1.tenancy.oc1..Tenancy.Destino.XPTO Define group G-Operacoes as ocid1.group.oc1..Grupo.Destino.XPTO Admit group G-Operacoes of tenancy TenancyA to manage volume-family IN TENANCY

- Crie também a política no <TenancyA> Destino do Objeto
Define tenancy <TenancyB> as <TenancyB-ocid>
Endorse group <GrupoLocal> to manage volume-family in tenancy <TenancyB>
Exemplo de política para referência:
Define tenancy TenancyB as ocid1.tenancy.oc1..Tenancy.Origem.XPTO Endorse group G-Operacoes to manage volume-family IN TENANCY TenancyB

Execução da restauração:
No tenancyB (origem) temos um website em Apache rodando normalmente, pelo IP http://129.213.83.43/, conforme imagem abaixo

Já fizemos o backup do boot volume na Origem

Iremos levar o backup do boot volume para o outro tenancy, dessa forma precisamos coletar mais 3 informações;
1 – ocid do backup

2 – ocid do compartimento de destino

3 – Availability Domain do destino

Iremos criar um boot volume no TenancyA (Destino) a partir de um backup realizado no TenancyB (Origem), com o comando abaixo, iremos executar esse comando via Cloud Shell no TenancyA (Destino)
Se você for restaurar a partir de um Backup de Boot Volume o comando é o abaixo:
oci bv boot-volume create --boot-volume-backup-id <backup-ipd-do-boot-volume> --availability-domain <AV do TenancyA> -c <ocid-compartimento-TenancyA>
Se você for restaurar a partir de um Backup de um Block Volume o comando é o abaixo:
oci bv volume create --volume-backup-id <backup-ipd-do-block-volume> --availability-domain <AV do TenancyA> -c <ocid-compartimento-TenancyA>
A mensagem de PROVISIONING irá aparecer, conforme exemplo abaixo

E o disco irá ser provisionado no TenancyA (Destino)

Se você for no disco, irá ver que ele foi restaurado a partir de um backup

Validando o cenário:
Iremos subir a VM e verificar se está igual ao que tínhamos no TenancyB (Origem)

Ao acessar o IP Público gerado no novo Tenancy, vemos que a instância está identica a origem, ou seja, nosso site está funcional.

Muito obrigado!