Preparar a Tenancy para o Desenvolvimento de Funções

Para permitir que uma função acesse outro recurso do Oracle Cloud Infrastructure, você precisa incluir a função em um grupo dinâmico e, em seguida, criar uma política para conceder ao grupo dinâmico acesso a esse recurso.

Criar um Grupo Dinâmico para Funções

Os grupos dinâmicos permitem que você agrupe instâncias de computador do Oracle Cloud Infrastructure como atores "principais" (semelhantes aos grupos de usuários). Em seguida, você pode criar políticas para permitir que as instâncias façam chamadas de API em relação aos serviços Oracle Cloud Infrastructure.

Ao criar um grupo dinâmico, em vez de adicionar membros explicitamente ao grupo, defina um conjunto de regras de correspondência para definir os membros do grupo. Por exemplo, uma regra pode especificar que todas as instâncias de um compartimento específico sejam membros do grupo dinâmico. Os membros podem mudar dinamicamente à medida que as instâncias são iniciadas e encerradas nesse compartimento.

  1. Abra a Console, clique em Identidade e clique em Grupos Dinâmicos. É exibida uma lista dos grupos dinâmicos na sua tenancy.
  2. Clique em Criar Grupo Dinâmico.
  3. Informe os seguintes detalhes:
    • Nome: um nome exclusivo para o grupo. O nome deve ser exclusivo em todos os grupos da sua tenancy (grupos dinâmicos e grupos de usuários). Não pode mudar isso mais tarde.
    • Descrição: Uma descrição amigável. Não é possível alterar isso na Console, mas é possível alterá-la usando a API.
  4. Informe as Regras Correspondentes. Os recursos que atendem aos critérios da regra são membros do grupo.
    • Regra 1: Para permitir que todas as funções em um compartimento possam acessar um recurso, informe uma regra semelhante à seguinte, em que <compartment_id> é o OCID do compartimento em que a aplicação e as funções associadas serão implantadas:
      ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_id>'}
    • Insira regras adicionais, conforme necessário. Para adicionar uma regra, clique em Regra +Additional.

  5. Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Se você não tiver certeza se deve aplicar tags, ignore essa opção (você pode aplicar tags posteriormente) ou pergunte ao administrador.
  6. Clique em Criar Grupo Dinâmico.

    A sintaxe da regra de correspondência é verificada, mas os OCIDs usados nas regras não são. Certifique-se de que os OCIDs informados estão corretos.

Criar Políticas para Funções

Uma política permite que um grupo trabalhe de determinadas maneiras com tipos específicos de recursos em um compartimento específico.

O grupo e o compartimento para os quais você está gravando a política já devem existir.

As etapas a seguir adicionam políticas ao compartimento em que o aplicativo e as funções associadas serão implantados e ao compartimento raiz da instância.

  1. Abra o menu de navegação. Em Governança e Administração, clique em Identidade e em Políticas.
    Uma lista das políticas no compartimento que você está exibindo é exibida.
  2. Na lista de compartimentos à esquerda, selecione o compartimento no qual a aplicação e as funções associadas serão implantadas.
  3. Clique em Criar Política.
  4. Forneça as seguintes informações:
    • Nome: Um nome exclusivo da política. O nome deve ser exclusivo em todas as políticas da sua tenancy. Você não pode alterar isso posteriormente.
    • Descrição: Uma descrição amigável. É possível alterá-la posteriormente, se desejar.
    • Controle de Versão da Política: Selecione Manter Política Atual se desejar que a política permaneça atualizada com alterações futuras nas definições de verbos e recursos do serviço. Ou, se preferir limitar o acesso de acordo com as definições atuais em uma data específica, selecione Usar Data da Versão e informe essa data no formato AAAA-MM-DD.
  5. Forneça uma Instrução de política. Para adicionar um ou mais demonstrativos predefinidos, clique em Personalizar (Avançado).
    Adicione as seguintes instruções de política onde <group_name> é o nome do grupo dinâmico associado e <compartment_name> é o compartimento onde a aplicação e as funções associadas serão implantadas:
    • Adicione as seguintes instruções para permitir que as funções acessem recursos no compartimento:
      Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage objects in compartment <compartment_name>
      allow dynamic-group <group_name> to use autonomous-databases in compartment <compartment_name> where request.permission='AUTONOMOUS_DATABASE_CONTENT_READ'
      Allow dynamic-group <group_name> to inspect instances in compartment <compartment_name>
      Allow service FaaS to use virtual-network-family in compartment <compartment_name>
      Allow group fleetAdmins to manage functions-family in compartment <compartment_name>
    • Adicione as instruções a seguir para permitir que o Oracle Cloud Infrastructure Events chame funções quando um arquivo for submetido a upload para o Oracle Cloud Infrastructure Object Storage:
      Allow dynamic-group <group_name> to inspect streams in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage cloudevents-rules in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-push in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-pull in compartment <compartment_name>
  6. Clique em Criar.
    A política recém-criada é listada com as políticas do compartimento.
  7. Na lista de compartimentos à esquerda, selecione o compartimento raiz (<instance-name> (root)) e repita as etapas 3 e 4 acima.
  8. Forneça uma Instrução de política. Para adicionar um ou mais demonstrativos predefinidos, clique em Personalizar (Avançado).
    Adicione as seguintes instruções de política onde <compartment_name> é o compartimento onde a aplicação e as funções associadas serão implantadas:
    Allow service FaaS to manage repos in tenancy
    Allow service FaaS to use virtual-network-family in compartment <compartment_name>
  9. Clique em Criar.
    A política recém-criada é listada com as políticas do compartimento raiz.