Packer: O par de chaves temporário do empacotador não foi removido de ~ / .ssh / authorized_keys (AWS AMI)

Criado em 3 ago. 2016  ·  3Comentários  ·  Fonte: hashicorp/packer

Depois de criar um AMI com empacotador baseado no Amazon Linux AMI, se eu iniciar uma instância desse AMI e ssh, estou vendo o par de chaves do empacotador temporário no arquivo ~/.ssh/authorized_keys , que é uma falha de segurança. Eu esperava que esse arquivo fosse excluído antes que o AMI fosse salvo.

Consegui solucionar isso excluindo explicitamente ~/.ssh/authorized_keys no modelo do empacotador (detalhes abaixo)

Versão do empacotador

Packer v0.10.0

Plataforma de hospedagem

CentOS Linux versão 7.2.1511 (Core)

Saída do log de depuração de PACKER_LOG=1 packer build template.json .

Aqui está a saída do empacotador:

https://gist.github.com/tleyden/4cc13b530f08bcaef04f5233bf43daee

Desculpe, não fiz PACKER_LOG = 1, mas posso executar novamente se necessário

O _modelo de exemplo mais simples e scripts_ necessários para reproduzir o bug

Modelo: https://github.com/couchbase/build/blob/2afdc7329faaa6a2f25befda59509b70a4a38349/scripts/jenkins/mobile/ami/sync-gateway.json

Roteiro:
Usando o plug-in Jenkins Packer e passando variáveis ​​para o empacotador por meio de:

-var 'source_ami=${source_ami}' -var 'ssh_username=${ssh_username}' -var 'couchbase_server_package_name=${couchbase_server_package_name}' -var 'couchbase_server_package_url=${couchbase_server_package_url}' -var 'couchbase_sync_gateway_package_base_url=${couchbase_sync_gateway_package_base_url}' -var 'couchbase_sync_gateway_package=${couchbase_sync_gateway_package}' -var 'couchbase_server_version=${couchbase_server_version}' -var 'couchbase_sync_gateway_version=${couchbase_sync_gateway_version}' -var 'couchbase_server_edition=${couchbase_server_edition}' -var 'sync_gateway_edition=${sync_gateway_edition}'

Gambiarra

Eu adicionei o seguinte provisionador ao modelo de empacotador:

    {
        "type": "shell",
        "inline": [
        "rm /home/ec2-user/.ssh/authorized_keys"
        ]
    }

e depois de iniciar o AMI, ele continha apenas a chave escolhida no assistente de "instância de inicialização" da AWS, e não o par de chaves temporário do empacotador.

buildeamazon invalid

Comentários muito úteis

Obrigado por dedicar seu tempo relatando isso.

É assim que a AWS funciona ou, mais especificamente, como funciona o cloud-init. O que você descreve como uma solução alternativa é, na verdade, o que você deve fazer.

Todos 3 comentários

Obrigado por dedicar seu tempo relatando isso.

É assim que a AWS funciona ou, mais especificamente, como funciona o cloud-init. O que você descreve como uma solução alternativa é, na verdade, o que você deve fazer.

Desculpe por reviver um tópico morto, no entanto, como eu o encontrei e depois encontrei mais informações da amazon, pensei em contribuir com isso aqui para outros:

https://aws.amazon.com/articles/how-to-share-and-use-public-amis-in-a-secure-manner/

Resumindo, eles recomendam executar o seguinte como root para remover todos os arquivos authorized_keys:

find / -name "authorized_keys" -exec rm -f {} \;

Cuidado: O comando na página vinculada está usando uma mistura de traços normais (-) e algo mais que retornará erros. Digitar o comando manualmente ou copiar o comando diretamente acima deve funcionar.

Vou bloquear este problema porque ele está fechado há _30 dias_ ⏳. Isso ajuda nossos mantenedores a encontrar e focar nas questões ativas.

Se você encontrou um problema semelhante a este, abra um novo problema e preencha o modelo de problema para que possamos capturar todos os detalhes necessários para uma investigação mais aprofundada.

Esta página foi útil?
0 / 5 - 0 avaliações