【问题标题】:AWS/Cognito/IAM Error with Unauth role带有 Unauth 角色的 AWS/Cognito/IAM 错误
【发布时间】:2018-10-08 03:10:51
【问题描述】:

这条消息最初是在 AWS 开发者论坛上发布的,但似乎 AWS 人群在 SO,所以我在这里复制它。

您好,我是 AWS 的绝对初学者,所以我会尽量说清楚。

我正在尝试使用 JS API 来允许我网站上的任何用户将视频上传到 S3(效果很好),然后将上传的文件转换为其他格式(使用 Elastic Transcoder)。

我已经设置好了:

  • S3 上的输入(非公共)和输出(公共)存储桶。输入接收用户提交的视频,这部分工作:)
  • 一个 Elastic Transcoder 管道 (video-converter-test-pipeline-01)
  • Cognito 上的联合身份 (video_converter_test_02)
  • 在 IAM 上匹配 Auth 和 Unauth 角色(Cognito_video_converter_test_02Auth_RoleCognito_video_converter_test_02Unauth_Role

管道具有以下权限摘要:“已授予以下 IAM 角色访问此管道的权限:arn:aws:iam::529773801731:role/Elastic_Transcoder_Default_Role”

Cognito_video_converter_test_02Unauth_Role 有两个附加策略:

  • oneClick_Cognito_video_converter_test_02Unauth_Role_1522923667877
  • video-converter-policy,我自己做的。

这是它的 JSON 表示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "elastictranscoder:CreateJob",
            "Resource": [
                "arn:aws:elastictranscoder:*:*:pipeline/*",
                "arn:aws:elastictranscoder:*:*:preset/*"
            ]
        }
    ]
}

以下是我尝试使用 JS API 创建转码作业的方法:

function createJob(uploadedFileKey) {
    console.log("Create job", uploadedFileKey);
    var params = {
        PipelineId: PipelineId,
        Input: {
            Key: uploadedFileKey
        },
        Output: {
            PresetId: PresetId
        }
    };
    elastictranscoder.createJob(params, function (err, data) {
        if (err) console.error(err, err.stack); // an error occurred
        else console.log(data);           // successful response
    });
}

执行时出现如下错误:

错误:用户:arn:aws:sts::529773801731:assumed-role/Cognito_video_converter_test_02Unauth_Role/CognitoIdentityCredentials 无权执行:elastictranscoder:CreateJob on resource:arn:aws:elastictranscoder:eu-west-1:529773801731:pipeline /1522763370759-mmowmr

我尝试使用 IAM 策略模拟器来了解问题所在,但使用相同的参数这样做时,我得到“允许”...

我确定我在这里做错了什么,但不明白是什么。我尝试了很多东西,但没有任何效果。任何帮助将不胜感激:)

提前致谢,再见!

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cognito amazon-iam amazon-elastic-transcoder


    【解决方案1】:

    我联系了 AWS 开发人员支持,解决方案似乎是在 IAM 政策中包含这些:

    {
        "Sid": "VisualEditor3",
        "Effect": "Allow",
        "Action": "cognito-sync:*",
        "Resource": "*"
    },
    {
        "Sid": "VisualEditor3",
        "Effect": "Allow",
        "Action": "mobileanalytics:PutEvents",
        "Resource": "*"
    }
    

    【讨论】:

    • 你真好,但我最终使用了另一个视频转换服务,因为亚马逊太令人沮丧了。甚至你的建议(我再次感谢你)也不是不令人沮丧:这个 sn-p 来自哪里,它是什么意思?此外,AWS 开发支持为什么会成为解决此类问题的地方,难道不应该以某种方式记录下来吗?或者 IAM Policy Simulator 是否在发挥作用。感到困惑:/
    • 我 100% 同意您的观点,并且由于这些原因,将来很可能会离开 AWS。
    • 我有同样的问题,AWS 现在自动添加此策略,但我仍然遇到问题。
    猜你喜欢
    • 2021-08-18
    • 2016-09-11
    • 2019-07-08
    • 2016-07-04
    • 2018-10-13
    • 2018-07-05
    • 2020-10-03
    • 1970-01-01
    • 2020-11-08
    相关资源
    最近更新 更多