Сервис AWS Transcribe выводит файл с отказом в доступе, даже с установленными разрешениями
Я тестирую службу расшифровки AWS для проекта после запуска задания запуска расшифровки.
var TrsSession *transcribeservice.TranscribeService
func TranscribeTest() (trsOutput *transcribeservice.StartTranscriptionJobOutput, err error) {
trsOutput, err = TrsSession.StartTranscriptionJob(&transcribeservice.StartTranscriptionJobInput{
TranscriptionJobName: aws.String("gettysburg_test"),
IdentifyLanguage: aws.Bool(true),
MediaFormat: aws.String("wav"),
OutputBucketName: aws.String(os.Getenv("AWS_BUCKET_NAME")),
Media: &transcribeservice.Media{
MediaFileUri: aws.String("s3://" + os.Getenv("AWS_BUCKET_NAME") + "/gettysburg.wav"),
},
})
if err != nil {
fmt.Println(err)
return trsOutput, err
}
return trsOutput, nil
}
файл выводится правильно с указанным именем .json, но в содержимом отображается ошибка
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>JDP5*****5QQJ</RequestId>
<HostId>wnd5k6x********************TDwqIpe53S1w=</HostId>
</Error>
Я новичок в aws, я не уверен, в чем проблема
Я новичок в aws, я не уверен, в чем проблема. Я пробовал другое разрешение IAM, но результат все тот же.
1 ответ
Скорее всего, вам нужны политики корзин для ваших корзин S3, чтобы разрешить AWS Transcribe доступ как к корзинам ввода, так и к корзинам вывода, например:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {
"Service": [
"transcribe.amazonaws.com"
]
},
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-INPUT-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-INPUT-BUCKET/*"
]
}
}
и
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {
"Service": [
"transcribe.amazonaws.com"
]
},
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-OUTPUT-BUCKET/*"
]
}
}
как описано здесь