带有下载凭据的AWS bootstrap AMI形成私有s3存储桶

时间:2017-11-08 07:04:03

标签: bash amazon-s3 amazon-ec2

我正在尝试引导AMI从私有S3存储桶下载文件。 我已正确设置凭据,当我尝试将文件从我的存储桶复制到EC2实例时,我可以在系统日志中看到它无法检测到我的凭据。 有什么奇怪的,当我使用SSH登录我的实例并使用相同的命令时,我成功地将我的文件复制到我的实例。

以下是UserData的bash脚本:

#! /bin/bash
yum update -y
sudo yum remove java-1.7.0-openjdk -y
sudo yum install java-1.8.0 -y
mkdir -p home/ec2-user/.aws
cat > home/ec2-user/.aws/config << EOF
[default]\n
aws_access_key_id=my_access_key_id\n
aws_secret_access_key=my_secret_key\n
region=eu-west-1
EOF
aws s3 cp s3://my_bucket_name/filename home/ec2-user/filename

谢谢,

1 个答案:

答案 0 :(得分:1)

看起来您的脚本只会在当前目录为/时运行,因为:

cat > home/ec2-user/...

是相对的。当您登录并碰巧与CWD=/一起运行时,这将起作用。

我还没有测试过,但我怀疑cloudinit不会从/运行UserData。您可以通过使用前导更新脚本来证明这一点,或者我可以稍后再确认。