Existe uma razão para armazenar uma chave privada SSH em um Pilar de Sal em vez de um arquivo como parte de um Estado?

2

Eu tenho um conjunto de sistemas (na AWS) que precisam de acesso SSH sem senha uns aos outros. Escrevi um estado Salt que copia um par de chaves (chaves SSH-RSA pública / privada que eu gerava anteriormente) e adiciona a entrada apropriada ao arquivo authorized_keys do usuário.

Agora, eu armazeno as chaves públicas e privadas como arquivos no estado de Salt e as coloco em minha definição de estado. No entanto, observei no sal . Documentação states.file.managed () que fornecem um exemplo que armazena a chave privada em Pillar e depois usa contents_pillar para obter o conteúdo da chave privada.

Existe algum motivo para eu querer armazenar meu conteúdo de chave particular (ou mesmo público) no Pilar em vez de apenas um arquivo no diretório do estado? Eu não tenho certeza se há uma vantagem de segurança colocando-o lá, já que o conteúdo vai acabar em todos os sistemas de qualquer maneira. Eu usei o Pillar para algumas outras coisas, mas não tinha certeza se havia um bom argumento para usá-lo aqui.

    
por Devin 23.07.2015 / 05:01

1 resposta

5

Todos os estados são legíveis de todos os minions , então alguém (com as devidas permissões) logado em qualquer um dos seus minions pode ler as chaves privadas que você armazena nos estados.

Os dados do pilar podem ser restritos aos minions relevantes . É aqui que você armazena tudo o que é confidencial para um ou apenas alguns lacaios.

Você deve ler a página da documentação principal: link

Existe esta nota:

Storing sensitive data

Unlike state tree, pillar data is only available for the targeted minion specified by the matcher type. This makes it useful for storing sensitive data specific to a particular minion.

    
por 23.07.2015 / 11:40