我正在 AWS 上部署我的第一个批处理作业。当我在 EC2 实例中运行我的 docker 映像时,作业调用的脚本运行良好。我已为此实例分配了一个 IAM 角色以允许 S3 访问。
但是,当我在 AWS Batch 上运行与作业相同的脚本时,由于 S3 访问中的访问被拒绝错误,它会失败。尽管事实上在作业定义中,我分配了一个具有完全 S3 访问权限的 IAM 角色(为弹性容器服务任务创建)。
如果我使用不访问 S3 的命令启动批处理作业,它运行良好。
由于对作业定义使用 IAM 角色似乎还不够,那么如何在 AWS 上的批处理作业中授予 S3 权限?
编辑
因此,如果我只是 aws s3 ls interlinked
作为我的工作运行,那也可以正常运行。不起作用的是运行 R 脚本:
library(aws.s3)
get_bucket("mybucket")[[1]]
拒绝访问失败。
因此,问题似乎出在aws.s3
包装上,或者更有可能是我对它的使用。