我正在尝试为在Debian设备上运行的应用程序testing新的networking监视代码。 我目前的任务是确保在使用FUSE挂载外部networking共享(如S3存储桶)时连接中断,引发SNMP陷阱。
问题是,为了使共享不可访问,我显然必须使文件不可写入(或用iptables阻止每个可能的S3相关的IP),并且如果存储桶是要读取和写入的,我不能阻止写入访问root用户,并由root用户监视。
有没有办法让这个程序,以root身份运行,认为桶下降?
PS我不能使用chattr来创build这些桶,因为afaik,S3不支持像不变性这样的属性的概念。
有很多方法来模拟一些事情。 你已经说过一个是使用iptables阻止规则。
另一个非常简单的方法 – 拔掉networking路由器,使您的监控软件仍然可以看到主机,但主机无法与S3(或其他任何事情)通话。 对我来说,这是最简单的,但在某些情况下可能不合适。
另一个选项是编辑服务器上的主机文件,并为S3主机名添加一些虚拟IP,以便它们解决错误的地方。 即使用未分配任何东西的IP。 因此,所有来自主机的S3请求都将尝试去那里但是不能。 完成后,只需从主机文件中删除IP即可,一切都将恢复正常,无需重新启动。
为什么不检查S3存储桶中是否存在特定文件? 如果不存在,请抛出SNMP陷阱。
创build/删除这个文件将使得validation你的脚本是否正常工作变得非常简单。
如果存储桶要被root用户读取和写入,并且由root用户监视,则不能阻止写入访问。
这个故事开始和结束的事实,这个桶需要通过IAM访问。 AWS上的root帐户仅用于设置IAMangular色。 一旦你有了这个设置,你可以改变IAM权限来testing。