我一直在使用AWS Codedeploy使用github作为修订源。我有几个包含凭据的配置文件(例如NewRelic和其他第三方许可证密钥),我不想将它添加到我的github存储库。但是,我需要在EC2实例中使用它们。
管理这些配置的标准方法是什么。或者,你们为了同样的目的使用了哪些工具?
答案 0 :(得分:1)
首先,使用IAM角色。这会删除90%的凭据。完成后,您可以将(加密!)凭据存储在S3存储桶中并小心控制访问。这是来自AWS的一个很好的入门: https://blogs.aws.amazon.com/security/post/Tx1XG3FX6VMU6O5/A-safer-way-to-distribute-AWS-credentials-to-EC2
答案 1 :(得分:1)
以前的答案对于专门管理AWS角色/凭证非常有用。但是,您的问题更多是关于一般的非AWS凭证,以及如何使用AWS安全地管理它们。
对我们来说有效的方法是将凭据保存在S3存储桶的属性文件中。使用A safer way to distribute AWS credentials to EC2中tedder42建议的相同技术,您可以将属性文件中的凭据上传到高度安全的S3存储桶中,仅适用于已配置了相应IAM角色的实例。
然后使用CodeDeploy,您可以添加BeforeInstall生命周期挂钩,以通过AWS CLI将凭证文件下载到本地目录。例如:
aws s3 cp s3://credentials-example-com/credentials.properties C:\凭证
然后,当应用程序启动时,它可以从本地文件中读取这些凭据。
答案 2 :(得分:0)
使用实例配置文件启动EC2实例,然后为关联的角色提供对您的服务需要访问的所有内容的访问权限。这就是CodeDeploy代理用来进行调用的内容,但它确实适用于您正在运行的任何服务。
http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html