Это сообщение было первоначально размещено на форумах разработчиков AWS, но похоже, что толпа AWS находится на SO, поэтому я дублирую его здесь.
Привет, я абсолютный новичок в AWS, поэтому постараюсь быть максимально ясным.
Я пытаюсь использовать JS API, чтобы позволить любому пользователю на моем сайте загружать видео на S3 (это хорошо работает), а затем преобразовывать загруженные файлы в другие форматы (с помощью Elastic Transcoder).
Я настроил:
- входные (не публичные) и выходные (публичные) сегменты на S3. На вход поступает пользовательское видео, эта часть работает:)
- Трубопровод Эластичный Транскодер (
video-converter-test-pipeline-01
)
- федеративное удостоверение на Cognito (
video_converter_test_02
)
- соответствие ролей Auth и Unauth в IAM (
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: предполагаемая роль / Cognito_video_converter_test_02Unauth_Role / CognitoIdentityCredentials не авторизован для выполнения :astictranscoder: CreateJob на ресурсе: arn: aws :astictranscoder: eu-west-011: 7: eu-west-1 01 / 1522763370759-mmowmr
Я пытался использовать IAM Policy Simulator, чтобы понять, в чем дело, но при этом с теми же параметрами я получаю «разрешено» ...
Я уверен, что я делаю что-то не так, но не могу понять, что. Я перепробовал много вещей, но ничего не получалось. Любая помощь будет оценена :) 1052 *
Заранее спасибо, пока!