Automatizando com Controle: Gerenciando Usuários e Permissões no Rundeck

Automatizando com Controle: Gerenciando Usuários e Permissões no Rundeck

Introdução

Em ambientes modernos de DevOps e operações de infraestrutura, a automação não é apenas uma vantagem, mas uma necessidade. Entre as diversas ferramentas que surgiram para orquestrar tarefas, o Rundeck se destaca por sua simplicidade, flexibilidade e, principalmente, por ser multiusuário e multitarefa, com um robusto sistema de controle de acesso.

Neste post, vamos apresentar o que é o Rundeck, como ele funciona, como organizar e automatizar tarefas com ele e como implementar um sistema eficiente de controle de acessos baseado em grupos e políticas ACL (Access Control List), explorando de forma mais aprofundada as opções de permissão e como organizar essas políticas para times diferentes.

O que é o Rundeck?

O Rundeck é uma plataforma open-source para automação de operações, permitindo executar scripts, comandos e workflows em servidores ou containers remotamente. Com ele, é possível:

  • Agendar execuções recorrentes de tarefas
  • Executar comandos sob demanda (ad-hoc)
  • Criar workflows com etapas e dependências
  • Integrar com ferramentas como Ansible, Puppet, Terraform e scripts customizados
  • Controlar o acesso de usuários por projeto e por tipo de ação
  • Auditar todas as ações realizadas na plataforma

O Rundeck pode ser integrado a sistemas de autenticação como LDAP, Active Directory ou Keycloak, garantindo controle centralizado de identidade e segregação por função.

 

Multitarefa e Multiusuário

O Rundeck permite que vários usuários interajam simultaneamente na plataforma, cada um com permissões específicas por projeto. Cada execução de job é isolada e registrada, permitindo:

  • Execuções paralelas com segurança
  • Controle de acesso por grupo (Ex: Dev, QA, Operações)
  • Logs detalhados por execução e por usuário

Essa capacidade de isolamento e rastreabilidade o torna ideal para ambientes corporativos que exigem governança.

Estrutura básica: Projetos, Jobs e Nós

Projeto – É a unidade lógica que organiza os jobs, o inventário de nós (hosts) e as permissões. Cada projeto é independente e pode ter fontes de inventário e configurações próprias.

Job – Representa uma tarefa automatizada. Pode conter:

  • Execução de scripts (bash, Python, etc.)
  • Comandos remotos
  • Workflows com múltiplos passos

Nó (Node) – É um host de destino onde os comandos serão executados. Pode ser um servidor físico, uma máquina virtual, container ou qualquer endpoint SSH.

Gerenciando Acessos com Políticas ACL

O que são ACLs no Rundeck?

ACLs (Access Control Lists) são arquivos YAML com extensão .aclpolicy, que definem:

  • Quem pode acessar (usuários ou grupos)
  • O que pode acessar (jobs, nós, projetos, etc.)
  • O que pode fazer (read, run, update, kill, etc.)

Esses arquivos ficam normalmente no diretório:

/etc/rundeck/ ou /home/rundeck/etc/

Estrutura geral de uma ACL

description: Acesso para o time DevOps
context:
project: 'WebApps'
for:
job:
- allow: [read, run, create, update, delete, kill]
node:
- allow: [read, run, create, update, delete]
adhoc:
- allow: [read, run, kill]
resource:
- allow: [read]
by:
group: devops-team

Explicação das principais seções

context:
Define o escopo da permissão:
project: ‘NomeDoProjeto’ – aplica regras apenas dentro do projeto
application: ‘rundeck’ – aplica regras globais (criação de projetos, visualização de usuários, etc.)

for:
Lista os tipos de recursos que serão controlados. Os principais:
job – jobs definidos no projeto
node – nós (servidores ou hosts)
adhoc – comandos ad-hoc (ex: `hostname`)
resource – acesso a arquivos e elementos do projeto
project – configurações gerais do projeto
project_acl – editar ACLs de projeto
storage – secrets e senhas armazenadas

allow:
Lista as ações permitidas para o recurso. As mais comuns são:
read – visualizar
run – executar
create – criar
update – editar
delete – remover
kill – cancelar uma execução em andamento

by:
Define quem receberá as permissões:
group – nome do grupo de usuários
username – (opcional) pode restringir por usuário específico

 

Exemplo completo para múltiplos times

Time de QA (apenas leitura e execução)

description: Acesso limitado para QA
context:
project: 'TestesAPI'
for:
job:
- allow: [read, run]
node:
- allow: [read]
adhoc:
- allow: [read, run]
by:
group: qa-team

Time de Operações (administra tudo)

description: Admin do projeto
context:
project: 'TestesAPI'
for:
job:
- allow: [*]
node:
- allow: [*]
adhoc:
- allow: [*]
resource:
- allow: [*]
project:
- allow: [read, configure]
by:
group: ops-team

Time de Desenvolvimento (pode rodar e alterar seus próprios jobs)

description: Desenvolvedores com acesso RW
context:
project: 'WebFrontend'
for:
job:
- allow: [read, run, create, update, kill]
node:
- allow: [read, run]
adhoc:
- allow: [read, run, kill]
by:
group: developers

Boas práticas para aplicar ACLs

  • Nomear arquivos ACL com o nome do grupo (ex: qa-team.aclpolicy)
  • Separar por escopo: um arquivo por projeto ou grupo
  • Usar regex para escalar (ex: project: ‘^(Web|API)_.*$’)
  • Testar com usuários reais antes de aplicar em produção
  • Versionar todos os arquivos ACL com Git

 

Conclusão

O Rundeck é uma plataforma poderosa para automação controlada e colaborativa. Seu modelo de ACL permite configurar com precisão quem pode fazer o quê dentro da plataforma, garantindo segurança, governança e autonomia. Organizar bem suas políticas ACL é o segredo para escalar o uso do Rundeck com confiança, permitindo que diferentes equipes contribuam de forma segura, sem sobreposição ou riscos operacionais. Se você está buscando uma forma de dar mais autonomia para seus times sem perder controle, o Rundeck com ACL bem definidas pode ser a chave para transformar a maneira como você opera sua infraestrutura.

 

Anterior Atualização do Curso OKD 4: Administração PAAS em Containers da 4Linux
Próxima Gitlab CI + Terraform - Deploy de uma EC2

About author

Deborah Melo
Deborah Melo 12 posts

Analista de Infraestrutura | Construtora na 4Linux | LPIC 1 | Graduada em Eng. Elétrica | Apaixonada por tecnologia e ideologias Open Source.

View all posts by this author →

Você pode gostar também

DevOps

Monitoramento Contínuo: A chave para uma infraestrutura de TI sustentável

Eventualmente, mesmo os sistemas e infraestruturas mais sustentáveis precisarão acompanhar os esforços para a prevenção. Por isso, o Continuous monitoring (monitoramento contínuo) é essencial. Técnicas de monitoramento contínuo costumam melhorar

Infraestrutura TI

Harmonizando DevOps e Metodologia Agile com o C.A.M.S.

A rápida evolução tecnológica do mundo atual é crucial para o sucesso das empresas e seus projetos. Para as áreas de desenvolvimento e operações, DevOps, a metodologia Agile tem proporcionado

DevOps

DevSecOps: Como usar o SonarQube para análise de vulnerabilidades

Quando falamos de DevSecOps, estive um termo chamado Shift Left, que consiste em analisar questões de segurança desde o inicio do desenvolvimento de uma aplicação, ao invés do modelo tradicional