S3上传触发Lambda调用boto3创建MediaConvert任务报AccessDenied错误
解决方案
这个错误的核心是Lambda执行所用的reads3MODRole角色,没有权限将MediaConvert默认角色传递给MediaConvert服务,你可以按照以下步骤配置权限:
- 打开AWS IAM控制台,在左侧菜单栏选择「角色」,搜索你的Lambda关联角色
reads3MODRole,点击进入角色详情页。 - 在详情页的「权限」标签下,点击「添加权限」按钮,选择「创建内联策略」。
- 进入策略创建页后,切换到JSON编辑模式,将以下策略填入编辑框,注意替换Resource字段的值为你报错信息中给出的MediaConvert默认角色ARN:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::xxxxxx:role/service-role/MediaConvert_Default_Role", "Condition": { "StringEquals": { "iam:PassedToService": "mediaconvert.amazonaws.com" } } } ] }
- 为策略命名后保存即可,配置完成后等待1~2分钟权限生效,再重新测试转码任务。
补充说明
你之前找不到对应配置入口,是因为iam:PassRole权限没有适配该场景的AWS托管策略,需要手动创建自定义内联策略完成配置。额外请确认你的Lambda角色已经添加了mediaconvert:CreateJob权限,以及对应S3存储桶的读写权限,避免后续触发其他权限报错。
内容的提问来源于stack exchange,提问作者Christopher Jakob
相关产品推荐
相关产品推荐

