Come faccio a risolvere i problemi relativi a Operazioni in batch Amazon S3?

9 minuti di lettura
0

Quando creo un processo di Operazioni in batch Amazon Simple Storage Service (Amazon S3) per oggetti presenti nel mio bucket, Amazon S3 restituisce un errore. Oppure il processo batch ha esito negativo.

Breve descrizione

Se durante un processo di Operazioni in batch Amazon S3 si riscontra un problema che non ne consente l'esecuzione corretta, il processo ha esito negativo. Un processo con esito negativo genera uno o più codici di errore con i relativi motivi. Per visualizzare i codici di errore e i relativi motivi in caso di esito negativo di un processo di Operazioni in batch Amazon S3, richiedi i dettagli del processo. Puoi anche rivedere i codici di errore e i relativi motivi nel report di completamento del processo.

Per evitare che i processi generino un gran numero di operazioni non riuscite, Amazon S3 impone una soglia di errore per ogni processo di Operazioni in batch. Amazon S3 monitora la percentuale di errori dopo l'esecuzione di almeno 1.000 attività. Se un processo supera la percentuale di errore del 50%, avrà esito negativo. Per risolvere questo errore, esamina le cause degli errori e correggili. Quindi, invia di nuovo il processo.

Risoluzione

Il formato del file manifesto non è corretto (.csv o JSON)

Operazioni in batch Amazon S3 supporta i file manifesto in formato.csv e JSON (report di inventario Amazon S3). Se il file manifesto non è corretto, devi creare un nuovo processo batch in Amazon S3 e specificare il formato corretto.

  • Per il report di inventario Amazon S3, usa il formato CSV e specifica il file manifest.json associato a esso.

  • Per i file.csv, includi il nome del bucket e la chiave oggetto in ogni riga del file manifesto. Facoltativamente, puoi includere la versione dell'oggetto. Se includi gli ID versione nel manifesto, devi comunque specificare gli ID per tutti gli oggetti. Altrimenti non includere nessun ID versione. Le chiavi oggetto devono essere codificate in formato URL.

    Nota: se gli oggetti nel manifesto si trovano in un bucket con versione, è necessario indicare gli ID versione degli oggetti. In caso contrario, il processo batch avrà esito negativo. Oppure Amazon S3 potrebbe applicare il processo batch alla versione errata dell'oggetto.

Per ulteriori informazioni consulta la sezione Specifica di un manifest.

Il file manifesto specifica più nomi bucket o contiene più righe di intestazione

Con Operazioni in batch S3, tutti gli oggetti elencati nel file manifesto devono trovarsi nello stesso bucket. In caso contrario verrà visualizzato il seguente messaggio di errore:

"Motivi dell'errore: Impossibile avere più di 1 bucket per processo. JOB_ID"

Per i processi di Operazioni in batch S3, assicurati che il file manifesto specifichi solo un nome bucket e non contenga alcuna riga di intestazione. In questo esempio, Amazon S3 restituisce un errore perché il file manifesto contiene più righe di intestazione.

bucket,key
my-batch-bucket,object001.txt
my-batch-bucket,object002.txt
my-batch-bucket,object003.txt
my-batch-bucket,object004.txt

Al ruolo IAM mancano le autorizzazioni per leggere il file manifesto

Il ruolo AWS Identity and Access Management (IAM) che crea il processo di Operazioni in batch S3 deve disporre delle autorizzazioni di lettura GetObject per il file manifesto. Controlla i metadati dell'oggetto per eventuali discrepanze d'accesso con la proprietà dell'oggetto di S3. Inoltre, cerca eventuali chiavi non supportate del Sistema AWS di gestione delle chiavi (AWS KMS) che crittografano il file manifesto.

Se il ruolo IAM non dispone delle autorizzazioni corrette, riceverai i seguenti messaggi di errore quando crei un processo di Operazioni in batch S3:

Esempio di messaggio di errore di AWS CLI

"Motivo dell'errore La lettura del manifesto è vietata: AccessDenied"

Nota: se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Risolvere gli errori AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Esempio di messaggio di errore della console Amazon S3

"Attenzione: Impossibile ottenere l'ETag dell'oggetto manifesto. Specificare un oggetto diverso per continuare"

Nota: Operazioni in batch S3 supporta i report di inventario in formato CSV con crittografia AWS KMS. Operazioni in batch S3 non supporta i file manifesto .csv con crittografia AWS KMS. Per ulteriori informazioni, consulta la sezione Configurazione dell'inventario utilizzando la console S3.

Il processo batch si trova in una regione diversa

I processi di copia di Operazioni in batch S3 devono trovarsi nella stessa regione AWS del bucket di destinazione in cui vanno copiati gli oggetti. Quando crei un processo batch, scegli la stessa regione del bucket di destinazione. Ad esempio, se il bucket di destinazione si trova nella regione us-west-2, seleziona us-west-2 come regione per il processo batch.

Manca il bucket di destinazione per il report di inventario S3

Deve essere presente un bucket di destinazione per il manifesto generato da Operazioni in batch S3. La policy del bucket di Amazon S3 deve consentire anche l'operazione S3:PutObject. Se il report viene inviato a un altro account AWS, verifica che il bucket di destinazione consenta al ruolo IAM di eseguire l'operazione s3:PutObject.

Manca la policy di attendibilità del ruolo IAM

Nota: assicurati di specificare un ruolo IAM e non un utente IAM.

La policy di attendibilità per un ruolo IAM stabilisce le condizioni che devono essere soddisfatte affinché altri principali lo assumano. Per consentire ai principali del servizio Operazioni in batch S3 di assumere il ruolo IAM, collega una policy di attendibilità al ruolo.

Questo esempio di policy di attendibilità concede l'accesso ad Amazon S3 e riduce i rischi associati all'aumento dei privilegi:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "batchoperations.s3.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Mancano le autorizzazioni IAM per creare un processo batch

Prima di creare ed eseguire i processi di Operazioni in batch S3, concedi al ruolo IAM le autorizzazioni richieste. Se al ruolo IAM mancano le autorizzazioni necessarie per eseguire il processo di Operazioni in batch S3, il processo batch avrà esito negativo.

Per creare un processo di Operazioni in batch S3, concedi al ruolo IAM le autorizzazioni s3:CreateJob. La stessa entità che crea il processo deve avere anche le autorizzazioni iam:PassRole. Ciò consente all'entità di trasmettere il ruolo IAM specificato per il processo batch. Per ulteriori informazioni, consulta la sezione Elementi delle policy IAM JSON: Resource.

Manca l'accesso al bucket di origine, al report di inventario di S3 o al bucket di destinazione

Assicurati che il ruolo IAM che usi per Operazioni in batch S3 disponga delle autorizzazioni necessarie per eseguire il processo batch.

Di seguito è riportato un esempio di policy IAM per l'operazione di copia:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:PutObjectTagging"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::{{DestinationBucket}}/*"
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:GetObjectTagging",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::{{SourceBucket}}",
        "arn:aws:s3:::{{SourceBucket}}/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::{{ManifestBucket}}/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::{{ReportBucket}}/*"
      ]
    }
  ]
}

Per ulteriori informazioni, consulta la sezione Concessione delle autorizzazioni per le operazioni in batch Amazon S3.

La SCP di Organizations è restrittiva

Se utilizzi AWS Organizations, verifica che non vi siano dichiarazioni di rifiuto che neghino l'accesso ad Amazon S3. Ad esempio, la policy di controllo dei servizi (SCP) nega esplicitamente tutte le operazioni di S3. In questo caso, potresti ricevere un messaggio di errore Accesso negato quando crei un processo batch.

Questa policy di esempio nega esplicitamente tutte le azioni S3:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Principal": "*",
      "Effect": "Deny",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}

Per applicare una policy restrittiva, aggiungi nell'elenco consentito il ruolo IAM utilizzato da Operazioni in batch S3 per eseguire l'operazione. Questo esempio aggiunge un'eccezione alla policy:

{
  "Version": "2012-10-17",
  "Statement": \[
    {
      "Principal": "\*",
      "Effect": "Deny",
      "Action": "s3:\*",
      "Resource": "\*",
      "Condition": {
        "StringNotLike": {
          "aws:userId": \[
            "AROAEXAMPLEID:\*",
            "AIDAEXAMPLEID",
            "111111111111"
          \]
        }
      }
    }
  \]
}

L'ID versione per un oggetto non è presente nel manifesto

Se un processo di Operazioni in batch rileva un oggetto nel manifesto con un campo ID versione vuoto, verrà visualizzato il seguente messaggio di errore:

"Errore: BUCKET_NAME,prefix/file_name,failed,400,InvalidRequest,Attività non riuscita per mancanza dell'ID versione"

Se il formato manifesto utilizza gli ID versione durante l'operazione, il campo ID versione non può essere una stringa vuota. Invece, il campo ID versione deve essere una stringa "nulla". I processi senza versione non presentano questo errore. Operano sulla versione più recente di ogni oggetto e non sugli ID versione riportati nel manifesto. Per correggere questo errore, converti gli ID versione vuoti in stringhe nulle.

Nota: Operazioni in batch ha esito negativo per un particolare oggetto, ma non per l'intero processo.

Quando è attiva la modalità di conservazione Amazon S3 Object Lock, non viene fornito alcun report del processo

Quando si configura la modalità di conservazione Object Lock per un bucket di destinazione in modalità di governance o di conformità, si potrebbe ricevere il seguente messaggio di errore:

"Errore: Motivi dell'errore. Impossibile scrivere il report del processo nel bucket. Controlla le autorizzazioni".

Amazon S3 non supporta Object Lock per i bucket di destinazione con configurazioni eseguite in modalità di conservazione. Quando si configura la modalità di conservazione, il bucket è protetto da WORM (write-once-read-many). Per correggere questo errore, scegli un bucket di destinazione per i report di completamento dei processi in cui non sia configurata la modalità di conservazione Object Lock.

Nota: è il report di completamento che ha esito negativo, non il processo. Il processo viene completato correttamente e tutti gli oggetti vengono elaborati.

Le versioni ETag non corrispondono

Quando si specifica il manifesto nel processo di Operazioni in batch, è possibile specificare la chiave dell'oggetto manifesto, l'ETag e l'ID versione facoltativo. Quando si specifica il file manifesto, occorre verificare che il valore dell'ETag corrisponda all'ETag dell'ultima versione dell'oggetto manifesto nel bucket S3. Nella scheda Operazioni in batch della console Amazon S3, controlla l'ETag dell'oggetto manifesto nelle proprietà del file manifesto. In AWS CLI, controlla il valore dell'ETag trasmesso dalla specifica del manifesto.

Se l'ETag popolato che si trova nella console o in AWS CLI non corrisponde all'ETag nel bucket S3, verrà generato il seguente messaggio di errore:

"Errore durante la lettura del manifesto. Causato da: mancata corrispondenza tra ETag. ETag atteso: 69f52a4e9f797e987155d9c8f5880897"

Prendi nota dell'ETag atteso in questo errore e assicurati che entrambe le versioni dell’ETag corrispondano. Per ulteriori informazioni consulta la sezione Specifica di un manifest.

AWS UFFICIALE
AWS UFFICIALEAggiornata 7 mesi fa