小编Ada*_*amK的帖子

将AWS凭证作为用户数据传递给EC2实例的最佳方法是什么?

我有一个基于AWS的作业处理架构,需要EC2实例查询S3和SQS.为了使运行实例能够访问API,凭证将以base64编码的shell脚本的形式作为用户数据(-f)发送.例如:

$ cat ec2.sh
...
export AWS_ACCOUNT_NUMBER='1111-1111-1111'
export AWS_ACCESS_KEY_ID='0x0x0x0x0x0x0x0x0x0'
...
$ zip -P 'secret-password' ec2.sh
$ openssl enc -base64 -in ec2.zip
Run Code Online (Sandbox Code Playgroud)

推出了许多实例......

$ ec2run ami-a83fabc0 -n 20 -f ec2.zip
Run Code Online (Sandbox Code Playgroud)

每个实例使用'secret-password'对ec2.zip进行解码和解密,该密码被硬编码到init脚本中.虽然它确实有效,但我的方法有两个问题.

  1. 'zip -P'不是很安全
  2. 密码在实例中是硬编码的(它总是'秘密密码')

该方法与此处描述的方法非常相似

是否有更优雅或被接受的方法?使用gpg加密凭证并在实例上存储私钥来解密它是我现在正在考虑的一种方法,但我不知道任何警告.我可以直接使用AWS密钥对吗?我错过了一些非常明显的API部分吗?

encryption amazon-s3 amazon-ec2 amazon-web-services

22
推荐指数
4
解决办法
2万
查看次数