我的问题非常倾向和概括,但我希望你的想法。 我想自动创建EC2实例,包括完整安装和配置Web应用程序。 为此,我需要在此过程中在服务器上设置SSL密钥,访问密钥等。 该服务器用于生产,不应该访问其中一些详细信息/参数的人将具有无特权用户的shell访问权限。
$ curl http://169.254.169.254/latest/user-data
我已经想到了一个明显变态的想法,即创建一个策略,允许从实例访问秘密存储桶,然后将策略更改为用户数据脚本的最后一部分。但我确信没有那么疯狂的方法。
有什么想法吗?我在AWS文档中找不到任何相关内容......
答案 0 :(得分:1)
您可以加密用户数据,在启动时解密它以配置主机,然后删除私钥。我对此有一个blog post,但总结一下:
使用以下内容创建公开私钥对:$ openssl req -nodes -x509 -days 10000 -newkey rsa:4096 -keyout private.key -out public.crt -subj '/'
创建一个AMI,包括文件系统某处的私钥
启动您的实例并使用公钥加密用户数据
在配置脚本结束时,从文件系统中删除私钥,以便不能再次解密用户数据
从AMI启动的任何未来实例当然都会有私钥,因此您需要确保没有其他用户可以创建实例。