媒体转换服务上的 AWS IAM 角色策略问题 [无法打开输入文件 [无法读取数据:AssumeRole 失败]]]

Posted

技术标签:

【中文标题】媒体转换服务上的 AWS IAM 角色策略问题 [无法打开输入文件 [无法读取数据:AssumeRole 失败]]]【英文标题】:AWS IAM Role Policy Issue on Media Convert Service [ Cannot open input file [Failed to read data: AssumeRole failed]]] 【发布时间】:2021-10-05 19:02:10 【问题描述】:

我正在努力使用 AWS IAM 角色策略,我正在关注 Lambda 函数的教程,以便在上传新文件时从 s3 存储桶事件中读取并将其发送到 AWS MediaConvert 以转换视频文件。 Lambda 函数能够在测试中从 s3 读取,但它在 MediaConvert 的工作失败。

我已经为角色设置了策略,并且还提供了内联策略,但我仍然无法让它发挥作用。

AWS Elemental MediaConvert Screenshot

为 IAM ROLE 设置的策略

IAM Policies

内联策略的 Json

lambda-s3-policy-inlinepolicy


"Version": "2012-10-17",
"Statement": [
    
        "Sid": "ExampleStmt",
        "Action": [
            "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::aws-mybucket-01/*"
        ]
    
]
 

政策摘要 PolicySummaryImg

VodLambdaRole


"Version": "2012-10-17",
"Statement": [
    
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "*",
        "Effect": "Allow",
        "Sid": "Logging"
    ,
    
        "Action": [
            "iam:PassRole"
        ],
        "Resource": [
            "arn:aws:iam::myAccountID:role/my-lambda-role"
        ],
        "Effect": "Allow",
        "Sid": "PassRole"
    ,
    
        "Action": [
            "mediaconvert:*"
        ],
        "Resource": [
            "*"
        ],
        "Effect": "Allow",
        "Sid": "MediaConvertService"
    ,
    
        "Effect": "Allow",
        "Action": [
            "sts:AssumeRole"
        ],
        "Resource": "arn:aws:iam::myAccountID:role/my-lambda-role"
    
]

PolicySummary

【问题讨论】:

我有点困惑......你提到了一个 AWS Lambda 函数,但错误出现在 MediaConvert 控制台中。那么错误的根源在哪里? (我熟悉 IAM,但不熟悉 MediaConvert。)MediaConvert 是访问 S3 对象本身,还是触发 AWS Lambda 函数来访问 S3 对象? mediaConvert 访问 s3 对象本身,并在转换视频后将其输出到 s3 存储桶。错误源自 MediaConvert - 错误 1434,即 IAM 问题 【参考方案1】:

确保分配给 MediaConvert 作业的 IAM 角色具有信任 MediaConvert 的信任策略


  "Version": "2012-10-17",
  "Statement": [
    
      "Sid": "",
      "Effect": "Allow",
      "Principal": 
        "Service": "mediaconvert.amazonaws.com"
      ,
      "Action": "sts:AssumeRole"
    
  ]

这通常在您在管理控制台中创建 IAM 角色并选择 MediaConvert 作为服务时自动生成。

【讨论】:

谢谢约翰,它成功了。我必须将 mediaconvert 添加到信任策略中 太棒了!请将此标记为已接受的答案,以便未来的读者可以识别解决方案。

以上是关于媒体转换服务上的 AWS IAM 角色策略问题 [无法打开输入文件 [无法读取数据:AssumeRole 失败]]]的主要内容,如果未能解决你的问题,请参考以下文章

AWS IAM 策略:按用户/角色限制存储桶/文件夹访问?

从 AWS 组织导出所有 IAM 用户、角色和策略

AWS IAM 策略允许用户创建具有特定策略/角色的 IAM 用户

AWS IAM 找到具有特定策略的角色?

如何使用 Terraform 创建没有代入角色策略的 AWS IAM 角色?

Cloudformation 的最低权限 AWS IAM 策略