【问题标题】:Getting a aws credentials error when I run user data of ec2 instance运行 ec2 实例的用户数据时出现 aws 凭据错误
【发布时间】:2021-07-04 22:37:15
【问题描述】:

我的 ec2 实例中有一个 shell 脚本,其中包含以下命令

#!/bin/bash
sleep 30
aws s3 sync s3://fbt-pano-input /home/ubuntu/pano/Zip
python3 pano.py

当我直接从实例运行这个 shell 脚本时,它会正确执行。但是,我的实例用户数据应该运行这个 shell 脚本。当它尝试运行它时,它会给出以下错误 致命错误:无法找到凭据

似乎无法运行同步命令从存储桶下载项目。我需要提供特殊访问权限吗?几个小时前它似乎工作正常。现在突然找不到凭据了。

这是我的用户数据代码

MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/sh

cd /home/ubuntu
sh ./panorama.sh

我的 aws 配置具有正确的凭据。为什么会报错

【问题讨论】:

    标签: python amazon-web-services amazon-s3 amazon-ec2


    【解决方案1】:

    您不应在实例中硬编码 AWS 凭证。您的 EC2 应用程序所需的 AWS 权限应通过实例角色提供:

    不过,您的用户数据在 root 下执行,因此您的应用程序将在根主文件夹中查找凭据,而不是常规 ubuntu 用户。要在不同的用户下运行您的命令,您可以尝试以下操作:

    runuser - ubuntu -c './panorama.sh' 
    

    【讨论】:

    • @akshayacharya 进展如何?这个问题有什么进展吗?如果答案有帮助,我们将不胜感激。
    猜你喜欢
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2019-11-23
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    相关资源
    最近更新 更多