Permissões de Runbook

Como conceder/negar acesso a determinados runbooks.

Âmbito

Isto aborda como conceder/negar acesso a determinados runbooks em um Tenant do Azure. Se você está procurando respostas sobre quais permissões da API MS Graph são necessárias para executar uma determinada ação como um runbook, por favor, dê uma olhada em nossos requisitos.

Overview

"Runbook Permissions" definem a visibilidade dos runbooks para determinados usuários. Alguns runbooks também podem ser bloqueados/ocultados globalmente.

Assim como as Runbook Customizations, definir essas permissões é feito fornecendo uma configuração em formato JSON como administrador do RealmJoin no portal web do RealmJoin em https://portal.realmjoin.com/settings/runbooks-permissions .

Sobre este guia

Faremos uma breve descrição da sintaxe e depois construiremos um exemplo completo passo a passo. Sinta-se à vontade para ir diretamente ao exemplo completo e começar a partir de .

Sintaxe da configuração

Nomes dos runbooks

Os runbooks são referenciados pelos seus nomes, como vistos na Azure Automation Account, por exemplo rjgit-group_general_remove-group.

Curingas ('*') podem ser usados para corresponder a vários runbooks. Vários curingas podem ser usados na mesma string, por exemplo rjgit-*_security_*. Isso corresponderia a todos os seguintes exemplos:

  • rjgit-org_security_list-inactive-users

  • rjgit-device_security_enable-or-disable-device

O prefixo rjgit- indica runbooks importados do nosso repositório público no GitHub. Runbooks específicos de cliente não têm prefixo, por exemplo user_userinfo_custom-runbook

Entra ID Groups

Os grupos Entra ID serão referenciados usando seu Object ID, como 91688d11-9a34-42cd-8d1e-ce617d6c1234. Atualmente, apenas grupos de segurança podem ser usados.

Estrutura e exemplo JSON

Construiremos um exemplo completo de configuração passo a passo.

Uma configuração JSON consiste em várias seções, mas todas as seções são opcionais e podem ser omitidas.

É permitido adicionar comentários usando o prefixo "//".

EnabledRunbookPatterns

Esta seção contém uma lista de runbooks permitidos para uso. Se esta seção for omitida, todos os runbooks ficam ativados/permitidos por padrão.

Se você definir esta seção, então apenas os runbooks mencionados nela poderão ser usados por qualquer função / suporte e administrador.

Exemplo

  • Permitir apenas determinados runbooks individuais informando o nome completo deles

    rjgit-group_general_remove-group

  • Permitir todos os runbooks relacionados a dispositivos do nosso repositório compartilhado

    rjgit-device_*

  • Permitir todos os runbooks compartilhados de usuários

    rjgit-user_*

  • Permitir todos os runbooks específicos do cliente (locais), relacionados a usuários

    user_*

Isso implicitamente exclui muitos runbooks baseados em grupos e todos os runbooks baseados em org. Esteja ciente.

DisabledRunbookPatterns

Uma lista de runbooks globalmente desativados / proibidos. Se esta seção for omitida ou estiver vazia, todos os runbooks ativados (fornecidos via EnabledRunbookPatterns) podem ser usados.

As entradas nesta seção têm prioridade sobre as entradas em EnabledRunbookPatterns - os runbooks ficarão ocultos/não poderão ser usados por ninguém neste Tenant.

Exemplo

Reutilizaremos a EnabledRunbookPatterns seção de antes.

  • Desativar todos os runbooks compartilhados (rjgit-) no security categoria.

Funções

Nesta seção, você pode atribuir uma lista de runbooks a um grupo Entra ID. Isso permite definir múltiplas funções de suporte/operador no seu Tenant.

Se esta seção for omitida, todo o suporte e administradores do RealmJoin terão acesso a todos os runbooks fornecidos nas seções anteriores.

Exemplo

Continuando com o que temos, vamos criar uma função de suporte a dispositivos DeviceAdmin e uma função de suporte a usuários UserAdmin.

Aplicaremos essas funções a vários grupos Entra ID e, para cada função, daremos uma lista de runbooks permitidos. Esteja ciente - isso restringirá a função de suporte a usuários a apenas um pequeno conjunto de runbooks.

Vamos adicionar comentários ("//") ao lado do object id do grupo que ajudam o leitor fornecendo os nomes dos grupos Entra ID.

Agora a UserAdmin função pode:

  • atribuir licenças a todos os usuários no seu Tenant

  • modificar os endereços de e-mail de todos os usuários no seu Tenant

O DeviceAdmin a função pode

  • apagar qualquer dispositivo no seu Tenant

TargetEntityGroups

Talvez você tenha alguns usuários VIP cruciais. Não deve ser possível que qualquer membro do suporte apague o dispositivo de um VIP ou modifique o endereço de e-mail de um VIP. Podemos usar "targeting" para restringir funções em usuários críticos a equipes dedicadas.

"Devices" serão direcionados pelo seu usuário principal/atribuído, mas não pelo objeto do dispositivo no Entra ID. Isso permite manter um modelo de grupo puramente baseado em usuário.

Assumimos que existem grupos Entra ID que contêm usuários VIP críticos. Usando esta seção, podemos delimitar cuidadosamente algumas funções e runbooks mais críticos para esses grupos Entra ID específicos (targets).

Obviamente, se você omitir esta seção, todos os usuários/grupos/dispositivos no seu Tenant serão tratados como iguais.

Se você definir TargetEntityGroups, isso não deve ter impacto em nenhum outro grupo não mencionado na seção.

Exemplo completo

Suponha o grupo 0000c0af-c217-41e9-b790-3043788f0000 é o nosso grupo de usuários VIP.

Introduzimos um novo grupo Entra ID 4444c0af-c217-41e9-b790-3043788f4444 contendo a equipe de suporte que foi aprovada para administrar usuários VIP. Essa equipe de suporte também deve ter todas as outras permissões básicas de suporte, então os adicionaremos às funções existentes.

"Restringir" uma função não concederá novas funções a um suporte.

Exemplo: Restringindo a equipe de suporte dos EUA para gerenciar apenas usuários dos EUA

Neste cenário, temos uma equipe de suporte baseada nos EUA que deve gerenciar apenas usuários localizados nos EUA. Para impor essa restrição:

  • Crie uma regra de permissão que explicitamente nega aos apoiadores dos EUA a capacidade de executar Runbooks em todos os usuários.

  • Adicione uma regra de exceção que especificamente permite a execução de Runbooks apenas para usuários dos EUA.

Isso garante que os apoiadores dos EUA tenham permissões estritamente limitadas ao público-alvo pretendido (usuários dos EUA) e impede interações acidentais com usuários fora desse escopo.

Implementação

  1. Um grupo Entra para executores de Runbook deve ser atribuído no Portal Realm Join

    1. Settings > Permissions > Runbook Runner Permissions

    2. O grupo Entra de apoiadores dos EUA deve ser membro do grupo Runbook Runners para permitir a operação geral de Runbook no Portal RealmJoin.

  2. Adicionando uma nova função em Settings > Runbook Permissions

    1. Na seção Roles, adicione a função USSupporters com seu grupo Entra (group object ID)

    2. Adicione AllowedRunbookPatterns para os USSupporters

  3. Modifique o TargetEntityGroups

    1. O grupo All-Users deve restringir a função USSupporters com um valor vazio (nenhum object ID de grupo Entra é adicionado aqui). Isso é uma negação implícita!

    2. O grupo US Users deve restringir a função USSupporters ao object ID do grupo Entra dos US Supporters

Restringindo a equipe de suporte dos EUA para gerenciar apenas usuários dos EUA

Abaixo, o exemplo completo para este cenário:

SchedulingEnabledRunbookPatterns

Esta seção contém uma lista de runbooks que serão marcados como "schedulable". O RealmJoin Port permitirá atribuir / gerenciar agendamentos para esses runbooks. Veja Agendamento de Runbooks.

O exemplo a seguir descreve o comportamento padrão se SchedulingEnabledRunbookPatterns não estiver definido:

SchedulingDisabledRunbookPatterns

Esta seção contém uma lista de runbooks que serão colocados em lista de bloqueio para não serem marcados como "schedulable". O RealmJoin Port não permitirá atribuir / gerenciar agendamentos para esses runbooks. Veja Agendamento de Runbooks.

Um runbook presente em SchedulingEnabledRunbookPatterns e SchedulingDisabledRunbookPatterns irá será schedulable.

Por padrão, nenhum runbook está na lista de bloqueio. O exemplo a seguir apenas demonstra a sintaxe:

Última atualização

Isto foi útil?