此消息最初发布在AWS开发者论坛上,但似乎AWS人群已经在SO上,所以我在这里重复它。
您好,我是一名绝对的AWS初学者,所以我会尽量保持清醒。
我正在尝试使用JS API来允许我网站上的任何用户将视频上传到S3(这很有效),然后将上传的文件转换为其他格式(使用Elastic Transcoder)。
我已成立:
video-converter-test-pipeline-01
)video_converter_test_02
)Cognito_video_converter_test_02Auth_Role
和Cognito_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:assume-role / Cognito_video_converter_test_02Unauth_Role / CognitoIdentityCredentials无权执行:elastictranscoder:资源上的CreateJob:arn:aws:elastictranscoder:eu-west-1:529773801731:pipeline / 1522763370759-mmowmr
我尝试使用IAM策略模拟器来理解错误,但是当使用相同的参数时,我得到“允许”......
我确定我在这里做错了什么,却无法理解。我尝试了很多东西,但没有任何效果。任何帮助将不胜感激:)
提前致谢,再见!
答案 0 :(得分:0)
我联系了AWS开发人员支持,解决方案似乎是将这些内容包含在IAM策略中:
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": "cognito-sync:*",
"Resource": "*"
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": "mobileanalytics:PutEvents",
"Resource": "*"
}