バッチオペレーションのトラブルシューティング - Amazon Simple Storage Service

バッチオペレーションのトラブルシューティング

次のトピックは、Amazon S3 バッチオペレーションの実行中に発生する可能性がある問題のトラブルシューティングに役立ちます。

S3 バッチレプリケーションに関する問題のトラブルシューティングについては、「バッチレプリケーションエラー」を参照してください。

アクセス許可の問題があるか、S3 Object Lock 保持モードが有効の場合に、ジョブレポートが配信されない

次のエラーは、必要なアクセス許可がないか、配信先のバケットで Object Lock の保持モード (ガバナンスモードまたはコンプライアンスモード) が有効になっている場合に発生します。

エラー: 失敗の理由。ジョブレポートをレポートバケットに書き込めませんでした。権限を確認してください。

AWS Identity and Access Management IAM ロールと信頼ポリシーは、レポートの配信先であるバケットの PUT オブジェクトに対する s3:PutObject アクセス許可を S3 バッチオペレーションに付与するように設定する必要があります。必要なアクセス許可がないと、ジョブレポートの配信エラーが発生します。

保持モードが有効な場合、バケットは Write-Once-Read-Many (WORM) で保護されます。Object Lock の保持モードが有効になっている配信先のバケットはサポートされないため、ジョブ完了レポートの配信試行は失敗します。この問題を解決するには、オブジェクトロック保持モードが有効になっていないジョブ完了レポートのレプリケート先バケットを選択します。

400 InvalidRequest: Task failed due to missing VersionId」によりオブジェクトが失敗したバッチオペレーション

バッチオペレーションジョブがバージョン管理されたバケット内のオブジェクトに対してアクションを実行している場合、マニフェスト内でバージョン ID フィールドが空のオブジェクトがあると、次の例のようなエラーが発生します。

エラー: bucket_name,prefix/file_name,failed,400,InvalidRequest,Task failed due to missing VersionId

このエラーは、マニフェストのバージョン ID フィールドが null リテラル文字列ではなく、空の文字列であるために発生します。

バッチオペレーションは、その特定のオブジェクトでは失敗しますが、ジョブ全体では失敗しません。この問題は、マニフェスト形式がオペレーション中にバージョン ID を使用するように設定されている場合に発生します。バージョン管理されていないジョブでは、各オブジェクトの最新バージョンでのみ動作し、マニフェストのバージョン ID は無視されるため、この問題は発生しません。

この問題を解決するには、空のバージョン ID を null 文字列に変換します。詳細については、「Amazon S3 インベントリレポートの空のバージョン ID 文字列を NULL 文字列に変換します。」を参照してください。

ジョブのタグオプションが有効な状態でジョブの失敗を作成する

s3:PutJobTagging 権限がない場合、ジョブのタグオプションを有効にしてバッチオペレーションジョブを作成すると 403 access denied エラーが発生します。

ジョブのタグオプションを有効にしてバッチオペレーションジョブを作成するには、バッチオペレーションジョブを作成する AWS Identity and Access Management (IAM) ユーザーに、s3:PutJobTagging 権限に加えて s3:CreateJob 権限が必要です。

バッチオペレーションに必要なアクセス許可の詳細については、「バッチオペレーションに対するアクセス許可の付与」を参照してください。

マニフェストの読み取り拒否

バッチオペレーションジョブを作成しようとしたときに、バッチオペレーションがマニフェストファイルを読み取れない場合、次のエラーが発生する可能性があります。

AWS CLI

失敗の理由: マニフェストの読み取りは禁止されています: AccessDenied

Amazon S3 コンソール

警告: マニフェストオブジェクトの ETag を取得できません。別のオブジェクトを指定して続行してください。

この問題を解決するには、次の手順を実行します。

  • バッチオペレーションジョブの作成に使用した AWS アカウントの IAM ロールに s3:GetObject 権限があることを確認します。アカウントの IAM ロールには、バッチオペレーションがマニフェストファイルの読み取りを許可する s3:GetObject 権限が必要です。

    バッチオペレーションに必要なアクセス許可の詳細については、「バッチオペレーションに対するアクセス許可の付与」を参照してください。

  • マニフェストオブジェクトのメタデータに、S3 オブジェクトの所有権とのアクセスの不一致がないか確認します。S3 オブジェクトの所有権の詳細については、「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。

  • マニフェストファイルの暗号化に AWS Key Management Service (AWS KMS) キーが使用されているかどうかを確認してください。

    S3 バッチオペレーションでは、AWS KMS で暗号化された CSV 形式のインベントリレポートがサポートされています。ただし、バッチオペレーションでは、AWS KMS で暗号化された CSV 形式のマニフェストファイルはサポートされていません。詳細については、Amazon S3 インベントリの設定およびマニフェストの指定を参照してください。