Compartilhar via


Autorização do acesso aos recursos da Grade de Eventos

A Grade de Eventos do Azure permite que você controle o nível de acesso concedido a usuários diferentes para execução de várias operações de gerenciamento, como listar assinaturas de evento, criar outras 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 ver a lista de operações com suporte da Grade de Eventos do Azure, execute o seguinte comando da CLI do Azure:

az provider operation show --namespace Microsoft.EventGrid

As operações abaixo retornam informações que podem ser secretas, as quais são filtradas dentre operações de leitura normais. 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 internas

A Grade de Eventos tem as três funções integrados abaixo.

Função Descrição
EventGrid EventSubscription Reader Permite ler operações de assinatura de evento da Grade de Eventos.
EventGrid EventSubscription Contributor Permite gerenciar operações de assinatura de evento da Grade 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 da Grade de Eventos e Colaborador de Assinatura da Grade de Eventos são para gerenciar assinaturas de eventos. Elas são importantes na implementação de domínios de eventos, pois dão aos usuários as permissões necessárias para assinatura de tópicos do domínio de eventos. 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 Colaborador da Grade de Eventos permite que você crie e gerencie recursos da Grade de Eventos.

Observação

Selecione links na primeira coluna para acessar um artigo com mais detalhes sobre a função. Veja as instruções para atribuir usuários ou grupos a funções RBAC neste artigo.

Funções personalizadas

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

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

EventGridReadOnlyRole.json: permitir 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 restritas posteriores, mas impedir 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: permitir 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, Azure CLI e REST.

Criptografia em repouso

Todos os eventos ou dados gravados no disco pelo serviço Grade de Eventos são criptografados por uma chave gerenciada pela Microsoft, garantindo que estejam criptografados quando inativos. Além disso, o período máximo de retenção dos eventos ou dados é 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 a vida útil do evento, o que for menor.

Permissões para assinaturas de evento

Se você estiver usando um manipulador de eventos que não seja um WebHook (como um armazenamento de fila ou hub de eventos), será necessário 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 origem do evento. Essa permissão é necessária porque está gravando uma nova assinatura no escopo do recurso. O recurso necessário varia de acordo com se você estiver assinando um tópico de sistema ou um tópico personalizado. Ambos os tipos são descritos nesta seção.

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

Em tópicos do sistema, quem não é proprietário ou colaborador do recurso de origem precisa de permissão para gravar novas assinaturas de evento no escopo da publicação de recursos do evento. O formato do recurso é: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Por exemplo, para assinar 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 gravar uma nova assinatura de evento no escopo do tópico da Grade de Evento. O formato do recurso é: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Por exemplo, para assinar 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óximas etapas