Amazon Transcribeを利用する時のIAMポリシーについて Part1では、IAMポリシーで設定できるアクションは3つと述べましたが、Amazon Transcribeの機能を考えるとアクションが3つしかないはずがありません。
Amazon Transcribeのアクション
APIリファレンスを見てみると、Amazon Transcribeのアクションは全部で8つ。前回の3つに加えて、
- CreateVocabulary
- DeleteVocabulary
- GetVocabulary
- ListVocabularies
- UpdateVocabulary
があります。
Vocabulary(カスタム語彙)とは
今回はあまり詳しくは紹介しませんが、Amazon TranscribeではVocabulary(カスタム語彙)を登録することで、文字起こしの精度を高めることができます。テキストファイルやCSVに語句を入力しておき、Amazon Transcribeへアップロードします。ユーズケースとしては、業界用語や製品名など一般的な語句ではない文字起こしをする、というよなことが考えられます。今回はカスタム語彙に関する操作を許可する権限について説明します。
IAMポリシーをつくってみる
ビジュアルエディターではカスタム語彙のアクションが見あたらないので、JSONで書いてみることに。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"transcribe:CreateVocabulary",
"transcribe:GetVocabulary",
"transcribe:ListVocabularies",
"transcribe:UpdateVocabulary",
"transcribe:DeleteVocabulary"
],
"Resource": "*"
}
]
}
すると... 「識別されないアクション」だと...
ひょっとして権限いらない?
ひょっとするとカスタム語彙を操作するのに何も権限がいらないとか...
そんなことはありませんでした。
not authorized to perform: transcribe:ListVocabularies
では、どうするか?
AWS管理のポリシーにAmazonTranscribeFullAccess
とうのがあったのでそれを使うことに。
中身は↓な感じ。Amazon TranscribeのすべてのアクションとS3のGetObjectが許可されています。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"transcribe:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::*transcribe*"
]
}
]
}
すると... うん、見えました。
カスタム語彙へのアクションの許可
どうやら、カスタム語彙へのアクションのみを許可することはできない仕様のようです。まあ、だからと言って困ることはないと思います。AmazonTranscribeReadOnlyAccess
というポリシーもあり、そちらを確認すると...
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"transcribe:Get*",
"transcribe:List*"
],
"Resource": "*"
}
]
}
このようにGet
とList
でジョブとカスタム語彙の読み込み両方が許可されています。カスタム語彙へのアクションの中でも、GetVocabularyを許可したい、ListVocabulariesを許可したいという場合はこれでOKです。もちろんこれだと、GetTranscriptionJob/ListTranscriptionJobsも同時に許可されます。CreateVocabulary・DeleteVocabulary・UpdateVocabularyを許可したい場合はAmazonTranscribeFullAccess
のようにAmazon Transcribeの全てのアクションを許可する必要があります。
IAMポリシーでは、カスタム語彙へのアクションの許可を細かくは管理できず、カスタム語彙へのアクションを許可しようとすると、ジョブへのアクションも許可するということです。
つづく...