在 Amazon EC2 部署上配置凭证

在 Amazon EC2 部署上配置凭证

我创建了一个自定义 Linux AMI,其中包含运行 PHP 应用程序所需的一切(基本上是一个批量处理图像/视频/音频的节点)。可以同时运行 n 个实例。到目前为止,它已部署并运行良好。

我唯一担心的是,我必须对一些 MySQL DB 凭据、FTP 密码和其他将来可能会更改的内容进行硬编码。我还有其他服务器,这些凭据可以在其中使用(在 Amazon 网络之外),但我不确定在启动 EC2 实例后如何将这些凭据放入其中。对于新的 EC2 实例来说,这些应该很容易且安全,但对于其他任何人来说都不是。

答案1

简而言之,您可以这样做:

  1. 创建 IAM 角色以供您的 EC2 实例使用
  2. 将您的凭证上传到一个或多个 S3 对象,并授予新角色读取权限。
  3. 更改您的 Linux AMI 以运行程序或脚本,从 S3 获取凭证并在启动时将它们放在您想要的位置。这将需要使用存储在实例配置文件中的角色凭证。AWS PHP SDK 可以为您完成此操作。
  4. 当您启动实例时,请确保您表明想要使用新角色。

我已经开始使用云形成这似乎更符合我的需要,但需要更多的设置。

答案2

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

引自这里

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

因此,当您启动实例时,您会传递用户数据脚本。例如:

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

就您而言,您可以在用户数据文件中传递所需的凭据,并将其保存在实例上的已知位置。您的应用可以从那里获取它们。

相关内容