Compartilhar via


Proteger o Azure Functions com Hubs de Eventos

Ao configurar o acesso a recursos no Azure, você deve aplicar um controle refinado sobre permissões para recursos. O acesso a esses recursos deve ser baseado na necessidade de conhecimento e nos princípios de segurança com privilégios mínimos para garantir que os clientes possam executar apenas o conjunto de ações que lhes são concedidas.

Autorizando o acesso aos Hubs de Eventos

A autorização de acesso aos recursos dos Hubs de Eventos do Azure pode ser feita usando as seguintes construções de segurança:

  • Microsoft Entra ID: o Microsoft Entra ID fornece controle de acesso baseado em função (RBAC) para controle granular sobre o acesso de um cliente aos recursos dos Hubs de Eventos. Com base nas funções e permissões concedidas, o Microsoft Entra ID autorizará solicitações usando um token de acesso OAuth 2.0.

  • Assinatura de acesso compartilhado: uma assinatura de acesso compartilhado (SAS) oferece a capacidade de proteger recursos de Hubs de Eventos com base em regras de autorização. Você define políticas de autorização selecionando uma ou mais regras de política, como a capacidade de enviar mensagens, ouvir mensagens e gerenciar as entidades no namespace.

Considerações sobre assinatura de acesso compartilhado

Ao usar uma assinatura de acesso compartilhado com o Azure Functions e Hubs de Eventos, as seguintes considerações devem ser revisadas:

  • Evite o direito Gerenciar: além de poder gerenciar as entidades em um namespace de Hubs de Eventos, o direito Gerenciar inclui os direitos Enviar e Ouvir. Idealmente, um aplicativo de função deve receber apenas uma combinação dos direitos Enviar e Ouvir, com base nas ações que eles executam.

  • Não use a regra Gerenciar padrão: evite usar a regra de política padrão chamada RootManageSharedAccessKey , a menos que seja necessária para seu aplicativo de função, o que deve ser um cenário incomum. Outra ressalva a essa regra padrão é que ela é criada no nível do namespace e concede permissões a todos os hubs de eventos subjacentes.

  • Revisar escopos de política de acesso compartilhado: as políticas de acesso compartilhado podem ser criadas no nível do namespace e por hub de eventos. Considere a criação de políticas de acesso granulares personalizadas para cada cliente para limitar seu alcance e permissões.

Identidade gerenciada

Uma identidade do Active Directory pode ser atribuída a um recurso gerenciado no Azure, como um aplicativo de função ou aplicativo Web. Depois que uma identidade é atribuída, ela tem os recursos para trabalhar com outros recursos que usam o Microsoft Entra ID para autorização, como uma entidade de serviço.

Os aplicativos Function podem receber uma identidade gerenciada e aproveitar as conexões baseadas em identidade para um subconjunto de serviços, incluindo Hubs de Eventos. As conexões baseadas em identidade fornecem suporte para as extensões de vinculação de disparo e saída e devem usar a extensão de Hubs de Eventos 5.x e superior para suporte.

Rede

Por padrão, os namespaces dos Hubs de Eventos são acessíveis pela Internet, desde que a solicitação venha com autenticação e autorização válidas. Há três opções para limitar o acesso à rede aos namespaces dos Hubs de Eventos:

Em todos os casos, é importante observar que pelo menos uma regra de firewall de IP ou regra de rede virtual para o namespace é especificada. Caso contrário, se nenhum endereço IP ou regra de rede virtual for especificado, o namespace estará acessível pela Internet pública (usando a chave de acesso).

As Funções do Azure podem ser configuradas para consumir eventos ou publicar eventos em hubs de eventos, que são configurados com pontos de extremidade de serviço ou pontos de extremidade privados. A integração de rede virtual regional é necessária para que seu aplicativo de função se conecte a um hub de eventos usando um ponto de extremidade de serviço ou um ponto de extremidade privado.

Quando você integra o Functions com uma rede virtual e habilita o vnetRouteAllEnabled, todo o tráfego de saída do aplicativo de funções é forçado por meio da rede virtual. Isso é particularmente importante para cenários em que você deseja proteger seu aplicativo de funções, garantindo que todo o tráfego, incluindo o tráfego para os serviços do Azure, passe por sua rede virtual para inspeção e controle. Se você quiser bloquear totalmente seu aplicativo de função, também precisará restringir sua conta de armazenamento.

Para disparar (consumir) eventos em um ambiente de rede virtual, o aplicativo de função precisa ser hospedado em um plano Premium, um plano Dedicado (Serviço de Aplicativo) ou um Ambiente de Serviço de Aplicativo (ASE).

Além disso, a execução em um plano do Azure Functions Premium e o consumo de eventos de um Hub de Eventos restrito de rede virtual exigem suporte a gatilho de rede virtual, também conhecido como monitoramento de escala de tempo de execução. O monitoramento de escala de tempo de execução pode ser configurado por meio do portal do Azure, da CLI do Azure ou de outras soluções de implantação. O monitoramento de escala de tempo de execução não está disponível quando a função está sendo executada em um plano Dedicado (Serviço de Aplicativo) ou em um ASE.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas

Antes de continuar, considere revisar estes artigos relacionados: