Autorizando o acesso aos recursos da Grade de Eventos

A Grade de Eventos do Azure permite controlar o nível de acesso dado a diferentes usuários para fazer várias operações de gerenciamento, como listar assinaturas de eventos, criar novas assinaturas e gerar chaves. A Grade de Eventos usa o controle de acesso baseado em função do Azure (Azure RBAC).

Tipos de operação

Para obter uma lista de operações suportadas pela Grade de Eventos do Azure, execute o seguinte comando da CLI do Azure:

az provider operation show --namespace Microsoft.EventGrid

As operações a seguir retornam informações potencialmente secretas, que são filtradas das operações normais de leitura. Recomendamos que você restrinja o acesso a essas operações.

  • Microsoft.EventGrid/eventSubscriptions/getFullUrl/action
  • Microsoft.EventGrid/topics/listKeys/action
  • Microsoft.EventGrid/topics/regenerateKey/action

Funções incorporadas

A Grade de Eventos fornece as três funções internas a seguir.

Função Description
EventGrid EventSubscription Reader Permite ler subscrições de eventos da Grelha de Eventos.
EventGrid EventSubscription Contributor Permite gerir operações de subscrição de eventos da Grelha de Eventos.
EventGrid Contributor Permite criar e gerenciar recursos da Grade de Eventos.
EventGrid Data Sender Permite enviar eventos para tópicos da Grade de Eventos.

As funções Leitor de Assinatura de Grade de Eventos e Colaborador de Assinatura de Grade de Eventos são para gerenciar assinaturas de eventos. Eles são importantes ao implementar domínios de evento porque dão aos usuários as permissões de que precisam para se inscrever em tópicos no domínio do evento. Essas funções são focadas em assinaturas de eventos e não concedem acesso a ações como a criação de tópicos.

A função de Colaborador da Grade de Eventos permite criar e gerenciar recursos da Grade de Eventos.

Nota

Selecione links na primeira coluna para navegar até um artigo que forneça mais detalhes sobre a função. Para obter instruções sobre como atribuir usuários ou grupos a funções RBAC, consulte este artigo.

Funções personalizadas

Se você precisar especificar permissões diferentes das funções internas, crie funções personalizadas.

A seguir estão exemplos de definições de função de Grade de Eventos que permitem que os usuários executem ações diferentes. Essas funções personalizadas são diferentes das funções internas porque concedem acesso mais amplo do que apenas assinaturas de eventos.

EventGridReadOnlyRole.json: permita apenas operações somente leitura.

{
  "Name": "Event grid read only role",
  "Id": "7C0B6B59-A278-4B62-BA19-411B70753856",
  "IsCustom": true,
  "Description": "Event grid read only role",
  "Actions": [
    "Microsoft.EventGrid/*/read"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<Subscription Id>"
  ]
}

EventGridNoDeleteListKeysRole.json: Permitir ações de postagem restritas, mas não permitir ações de exclusão.

{
  "Name": "Event grid No Delete Listkeys role",
  "Id": "B9170838-5F9D-4103-A1DE-60496F7C9174",
  "IsCustom": true,
  "Description": "Event grid No Delete Listkeys role",
  "Actions": [
    "Microsoft.EventGrid/*/write",
    "Microsoft.EventGrid/eventSubscriptions/getFullUrl/action"
    "Microsoft.EventGrid/topics/listkeys/action",
    "Microsoft.EventGrid/topics/regenerateKey/action"
  ],
  "NotActions": [
    "Microsoft.EventGrid/*/delete"
  ],
  "AssignableScopes": [
    "/subscriptions/<Subscription id>"
  ]
}

EventGridContributorRole.json: Permite todas as ações da Grade de Eventos.

{
  "Name": "Event grid contributor role",
  "Id": "4BA6FB33-2955-491B-A74F-53C9126C9514",
  "IsCustom": true,
  "Description": "Event grid contributor role",
  "Actions": [
    "Microsoft.EventGrid/*/write",
    "Microsoft.EventGrid/*/delete",
    "Microsoft.EventGrid/topics/listkeys/action",
    "Microsoft.EventGrid/topics/regenerateKey/action",
    "Microsoft.EventGrid/eventSubscriptions/getFullUrl/action"
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/<Subscription id>"
  ]
}

Você pode criar funções personalizadas com PowerShell, CLI do Azure e REST.

Encriptação inativa

Todos os eventos ou dados gravados no disco pelo serviço de Grade de Eventos são criptografados por uma chave gerenciada pela Microsoft, garantindo que eles sejam criptografados em repouso. Além disso, o período máximo de tempo que os eventos ou dados retidos é de 24 horas em conformidade com a política de repetição da Grade de Eventos. A Grade de Eventos excluirá automaticamente todos os eventos ou dados após 24 horas, ou o tempo de vida do evento, o que for menor.

Permissões para subscrições de eventos

Se você estiver usando um manipulador de eventos que não seja um WebHook (como um hub de eventos ou armazenamento de filas), precisará de acesso de gravação a esse recurso. Essa verificação de permissões impede que um usuário não autorizado envie eventos para seu recurso.

Você deve ter a permissão Microsoft.EventGrid/EventSubscriptions/Write no recurso que é a fonte do evento. Você precisa dessa permissão porque está escrevendo uma nova assinatura no escopo do recurso. O recurso necessário difere consoante esteja a subscrever um tópico do sistema ou um tópico personalizado. Ambos os tipos são descritos nesta seção.

Tópicos do sistema (editores de serviço do Azure)

Para tópicos do sistema, se você não for o proprietário ou contribuidor do recurso de origem, precisará de permissão para escrever uma nova assinatura de evento no escopo do recurso que publica o evento. O formato do recurso é: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Por exemplo, para se inscrever em um evento em uma conta de armazenamento chamada myacct, você precisa da permissão Microsoft.EventGrid/EventSubscriptions/Write em: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct

Tópicos personalizados

Para tópicos personalizados, você precisa de permissão para escrever uma nova assinatura de evento no escopo do tópico Grade de Eventos. O formato do recurso é: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Por exemplo, para se inscrever em um tópico personalizado chamado mytopic, você precisa da permissão Microsoft.EventGrid/EventSubscriptions/Write em: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic

Próximos passos