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

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

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

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

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

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

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

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

S3 バッチレプリケーションがエラーで失敗しました。マニフェストの生成で、フィルター条件に一致するキーが見つかりませんでした。

エラー: マニフェストの生成で、フィルター条件に一致するキーが見つかりませんでした。

このエラーは、以下のいずれかの原因で発生することがあります。

  • レプリケート元バケット内のオブジェクトが S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive のストレージクラスに保存されている場合。

    これらのオブジェクトでバッチレプリケーションを使用するには、まず、バッチオペレーションジョブで S3 オブジェクトの復元開始オペレーションを使用して、オブジェクトを S3 標準ストレージクラスに復元します。詳細については、「アーカイブされたオブジェクトの復元」および「オブジェクトの復元 (バッチオペレーション)」を参照してください。オブジェクトの復元後、バッチレプリケーションジョブを使用してオブジェクトをレプリケートできます。

  • 指定したフィルター条件がソースバケット内の有効なオブジェクトと一致しない場合。

    フィルター条件を確認して修正します。例えば、バッチレプリケーションルールにおいて、フィルター条件によって amzn-s3-demo-bucket 内でプレフィックス Tax/ を持つすべてのオブジェクトを検索するとします。プレフィックス名が誤って入力され、スラッシュが末尾だけでなく先頭と末尾の両方にある場合 (/Tax/)、S3 オブジェクトは見つかりません。このエラーを解決するには、レプリケーションルールのプレフィックスを /Tax/ から Tax/ に修正します。

バッチオペレーションの失敗は、既存のレプリケーション設定に新しいレプリケーションルールを追加した後に発生します

バッチオペレーションは、レプリケート元バケットのレプリケーション設定のすべてのルールに対して、既存オブジェクトのレプリケーションを実行しようとします。既存のレプリケーションルールのいずれかに問題があると、失敗が発生する可能性があります。

バッチオペレーションジョブの完了レポートには、ジョブの失敗理由が説明されています。一般的なエラーのリストについては、「Amazon S3 レプリケーションの失敗の理由」を参照してください。

「400 InvalidRequest: VersionId がないためにタスクが失敗しました」によりオブジェクトが失敗したバッチオペレーション

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

エラー: BUCKET_NAME,prefix/file_name,failed,400,InvalidRequest,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 権限が必要です。

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

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

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

AWS CLI

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

Amazon S3 コンソール

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

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

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

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

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

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

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