Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS/Cognito/IAM错误,角色未经授权_Amazon Web Services_Amazon S3_Amazon Cognito_Amazon Iam_Amazon Elastic Transcoder - Fatal编程技术网

Amazon web services AWS/Cognito/IAM错误,角色未经授权

Amazon web services AWS/Cognito/IAM错误,角色未经授权,amazon-web-services,amazon-s3,amazon-cognito,amazon-iam,amazon-elastic-transcoder,Amazon Web Services,Amazon S3,Amazon Cognito,Amazon Iam,Amazon Elastic Transcoder,这条消息最初是在AWS开发者论坛上发布的,但似乎AWS的人群正在关注,所以我在这里复制它 大家好,我是一个绝对的AWS初学者,所以我会尽可能地说清楚 我试图使用JSAPI允许我网站上的任何用户将视频上传到S3(这很好),然后将上传的文件转换为其他格式(使用弹性转码器) 我已经建立了: S3上的输入(非公共)和输出(公共)存储桶。输入接收用户提交的视频,该部分工作:) 弹性转码器管道(video-converter-test-pipeline-01) Cognito上的联合身份(video\u

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

大家好,我是一个绝对的AWS初学者,所以我会尽可能地说清楚

我试图使用JSAPI允许我网站上的任何用户将视频上传到S3(这很好),然后将上传的文件转换为其他格式(使用弹性转码器)

我已经建立了:

  • S3上的输入(非公共)和输出(公共)存储桶。输入接收用户提交的视频,该部分工作:)
  • 弹性转码器管道(
    video-converter-test-pipeline-01
  • Cognito上的联合身份(
    video\u converter\u test\u 02
  • 在IAM上匹配身份验证和未授权角色(
    Cognito\u video\u converter\u test\u 02Auth\u角色
    Cognito\u video\u converter\u test\u 02Unauth\u角色
管道具有以下权限摘要:“已授予以下IAM角色对此管道的访问权限:arn:aws:IAM::529773801731:role/Elastic\u Transcoder\u Default\u role”

Cognito\u video\u converter\u test\u 02Unauth\u角色
有两个附加策略:

  • oneClick\u Cognito\u video\u converter\u test\u 02Unauth\u Role\u 1522923667877
  • 视频转换器策略
    ,我自己制定的
以下是它的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:假定角色/Cognito_视频_转换器_测试_02Unauth_角色/CognitoIdentityCredentials无权执行:elastictranscoder:CreateJob on resource:arn:aws:elastictranscoder:eu-west-1:529773801731:管道/1522763370759 mmowmr

我尝试使用IAM策略模拟器来理解错误,但在使用相同参数时,我得到了“允许”

我肯定我做错了什么,但我不明白是什么。我试过很多东西,但都没用。任何帮助都将不胜感激:)


提前谢谢,再见

我联系了AWS开发者支持,解决方案似乎是在IAM策略中包含以下内容:

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

我联系了AWS开发人员支持,解决方案似乎在IAM策略中包含以下内容:

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

你们真是太好了,但我最终还是使用了另一种视频转换服务,因为亚马逊太令人沮丧了。即使是你的建议(我再次感谢你的建议)也不令人沮丧:这个片段是从哪里来的,它意味着什么?另外,为什么AWS开发支持是解决这样一个问题的地方,不应该以某种方式记录下来吗?或者IAM策略模拟器没有完成它的工作。感到困惑:/我100%同意你的观点,并且由于这些原因,我将来可能会离开AWS。我也有同样的问题,AWS现在自动添加了这个策略,但我仍然遇到了这个问题。你真是太好了,但我最终使用了另一个视频转换服务,因为亚马逊太令人沮丧了。即使是你的建议(我再次感谢你的建议)也不令人沮丧:这个片段是从哪里来的,它意味着什么?另外,为什么AWS开发支持是解决这样一个问题的地方,不应该以某种方式记录下来吗?或者IAM策略模拟器没有完成它的工作。感到困惑:/我100%同意您的意见,并且由于这些原因,我将来可能会离开AWS。我也有同样的问题,AWS现在自动添加了此策略,但我仍然遇到了这个问题。