Algum agente de marionetes pode obter algum arquivo de marionete do mestre?

7

Meu mestre de marionetes contém alguns arquivos confidenciais. Eu quero que cada agente fantoche seja capaz de acessar apenas os arquivos que são de interesse para esse agente específico. Em outras palavras:

  • O agente de marionetes executa o seu catálogo e, em seguida, sempre que encontrar uma função "arquivo" ou "modelo" ou um parâmetro "source = > 'puppet: /// ...'", pede ao mestre para fornecer-lhe o arquivo especificado, e o mestre apenas fornece sem verificar? Isso seria ruim. Se um agente for comprometido, ele poderá solicitar ao mestre qualquer arquivo no mestre, mesmo arquivos destinados apenas a outros agentes.
  • Ou o mestre de alguma forma verifica se o catálogo do agente realmente autoriza aquele agente em particular a obter aquele arquivo em particular?

Eu não sei se é importante, mas eu estou correndo passageiro (e todos os meus agentes e mestre são 2.7.6 de squeeze-backports).

    
por Antonis Christofides 19.03.2012 / 16:03

4 respostas

3

A documentação do Servidor de arquivos de fantoches deve ser capaz de cobrir a maior parte do que você está pedindo. Em particular, consulte a seção de segurança .

Primeiro uma nota. Se você tiver autosign habilitado, praticamente qualquer segurança oferecida é discutível. Você deve verificar cada certificado. Como as configurações de segurança que você configura serão baseadas no hostname / certname ou em um regex, elas terão o autosign ativado significando que qualquer sistema não confiável pode solicitar um certificado para um nome que corresponda a um padrão que tenha acesso a arquivos secretos.

Por padrão, qualquer coisa nos plug-ins especiais e módulos de montagens do servidor de arquivos é avialable para qualquer cliente. Mas isso pode ser controlado até certo ponto através da configuração.

Você também pode configurar montagens personalizadas que apontam para locais específicos. Um exemplo é fornecido na documentação sobre como criar uma montagem [privada] para distribuição chaves SSH privadas. O nome do host é usado como parte do caminho de montagem, portanto, um determinado host pode ver somente os arquivos que pertencem a ele.

    
por 19.03.2012 / 19:25
0

Contanto que esse arquivo seja definido apenas em um 'nó', você deve estar bem, outro 'nó' não pode solicitar esse arquivo porque, para ele, ele não existe.

No entanto, geralmente não é uma boa ideia armazenar arquivos "protegidos" em um servidor de fantoches.

Espero que isso ajude!

    
por 19.03.2012 / 19:19
0

Eu não tenho dados concretos sobre isso. No entanto, pelo que li aqui e ali, sinto que qualquer agente pode obter qualquer arquivo do mestre, se esse arquivo estiver dentro da árvore do servidor de arquivos Puppet e a configuração do servidor de arquivos Puppet permitir que o agente acesse a árvore. Também sinto que as funções file (), template () e extlookup () são executadas no master à medida que compila a configuração do agente, antes de enviá-lo ao agente.

Portanto, deve ser razoavelmente seguro armazenar arquivos confidenciais fora da árvore do servidor de arquivos Puppet e usar file () para acessá-los. Desta forma, eles só devem ser acessíveis pelo agente para o qual são destinados.

    
por 25.04.2012 / 16:41
0

'Se você não quiser armazenar arquivos importantes em um servidor de fantoches, o que você sugere?'

Eu acho que bibliotecário de marionetes talvez possa ajudar nesse caso ... onde um cria um arquivo de marionetes específico para um cliente e o aplica para um cliente sob demanda (talvez até sem um mestre de marionetes).

Assim, um cenário típico poderia ser ssh na caixa, pegar um arquivo puppet de um conhecido local remoto ou remoto seguro e usá-lo para instalar todos os módulos dependentes (e ou arquivos de configuração) antes de ativar uma execução manual de fantoches. Suponha que você possa automatizar facilmente esse conjunto de tarefas com ferramentas capistrano ou similares.

    
por 17.04.2014 / 20:21