AWS SSM 在执行过程中删除自己的文件。有什么方法可以安全地做到这一点?

AWS SSM 在执行过程中删除自己的文件。有什么方法可以安全地做到这一点?

有没有一种安全的方法可以在执行过程中删除所有 AWS SSM runRemoteScript 目录?详情如下。

我们有一个非常强大的 AWS SSM 设置,涉及一个 Python 应用程序,该应用程序轮询 AWS,根据标签获取所需的实例,然后通过 SSM 向其发出远程命令。如果您给它一个命令,它会runShellScript简单地执行您想要的内容。如果您指定一个文件,它会上传一个 shell 脚本(需要 bash),将其属性设置为公共,然后在远程端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。

相关内容