Qual é a maneira correta de usar a 'chave de validação' do Chef-server?

1

Parece-me que a maneira recomendada de adicionar clientes a um servidor de chef - ou o meu entendimento - é falho.

dos documentos :

When the chef-client runs, it checks if it has a client key. If the client key does not exist, it then attempts to "borrow" the validation client's identity to register itself with the server. In order to do that, the validation client's private key needs to be copied to the host and placed in /etc/chef/validation.pem.

Portanto, a "chave de validação" é basicamente a credencial de superusuário, permitindo que qualquer pessoa que possua acesso total ao servidor do chef? Estou lendo isso certo?

Certamente, o modelo correto seria que os clientes gerassem seu próprio par de chaves e enviassem a chave pública ao servidor do chef. Os clientes nunca devem precisar de acesso a essa "chave de validação" do superusuário.

Como posso fazer isso de maneira mais segura?

    
por Socio 31.10.2012 / 10:05

1 resposta

3

Não é tão inseguro quanto isso. A chave de validação só pode ser usada para algumas operações necessárias para adicionar um nó.

Por exemplo, se eu tentar excluir um nó usando a chave validadora Chef:

$ knife node delete -y foo \
    -u chef-validator \
    -k ~/.chef/chef-validator.pem \
    -s http://chef-server:4000

ERROR: You authenticated successfully to http://chef-server:4000 as chef-validator but you are not authorized for this action
Response:  You are not the correct node (auth_user name: chef-validator, params[:id]: foo), or are not an API administrator (admin: false).

A melhor prática é excluir o arquivo validation.pem após o nó ter ingressado no servidor Chef.

Para realmente responder à pergunta, você pode criar chaves de cliente usando o comando knife client create , mas cabe a você distribuir essas chaves para os clientes.

A distribuição segura de chaves é um problema difícil.

    
por 19.12.2012 / 23:15

Tags