在Amazon EC2configuration中configuration凭据

我创build了一个自定义的Linux AMI,我需要运行我的PHP应用程序(基本上是一个对图像/video/audio进行批处理的节点)。 可以同时运行n个实例。 到目前为止,它部署和工作正常。

我唯一担心的是我必须硬编码一些MySQL DB凭证,FTP密码以及将来可能会改变的其他东西。 我有其他的服务器,这些凭据可以在亚马逊的networking之外使用,但是我不确定在我启动这些凭证后会把这些凭据joinEC2实例。 对于一个新的EC2实例来说,这些应该是简单而安全的,而不是其他人。

总之,这是你可以做的:

  1. 创build一个IAMangular色供EC2实例使用
  2. 将您的凭证上传到一个或多个S3对象,并为您的新angular色提供读取权限。
  3. 改变你的Linux AMI来运行一个程序或脚本来从S3获取凭证,并把它们放到你想要的地方。 这将需要使用存储在实例configuration文件中的angular色凭证。 AWS PHP SDK可以为您做到这一点。
  4. 当你启动你的实例时,确保你指出你想要使用你的新angular色。

我已经开始使用CloudFormation ,它似乎更适合我的需求,但需要更多的设置。

Amazon Linux AMI支持设置“用户数据”脚本,该脚本将在启动时安全地传递给VM。

从这里引用:

Amazon Linux AMI包含一个自定义版本的cloud-init。 它使您能够指定在启动时应该发生在您的实例上的操作。 启动实例时,您可以将所需的操作传递给cloud-init通过用户数据字段。 这意味着您可以在许多用例中使用常见的AMI,并在启动时dynamicconfiguration它们。

所以当你启动你的实例时,你传递了用户数据脚本。 例如:

ec2-run-instances --key KEYPAIR --user-data-file custom-env-file ami-xxxxxx 

在你的情况下,你可以在用户数据文件中传递所需的凭据,并将它们保存在实例的已知位置。 你的应用程序可以从那里拿起它们。