Изначально это сообщение было опубликовано на форумах разработчиков 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 не авторизован для выполнения: elastictranscoder: CreateJob на ресурсе: arn: aws: elastictranscoder: pipe37537022: 52977 mmowmr
Я попытался использовать IAM Policy Simulator, чтобы понять, что было не так, но когда я делал это с теми же параметрами, я получаю «разрешено» ...
Я уверен, что что-то здесь делаю не так, но не могу понять что. Я много чего пробовал, но ничего не получалось. Любая помощь будет оценена :)
Заранее спасибо, пока!