

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

# バッチ翻訳ジョブの前提条件
<a name="async-prereqs"></a>

Amazon Translate がバッチ翻訳ジョブを正常に実行するには、以下の前提条件を満たす必要があります。
+ 入力および出力ドキュメントを含む Amazon S3 バケットは、呼び出す API エンドポイントと同じ AWS リージョン内に存在している必要があります。
+ バッチ入力ドキュメントの集合は、サイズが 5 GB 以下とします。
+ バッチ翻訳ジョブでは、最大 100 万個のドキュメントを送信できます。
+ 各入力ドキュメントは 20 MB 以下で、100 万字未満とします。
+ 入力ファイルは、Amazon S3 バケットのフォルダ内に存在している必要があります。バケットの最上位レベルに入力ファイルを追加すると、バッチ翻訳ジョブを実行するときに Amazon Translate によってエラーがスローされます。この要件は入力ファイルに適用されます。出力ファイルにフォルダは不要で、Amazon Translate を Amazon S3 バケットの最上位レベルに配置できます。
+ 入力ファイルフォルダには、ネストされたフォルダを含めることができます。ネストされたどのフォルダにも **details** という名前が付けられていないことを確認してください。付いていると、バッチ翻訳ジョブを実行するときに Amazon Translate によってエラーがスローされます。

## サポートされるファイル形式
<a name="async-prereqs-formats"></a>

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 エンコーディングする必要があります。

## 前提となるアクセス許可
<a name="async-prereqs-permissions"></a>

バッチ翻訳ジョブを実行する前に、 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 のサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。**

**Example アクセス許可ポリシー**  
次のアクセス許可ポリシーの例では、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/*}}"
    }
  ]
}
```

**Example 信頼ポリシー**  
次の信頼ポリシーでは、ポリシーが属する IAM ロールが Amazon Translate に引き受けられるようにしています。  
[ 混乱した代理](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)問題を軽減するために、信頼ポリシーを使用している 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}}"
        }
      }
    }
  ]
}
```

## 暗号化をカスタマイズするための前提となるアクセス許可
<a name="async-prereqs-permissions-custom-encryption"></a>

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

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

オプションで、 AWS アカウントで作成、所有、管理する KMS *キーであるカスタマーマネージド*キーを使用して出力を暗号化することもできます。

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

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

**Example 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でのキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」を参照してください。

### 別の AWS アカウントの AWS KMS キーを使用するアクセス許可
<a name="async-prereqs-permissions-custom-encryption-cross-account"></a>

Amazon Translate を使用するアカウントとは異なる AWS アカウントにある KMS キーを使用する場合は、以下を行う必要があります。

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

1. でキーポリシーを更新します AWS KMS。

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

**Example 別のアカウントの 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 キーポリシーを更新するには、次のポリシーステートメントの例に示されているように、キーの使用が許可されているプリンシパルとしてサービスロールと管理者ユーザーを追加します。

**Example 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 キーの使用を許可する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)」を参照してください。