Existe uma maneira segura de excluir todo o diretório runRemoteScript do AWS SSM como parte da execução? Detalhes abaixo.
Temos uma configuração muito robusta do AWS SSM que envolve um aplicativo python que pesquisa a AWS, pega as instâncias que você deseja com base nas tags e emite comandos remotos para ela por meio do SSM. Se você der um comando, ele usa runShellScript
para simplesmente executar o que você deseja. Se você especificar um arquivo, ele carregará um único script de shell (requer o bash), definirá seus atributos como públicos e, no lado remoto, executará curl https://domain/file.sh | /bin/bash
usando o AWS ' runShellScript
.
No entanto, se você especificar um diretório na linha de comando, ele carregará todo o diretório para o S3 e, em seguida, emitirá um comando runRemoteScript
e executará automaticamente autorun.sh
no lado remoto. Claro, autorun.sh
pode conter o que quisermos. Eu normalmente uso para python3 uploaded_script.py
e chamo de bom.
Uma das tarefas atuais é configurar o tripwire (Open Source, então tudo é local nas máquinas individuais). Para quem não sabe, ele criptografa seus arquivos de banco de dados e configuração usando senhas. Eu tenho senhas aleatórias de 32 bytes criadas e posso editá-las, mas para fazer isso (eu acho), eu tenho que enviá-las no upload para que os scripts saibam quais senhas usar na linha de comando para gerar relatórios. Nós não queremos deixar as senhas por aí, daí a minha pergunta.
Existe uma maneira segura de excluir apenas todos os arquivos em questão, garantindo que eu não vou de alguma forma para o lixo de outro diretório potencialmente aleatório?
Minha ideia está no script autorun.sh
para colocar no final: rm -f *.ini
Mas, sendo eu paranóico, quero garantir que estou excluindo APENAS o que desejo excluir.
Eu gostaria de especificar manualmente o diretório do conteúdo baixado, mas o caminho contém o InstanceId, que o script não possui.
Pensamentos sobre como manter a segurança enquanto automatiza esta tarefa?
Se eu pudesse simplesmente (e com segurança!) limpar todo o conteúdo de /var/lib/amazon/ssm/<InstanceId>/document/orchestration/<CommandID>
, eu ficaria feliz, mas também precisaria saber como obter o InstanceId durante a execução do script.