有没有一种安全的方法可以在执行过程中删除所有 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。