【发布时间】:2010-10-13 01:18:02
【问题描述】:
我有一个基于 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
许多实例已启动...
$ ec2run ami-a83fabc0 -n 20 -f ec2.zip
每个实例都使用硬编码到初始化脚本中的“秘密密码”对 ec2.zip 进行解码和解密。虽然它确实有效,但我的方法有两个问题。
- 'zip -P' 不是很安全
- 密码在实例中是硬编码的(始终是“秘密密码”)
方法和here描述的方法很相似
有没有更优雅或被接受的方法?使用 gpg 加密凭据并将私钥存储在实例上以对其进行解密是我现在正在考虑的一种方法,但我不知道有任何警告。我可以直接使用 AWS 密钥对吗?我是否遗漏了 API 中一些非常明显的部分?
【问题讨论】:
标签: encryption amazon-s3 amazon-ec2 amazon-web-services