Есть ли безопасный способ удалить весь каталог AWS SSM runRemoteScript как часть выполнения? Подробности ниже.
У нас есть очень надежная настройка AWS SSM, включающая приложение Python, которое опрашивает AWS, захватывает нужные экземпляры на основе тегов, а затем выдает ему удаленные команды через SSM. Если вы дадите ему команду, он использует runShellScript
просто выполнить то, что вы хотите. Если вы указываете файл, он загружает один сценарий оболочки (требуется bash), устанавливает для его атрибутов значение public, а затем на удаленной стороне выполняет curl https://domain/file.sh | /bin/bash
используя AWS ' runShellScript
.
Однако, если вы укажете каталог в командной строке, он загрузит весь каталог в S3, а затем выдаст runRemoteScript
команда и автоматически выполняет autorun.sh
на удаленной стороне. Конечно, autorun.sh
может содержать все, что захотим. Я обычно использую это для python3 uploaded_script.py
и назовите это хорошим.
Одна из текущих задач - настроить tripwire (с открытым исходным кодом, чтобы все было локально на отдельных машинах). Для тех, кто не знает, он шифрует свою базу данных и файлы конфигурации с помощью парольных фраз. У меня есть 32-байтовые случайные парольные фразы, и я могу их выдать, но для этого (я думаю) мне нужно отправить их в загрузке, чтобы сценарии знали, какие парольные фразы использовать в командной строке для создания отчета. Мы не хотим, чтобы парольные фразы валялись, отсюда и мой вопрос.
Есть ли безопасный способ просто удалить все рассматриваемые файлы, гарантируя, что я не собираюсь каким-то образом уничтожать другой, потенциально случайный каталог?
Моя идея в autorun.sh
скрипт поместить в самый низ: rm -f *.ini
Но, будучи параноиком, я хочу каким-то образом гарантировать, что удаляю ТОЛЬКО то, что хочу удалить.
Я хотел бы вручную указать каталог загруженного содержимого, но путь содержит InstanceId, которого у сценария нет.
Размышления о том, как обеспечить безопасность при автоматизации этой задачи?
Если бы я мог просто (и безопасно!) Стереть ВСЕ содержимое /var/lib/amazon/ssm/<InstanceId>/document/orchestration/<CommandID>
, Я бы с удовольствием сделал это, но тогда мне нужно было бы знать, как получить InstanceId во время выполнения скрипта.