Controlador de Recursos

A Oracle recomenda o uso de autenticação baseada em controlador de recursos para o Full Stack Disaster Recovery para usar recursos e funcionalidades adicionais. Use controladores de recursos para autenticar e acessar outros recursos do Oracle Cloud Infrastructure. Para usar controladores de recursos, você ou o administrador da tenancy deve definir as políticas e os grupos dinâmicos do Oracle Cloud Infrastructure que permitem que os controladores acessem os recursos do Oracle Cloud Infrastructure.

Para configurar a autenticação do Controlador de Recursos para o Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery, siga estas etapas detalhadas:

1. Crie um Grupo Dinâmico e Defina Regras de Correspondência da seguinte forma:

Um Grupo Dinâmico permite agrupar recursos do OCI para que eles possam receber permissões coletivamente. A definição de regras de correspondência no Grupo Dinâmico especifica quais recursos são incluídos.

Navegue até a Console do OCI:
  1. Acesse sua conta do OCI.
  2. Abra o menu de navegação e selecione Identidade e Segurança > Domínios > [Seu Domínio] > Grupos > Grupos Dinâmicos.
Criar um Novo Grupo Dinâmico:
  1. Clique em Criar Grupo Dinâmico.
  2. Especifique um nome e uma descrição significativos.
  3. Na seção Regras de Correspondência, selecione Corresponder a quaisquer regras definidas abaixo. Essa configuração garante que os recursos correspondentes a qualquer uma das regras especificadas sejam incluídos no grupo dinâmico.

Regras de Correspondência de Grupo Dinâmico:

Selecione o botão de opção Corresponder a Todas as Regras e adicione as regras abaixo individualmente.
Rule 1: All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid>'}
Rule 2: Any {instance.compartment.id = '<instance_compartment_ocid>'}
Rule 3: All {resource.type='computecontainerinstance', resource.compartment.id='<mysql_compartment_ocid>'}
Rule 4: All {resource.type='computecontainerinstance', resource.compartment.id='<oke_cluster_compartment_ocid>'}

Salve o grupo dinâmico:

Depois de definir as regras de correspondência, clique em Criar para salvar o Grupo Dinâmico.

Para obter mais informações, consulte Diretrizes para Regras de Correspondência em Grupos Dinâmicos do Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery.

2.º Crie as políticas do serviço IAM para o grupo dinâmico da seguinte forma:

As políticas do IAM concedem as permissões necessárias ao Grupo Dinâmico para gerenciar recursos durante as operações de DR.

Navegue até as Políticas:

Na Console do OCI, vá para Identidade e Segurança > Domínios > [Seu Domínio] > Políticas.

Criar uma Nova Política:

  1. Clique em Criar Política.
  2. Forneça um nome e a descrição da política.
  3. No Policy Builder, adicione instruções para conceder as permissões necessárias.

Instruções de Política:

As instruções de política necessárias dependem dos tipos de recursos gerenciados pelo Full Stack DR.

Substitua <dynamic_group_name> e <resource_compartment_name> pelos nomes reais de grupo dinâmico e compartimento.

Todas as declarações de política:

Allow dynamic-group <dynamic_group_name> to manage disaster-recovery-family in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in tenancy
Allow dynamic-group <dynamic_group_name> to read all-resources in tenancy
Allow dynamic-group <dynamic_group_name> to manage instance-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage virtual-network-family in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage database-family in compartment <database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update autonomousContainerDatabaseDataguardAssociations in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update cloud-autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
Allow dynamic-group <dynamic_group_name> to read secret-family in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to read vaults in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage cluster-family in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage cluster-virtualnode-pools in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage compute-container-family in compartment <oke_cluster_compartment_name>
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<cluster_ocid>'}
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<cluster_ocid>'}
Allow dynamic-group <dynamic_group_name> to read fn-app in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to read fn-function in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to use fn-invocation in compartment <function_compartment_name>

Para obter mais informações, consulte Diretrizes para Instruções de Política do Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery

Verificar e Criar:

Após adicionar as instruções necessárias, verifique a política e clique em Criar para aplicá-la.

Ao seguir essas etapas, você pode configurar a autenticação do Controlador de Recursos para o OCI Full Stack Disaster Recovery, permitindo o gerenciamento seguro e eficiente de suas operações de recuperação de desastres.

Referência:

Diretrizes para Regras de Correspondência em Grupos Dinâmicos para o Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery

Definir Regras de Correspondência:

Alinhe suas regras de correspondência de recursos de acordo com o tipo de recurso que você deseja proteger com o serviço Full Stack Disaster Recovery.

Regras de Correspondência do Grupo de Proteção de DR:

Esta é uma etapa obrigatória, pois esta é a Controladora de Recursos usada principalmente para Configuração e Execução de DR usando a Controladora de Recursos

Todos os Grupos de Proteção de DR em um compartimento específico:

All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid>'}
Replace <dr_protection_group_compartment_ocid> with your DR protection group compartment OCID.

Todos os Grupos de Proteção de DR em vários compartimentos:

All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid1>'}
All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid2>'}

Todos os Grupos de Proteção de DR em todos os compartimentos:

All {resource.type='drprotectiongroup'}

Regras de Correspondência da Instância do Serviço Compute:

Isso será necessário se você tiver Instâncias do Serviço Compute, membros Móveis ou Não Móveis no seu Grupo de Proteção de DR. Use estas regras para incluir instâncias de computação na configuração de DR:

Todas as instâncias dentro de um compartimento específico:
Any {instance.compartment.id = '<instance_compartment_ocid>'}
Replace <instance_compartment_ocid> with your compute instance compartment OCID

Instâncias em vários compartimentos:

Any {instance.compartment.id = '<instance_compartment_ocid1>'}
Any {instance.compartment.id = '<instance_compartment_ocid2>'}

Regras de Correspondência de Cluster do OKE e Sistema de Banco de Dados MySQL:

Isso será necessário se você tiver membros do Cluster do OKE ou do Sistema de Banco de Dados MySQL no seu Grupo de Proteção de DR.

Para proteger clusters do OKE e Sistemas de BD MySQL, use:
Observação

A Configuração e as Execuções de Recuperação de Desastre são executadas por meio de instâncias de contêiner de computação

Todas as instâncias de cluster do OKE em um compartimento específico:

All {resource.type='computecontainerinstance', resource.compartment.id='<oke_cluster_compartment_ocid>'}
Replace <oke_cluster_compartment_ocid> with your OKE cluster compartment OCID

Todos os sistemas de banco de dados MySQL em um compartimento específico:

All {resource.type='computecontainerinstance', resource.compartment.id='<mysql_compartment_ocid>'}
Replace <mysql_compartment_ocid> with the relevant MySQL compartment OCID

Todas as instâncias de contêiner de computação, independentemente do compartimento (aplica-se a todos os recursos relevantes):

All {resource.type='computecontainerinstance'} 

Essas regras garantem que qualquer uma das condições especificadas possa corresponder, permitindo flexibilidade na inclusão de recursos.

Diretrizes para Instruções de Política do Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery:

Para permitir o gerenciamento integrado de recursos com o Full Stack DR, configure políticas do IAM para seu grupo dinâmico. Veja a seguir os exemplos de diferentes tipos de membro:

Políticas Comuns de Recursos (Aplicáveis entre Tipos de Membro)

Rede (Para: Instâncias de Computação, Autonomous DB, Balanceadores de Carga, Sistemas de Arquivos, Clusters do OKE):

Allow dynamic-group <dynamic_group_name> to use virtual-network-family in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use subnets in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use vnics in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use network-security-groups in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use private-ips in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use public-ips in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in compartment <tag_compartment_name>

Vault (Para: Instâncias do Serviço Compute, Autonomous DB, Grupos de Volumes, Sistemas de Arquivos, Clusters do OKE):

Allow dynamic-group <dynamic_group_name> to read vaults in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to read secret-family in compartment <vault_compartment_name
Marcação (Para: Todos os recursos):
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in
    tenancy

Para Recursos do Serviço de Recuperação de Desastres (Configuração e Ações de DR):

Allow dynamic-group <dynamic_group_name> to manage disaster-recovery-family in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage objects in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to read all-resources in tenancy
Armazenamento de Logs (Para: Clusters do OKE, Sistemas de BD MySQL, Execução do Plano de DR):
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment
      <object_storage_bucket_compartment_name>
Políticas Específicas do Tipo de Membro do Recurso:
  1. Instâncias de Computação (Movíveis e Não Movíveis):
    Allow dynamic-group <dynamic_group_name> to manage instance-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage virtual-network-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
  2. Grupos de Volumes
    Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>(Include Vault policies from above)
  3. Sistemas de Arquivos
    Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>(Include Vault policies from above)
  4. Buckets do Serviço Object Storage
    Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
  5. Bancos de Dados
    Allow dynamic-group <dynamic_group_name> to manage databases in compartment <database_compartment_name>(Include Vault policies from above)
  6. Autonomous Database
    Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
    (Include Vault policies from above)
  7. Autonomous Container Database
    Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_container_database_compartment_name>
    Allow dynamic-group <dynamic_group_name> to update cloud-autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
    Allow dynamic-group <dynamic_group_name> to update autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
    Allow dynamic-group <dynamic_group_name> to update autonomousContainerDatabaseDataguardAssociations in compartment <autonomous_container_database_compartment_name>
  8. Sistemas de BD do MySQL
    Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
  9. Balanceadores de Carga
    Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
  10. Balanceadores de Carga de Rede
    Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
  11. Clusters do OKE
    Allow dynamic-group <dynamic_group_name> to manage cluster-family in compartment <oke_cluster_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage cluster-virtualnode-pools in compartment <oke_cluster_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage compute-container-family in compartment <oke_cluster_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
    With Virtual Node Pool:
    Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<cluster_ocid>'}
    Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<cluster_ocid>'}
  12. Etapas Definidas pelo Usuário
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
    Allow dynamic-group <dynamic_group_name> to manage objects in compartment <object_storage_bucket_compartment_name>
  13. Funções (Tipo de Etapa: FUNÇÕES)
    Allow dynamic-group <dynamic_group_name> to read fn-app in compartment <function_compartment_name>
    Allow dynamic-group <dynamic_group_name> to read fn-function in compartment <function_compartment_name>
    Allow dynamic-group <dynamic_group_name> to use fn-invocation in compartment <function_compartment_name>

Substitua <Dynamic_Group_Name> pelo nome do seu Grupo Dinâmico e <resource_compartment_name> pelo nome de compartimento apropriado para cada tipo de recurso.

Para obter mais detalhes sobre as políticas criadas na etapa acima, consulte Políticas para Outros Serviços Gerenciados pelo Full Stack Disaster Recovery.

Para obter mais detalhes sobre como adicionar regras de correspondência em grupos dinâmicos criados na etapa acima, consulte Escrevendo Regras de Correspondência para Definir Grupos Dinâmicos.

Para obter mais detalhes sobre como adicionar instruções de política nas políticas do grupo dinâmico criadas na etapa acima, consulte Gravando Políticas para Grupos Dinâmicos.