バッチ翻訳ジョブの前提条件 - Amazon Translate

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

バッチ翻訳ジョブの前提条件

Amazon Translate がバッチ翻訳ジョブを正常に実行するには、以下の前提条件を満たす必要があります。

  • 入力および出力ドキュメントを含む Amazon S3 バケットは、呼び出す API エンドポイントと同じ AWS リージョン内に存在している必要があります。

  • バッチ入力ドキュメントの集合は、サイズが 5 GB 以下とします。

  • バッチ翻訳ジョブでは、最大 100 万個のドキュメントを送信できます。

  • 各入力ドキュメントは 20 MB 以下で、100 万字未満とします。

  • 入力ファイルは、Amazon S3 バケットのフォルダ内に存在している必要があります。バケットの最上位レベルに入力ファイルを追加すると、バッチ翻訳ジョブを実行するときに Amazon Translate によってエラーがスローされます。この要件は入力ファイルに適用されます。出力ファイルにフォルダは不要で、Amazon Translate を Amazon S3 バケットの最上位レベルに配置できます。

  • 入力ファイルフォルダには、ネストされたフォルダを含めることができます。ネストされたどのフォルダにも details という名前が付けられていないことを確認してください。付いていると、バッチ翻訳ジョブを実行するときに Amazon Translate によってエラーがスローされます。

サポートされるファイル形式

Amazon Translate では、バッチ翻訳ジョブで次の種類のファイルがサポートされています。

  • プレーンテキスト

  • HTML

  • Word ドキュメント (.docx)

  • PowerPoint プレゼンテーションファイル (.pptx)

  • Excel ワークブックファイル (.xlsx)

  • XML Localization Interchange File Format (XLIFF) ファイル (.xlf) Amazon Translate では XLIFF バージョン 1.2 のみがサポートされています。

Amazon Translate ではファイルを UTF-8 エンコーディングする必要があります。

前提となるアクセス許可

バッチ翻訳ジョブを実行する前に、AWS アカウントに IAM のサービスロールが必要です。このロールには、Amazon Translate に以下を付与するアクセス許可ポリシーがある必要があります。

  • Amazon S3 の入力フォルダとそのすべてのサブフォルダへの読み取りアクセス権

  • 出力バケットへの読み取り/書き込みアクセス権

また、ロールを引き受け、アクセス許可を取得することを Amazon Translate に許可する信頼ポリシーが含まれている必要があります。この信頼ポリシーは、translate.amazonaws.com サービスプリンシパルによる sts:AssumeRole アクションの実行を許可する必要があります。

Amazon Translate コンソールを使用してバッチ翻訳ジョブを作成する場合、Amazon Translate でこのロールを自動的に作成できるようにするオプションがあります。AWS CLI または Amazon Translate API を使用してバッチ翻訳ジョブを実行する場合、リクエストでロールの Amazon リソースネーム (ARN) を提供します。

詳細については、「IAM ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

例 許可ポリシー

次のアクセス許可ポリシーの例では、Amazon S3 のサンプル入力フォルダへの読み取りアクセス権が付与されます。サンプル出力バケットへの読み取り/書き込みアクセス権が付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::input-bucket-name/*", "arn:aws:s3:::output-bucket-name/*" ] }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::input-bucket-name", "arn:aws:s3:::output-bucket-name" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::output-bucket-name/*" } ] }
例 信頼ポリシー

次の信頼ポリシーでは、ポリシーが属する IAM ロールが Amazon Translate に引き受けられるようにしています。

混乱した代理問題を軽減するために、信頼ポリシーを使用している AWS アカウントを確認することをお勧めします。次の例では、aws:SourceArn および aws:SourceAccount 条件キーを使用してソースアカウントを検証しています。バッチ翻訳ジョブを送信する AWS アカウントを入力します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "translate.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:translate:*:111122223333:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

暗号化をカスタマイズするための前提となるアクセス許可

Amazon Translate で暗号化設定をカスタマイズできますが、最初に IAM のサービスロールにアクセス許可を追加する必要があります。

Amazon Translate では、バッチ翻訳ジョブを実行したときに生成される翻訳出力が暗号化されます。デフォルトでは、この暗号化は AWS マネージドキー を使用して実行されます。このタイプのキーは、AWS により作成されてアカウントの AWS Key Management Service (AWS KMS) に保存されます。ただし、この KMS キーをユーザー自身が管理することはできません。これは、ユーザーに代わって AWS によってのみ管理と使用が行われます。

オプションで、カスタマーマネージドキーによる出力の暗号化を選択することもできます。これは KMS キーで、AWS アカウントにおいてユーザーが作成して所有し、管理します。

キーには、Amazon Translate によるキーの使用を可能にするキーポリシーが必要です。キーポリシーではこれを、Amazon Translate による Amazon S3 バケットへのアクセスを許可するサービスロールにアクセス許可を付与することで実行します。

次のポリシーステートメント例に示されているように、キーポリシーにより、出力の暗号化に必要な AWS KMS オペレーションをサービスロールで実行できるようになります。

例 KMS キーポリシーステートメント
{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/AmazonTranslateServiceRoleS3FullAccess" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": "*" }

詳細については、AWS Key Management Service デベロッパーガイドの「AWS KMS でのキーポリシー」を参照してください。

別の AWS アカウントの AWS KMS キーを使用するためのアクセス許可

別の AWS アカウントにある KMS キーを Amazon Translate を使用しているアカウントから使用する場合、以下を行う必要があります。

  1. IAM で Amazon Translate のサービスロールを更新する。

  2. AWS KMS でキーポリシーを更新する。

サービスロールを更新するには、以下の例に示されているように、別の AWS アカウントにある KMS キーを使用して必要な AWS KMS オペレーションを実行できるようにするためのポリシーをアタッチします。

例 別のアカウントの KMS キーへのアクセス権を付与する IAM ポリシー
{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/key-id" }

KMS キーポリシーを更新するには、次のポリシーステートメントの例に示されているように、キーの使用が許可されているプリンシパルとしてサービスロールと管理者ユーザーを追加します。

例 IAM ロールによるキーの使用を許可するための KMS キーポリシーステートメント
{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/AmazonTranslateServiceRoleS3FullAccess", "arn:aws:iam::444455556666:admin" ] }, "Action": [ "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": "*" }

詳細については、「AWS Key Management Service デベロッパーガイド」の「他のアカウントのユーザーに AWS KMS キーの使用を許可する」をご参照ください。