Amazon web services AWS CLI在shell中工作,但在cron作业中不工作

Amazon web services AWS CLI在shell中工作,但在cron作业中不工作,amazon-web-services,amazon-ec2,cron,Amazon Web Services,Amazon Ec2,Cron,我试图通过EC2上的cron自动化一些作业。但是,由于错误“403禁止”,aws命令失败。当我在shell中运行这些代码时,代码运行得很好。我尝试了几乎所有关于堆栈溢出的解决方案,但没有一个解决了这个问题 测试代码非常简单。(测试将文件从S3复制到我的EC2) 有人知道我还能做些什么来解决这个问题吗?谢谢 到目前为止,我尝试了以下解决方案: 为root用户和我的当前用户安装并配置awscli 将全局路径和主路径放在脚本的顶部 例如: 尝试以我的当前用户和root用户身份调度cron作业,但均失败

我试图通过EC2上的cron自动化一些作业。但是,由于错误“403禁止”,aws命令失败。当我在shell中运行这些代码时,代码运行得很好。我尝试了几乎所有关于堆栈溢出的解决方案,但没有一个解决了这个问题

测试代码非常简单。(测试将文件从S3复制到我的EC2)

有人知道我还能做些什么来解决这个问题吗?谢谢

到目前为止,我尝试了以下解决方案:

  • 为root用户和我的当前用户安装并配置awscli
  • 将全局路径和主路径放在脚本的顶部
  • 例如:

  • 尝试以我的当前用户和root用户身份调度cron作业,但均失败
  • 下面是我从日志中得到的确切错误:
    主题:/usr/local/bin/aws s3 cp s3://fraud training test/FraudAWS_v1.R/R$
    MIME版本:1.0
    内容类型:文本/纯文本;字符集=UTF-8
    内容传输编码:8比特
    X-Cron-Env:
    X-Cron-Env:
    X-Cron-Env:
    X-Cron-Env:
    致命错误:调用HeadObject操作时发生错误(403):禁止
    
    问题可能是您在crontab中配置的用户与在AWS CLI中配置的用户不同

    您必须将执行crontab-e的用户与在aws配置中配置的用户相匹配


    这在我的Lightsail Bitnami实例上运行良好。

    问题可能是您在crontab中配置的用户与在AWS CLI中配置的用户不同

    您必须将执行crontab-e的用户与在aws配置中配置的用户相匹配


    这在我的Lightsail Bitnami实例上运行良好。

    使用
    哪个AWS
    和do
    ls-la
    检查您的AWS安装路径以了解用户权限

    然后在
    crontab-e
    中为当前用户运行它,或者在
    sudo crontab-e
    中为root用户运行它


    它在Ubuntu 16.04中对我有效。

    通过使用
    哪个AWS
    和do
    ls-la
    检查您的AWS安装路径以了解用户权限

    然后在
    crontab-e
    中为当前用户运行它,或者在
    sudo crontab-e
    中为root用户运行它


    它在Ubuntu 16.04中对我有效。

    它似乎与正在使用的AWS凭证有关。EC2是否分配了有权访问S3存储桶的角色?或者您有意使用存储在本地
    ~.aws/credentials
    文件中的凭据?我配置并授予ubuntu用户和root用户访问S3 bucket的权限。我检查了~.aws/credentials文件,该文件中的凭据对我来说是正确的。它似乎与正在使用的aws凭据相关。EC2是否分配了有权访问S3存储桶的角色?或者您有意使用存储在本地
    ~.aws/credentials
    文件中的凭据?我配置并授予ubuntu用户和root用户访问S3 bucket的权限。我检查了~.aws/credentials文件,该文件中的凭据对我来说是正确的。
    /2 * * * * /usr/local/bin/aws s3 cp s3://fraud-training-test/FraudAWS_v1.R /home/ubuntu
    
    SHELL=/bin/bash
    
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
    Subject: /usr/local/bin/aws s3 cp s3://fraud-training-test/FraudAWS_v1.R /r$
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Cron-Env: <PATH=/usr/bin:/usr/local/bin>
    X-Cron-Env: <SHELL=/bin/sh>
    X-Cron-Env: <HOME=/root>
    X-Cron-Env: <LOGNAME=root>
    
    fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden