我们正在尝试制作一个安全的AMI,以便分发给我们的一个客户(运行
Linux / CoreOS).一旦我们的客户部署了我们的AMI,重要的是他们无法获得shell访问权限(例如,无法通过SSH访问).
从表面上看,这似乎是一个非常简单的问题:只需确保我们的密钥只在authorized_keys文件中.但是,当我们的客户部署我们的AMI时,他们被迫提供自己的密钥对,然后将相关的公钥插入到盒子上的authorized_keys文件中,使他们能够通过SSH进入该框.
我知道亚马逊通过HTTP在169.254.169.254(信息在这里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)将公钥可访问(和用户元数据)到主机操作系统.互联网和CoreOS文件系统周围的一些调查表明,/usr/bin/coreos-Metadata实际上访问了这个IP,大概是为了密钥对,但是我无法弄清楚实际上是什么启动了可执行文件或如何禁用它.我甚至考虑过删除可执行权限或完全删除它,但文件系统的那部分在CoreOS上是只读的(甚至是root用户).
显然,上述行为胜过我们采取的任何安全措施.我们能做些什么来防止这种情况发生吗?