Controlando o Acesso para Chamar e Gerenciar Funções

Descubra como controlar as funções que os usuários podem chamar e gerenciar no OCI Functions.

Ao configurar uma tenancy para desenvolvimento de função, você especifica a seguinte instrução de política de identidade (conforme descrito em Instruções de Política para Dar aos Usuários do OCI Functions Acesso a Recursos Relacionados a Funções):

Allow group <group-name> to manage functions-family in compartment <compartment-name>

Essa política de identidade permite que usuários autenticados no grupo especificado gerencie (ou seja, crie, atualize e exclua) funções e aplicativos no compartimento nomeado e também permite que esses usuários chamem funções no compartimento. Essa política normalmente atende aos requisitos de funções dos desenvolvedores que desenvolvem e testam várias funções em sua organização.

No entanto, esta política de identidade pode ser permissiva demais para atender aos requisitos de segurança para controlar a chamada e o gerenciamento de funções em ambientes de produção. Por exemplo, em um ambiente de produção você pode impedir totalmente que os usuários chamem funções ou restringir os usuários a chamar apenas funções em um aplicativo específico ou chamar apenas uma função específica.

Observação

A especificação de uma sub-rede privada para um aplicativo não impede o acesso da internet aos pontos finais de chamada de funções no aplicativo. Use políticas de identidade para controlar o acesso a pontos finais de chamada de função, conforme descrito neste tópico.

Para controlar as funções que os usuários de um grupo podem chamar e gerenciar, configure políticas de identidade:

  1. Para controlar as funções que um usuário pode chamar e gerenciar, confirme que não estão em um grupo que tenha recebido a permissão manage functions-family.

  2. Se você quiser permitir que os usuários de um grupo criem, atualizem e excluam aplicativos e funções em um compartimento, mas não possam chamar funções, informe as seguintes instruções de política:
    Allow group <group-name> to manage fn-app in compartment <compartment-name>
    Allow group <group-name> to manage fn-function in compartment <compartment-name>
  3. Se você quiser permitir chamadas apenas de funções específicas ou chamadas de funções apenas em aplicativos específicos, inclua a função apropriada e os OCIDs do aplicativo em instruções de política adequadas. Por exemplo:

    • Para permitir que os usuários chamem todas as funções em um aplicativo específico, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.app.id = '<application-OCID>'
    • Para permitir que os usuários chamem uma função específica, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.function.id = '<function-OCID>'
    • Para permitir que os usuários chamem todas as funções em todos os aplicativos, exceto as funções de um aplicativo específico, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.app.id != '<application-OCID>'
    • Para permitir que os usuários chamem todas as funções em um compartimento, exceto uma função específica, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where target.function.id != '<function-OCID>'
    • Para permitir que os usuários chamem duas funções específicas, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where ANY {target.function.id='<function-OCID>', target.function.id='<function-OCID>'}
    • Para permitir que os usuários chamem uma função específica juntamente com todas as funções em um aplicativo específico, informe uma instrução de política no seguinte formato:
      Allow group <group-name> to use fn-invocation in compartment <compartment-name> where ANY {target.function.id='<function-OCID>', target.app.id='<application-OCID>'}
  4. Se você quiser permitir solicitações de chamada e gerenciamento de função somente de endereços IP específicos:

    1. Crie uma origem de rede para especificar os endereços IP permitidos, se uma origem de rede adequada ainda não existir (consulte https://docs.oracle.com/iaas/Content/Identity/Tasks/managingnetworksources.htm).
    2. Adicione uma instrução de política para permitir que apenas esses endereços IP na origem de rede chamem ou gerenciem funções. Por exemplo:

      • Para permitir apenas solicitações de chamada de função de endereços IP definidos em uma origem de rede chamada corpnet, informe uma instrução de política no seguinte formato:

        Allow group <group-name> to use fn-invocation in compartment <compartment-name> where request.networkSource.name='corpnet'
      • Para permitir apenas solicitações de gerenciamento de função de endereços IP definidos em uma origem de rede chamada corpnet, digite uma instrução de política no seguinte formato:

        Allow group <group-name> to manage functions-family in compartment <compartment-name> where request.networkSource.name='corpnet'