Solución de problemas de replicación
En esta sección se incluyen consejos de solución de problemas para Replicación de Amazon S3 e información sobre los errores de la replicación por lotes de S3.
Consejos para solucionar problemas de replicación de S3
Si las réplicas de objetos no aparecen en el bucket de destino después de configurar la replicación, use estos consejos de solución de problemas para identificar y solucionar los problemas.
-
La mayoría de los objetos se replican en 15 minutos. El tiempo que tarda Amazon S3 en replicar un objeto depende de diferentes factores, como el par de regiones de origen y destino y el tamaño del objeto. La replicación puede tardar varias horas para los objetos grandes. Para obtener visibilidad de los tiempos de replicación, puede utilizar el control del tiempo de replicación de S3 (S3 RTC).
Si el objeto que se replica es grande, espere un tiempo antes de comprobar si aparece en el destino. También puede comprobar el estado de replicación del objeto de origen. Si el estado de replicación de objetos es
PENDING
, Amazon S3 no ha completado la replicación. Si el estado de replicación del objeto esFAILED
, compruebe la configuración de replicación establecida en el bucket de origen.Además, para recibir información sobre los errores durante la replicación, puede configurar la replicación de las notificaciones de eventos de Amazon S3 para recibir eventos de error. Para obtener más información, consulte Recepción de eventos de error de replicación con notificaciones de eventos de Amazon S3.
-
Para comprobar el estado de replicación de un objeto, puede llamar a la operación
HeadObject
de la API. La operaciónHeadObject
de la API devuelve el estado de replicaciónPENDING
,COMPLETED
oFAILED
de un objeto. En respuesta a una llamada a la APIHeadObject
, el estado de replicación se devuelve en el encabezadox-amz-replication-status
.nota
Para ejecutar
HeadObject
, debe tener acceso de lectura al objeto que solicita. Una solicitudHEAD
tiene las mismas opciones que una solicitudGET
, sin realizar ninguna operaciónGET
. Por ejemplo, para ejecutar una solicitudHeadObject
mediante la AWS Command Line Interface (AWS CLI), puede ejecutar el siguiente comando. Reemplace los
con su propia información.user input placeholders
aws s3api head-object --bucket
amzn-s3-demo-source-bucket
--keyindex.html
-
Si
HeadObject
devuelve objetos con un estado de replicaciónFAILED
, puede utilizar Replicación por lotes de S3 para replicar esos objetos con errores. Para obtener más información, consulte Replicación de objetos existentes con Replicación por lotes. Como alternativa, puede volver a cargar los objetos con errores en el bucket de origen, lo que iniciará la replicación de los objetos nuevos. -
En la configuración de replicación en el bucket de origen, verifique lo siguiente:
-
El Nombre de recurso de Amazon (ARN) del bucket de destino es correcto.
-
El prefijo de nombre de clave sea correcto. Por ejemplo, si establece la configuración para replicar objetos con el prefijo
Tax
, entonces, solo se replicarán los objetos con nombres de clave comoTax/document1
oTax/document2
. No se replicará un objeto con el nombre de clavedocument3
. -
El estado de la regla de replicación es
Enabled
.
-
-
Compruebe que el control de versiones no se haya suspendido en ningún bucket de la configuración de la replicación. Ambos buckets de origen y destino deben tener habilitado el control de versiones.
-
Si una regla de replicación está configurada como Cambiar la propiedad de los objetos al propietario del bucket de destino, el rol (de IAM) AWS Identity and Access Management que se usa para la replicación debe tener el permiso
s3:ObjectOwnerOverrideToBucketOwner
. Este permiso se concede al recurso (en este caso, al bucket de destino). Por ejemplo, la siguiente instrucciónResource
muestra cómo conceder este permiso en el bucket de destino:{ "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::
amzn-s3-demo-destination-bucket
/*" } -
Si el bucket de destino pertenece a otra cuenta, el propietario del bucket de destino también debe conceder el permiso
s3:ObjectOwnerOverrideToBucketOwner
al propietario del bucket de origen mediante la política de bucket de destino. Para utilizar el siguiente ejemplo de política de bucket, sustituya
con su información:user input placeholders
{ "Version": "2012-10-17", "Id": "Policy1644945280205", "Statement": [ { "Sid": "Stmt1644945277847", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789101
:role/s3-replication-role
" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] }nota
Si la configuración de la propiedad de los objetos incluye Aplicada al propietario del bucket, no será necesario que actualice la configuración a Cambiar la propiedad de los objetos al propietario del bucket de destino en la regla de replicación. El cambio de propiedad de los objetos se realiza de forma predeterminada. Para obtener más información acerca de cómo cambiar la propiedad de la réplica, consulte Cambiar el propietario de la réplica.
-
Si va a definir la configuración de replicación en un escenario entre cuentas en el que los buckets de origen y destino pertenecen a diferentes Cuentas de AWS, los buckets de destino no se pueden configurar como un bucket de Pago por solicitante. Para obtener más información, consulte Utilización de buckets de pago por solicitante para transferencias de almacenamiento y uso.
-
Si los objetos de origen de un bucket están cifrados con cifrado de servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), la regla de replicación debe configurarse para incluir objetos cifrados con AWS KMS. Asegúrese de seleccionar Replicar objetos cifrados con AWS KMS en la configuración Cifrado de la consola de Amazon S3. A continuación, seleccione una clave de AWS KMS para cifrar los objetos de destino.
nota
Si el bucket de destino está en una cuenta diferente, especifique una clave administrada por el cliente de AWS KMS que pertenezca a la cuenta de destino. No utilice la clave administrada predeterminada de Amazon S3 (
aws/s3
). Al usar la clave predeterminada se cifran los objetos con la clave administrada de Amazon S3 que pertenece a la cuenta de origen, lo que impide que el objeto se comparta con otra cuenta. Como resultado, la cuenta de destino no podrá acceder a los objetos del bucket de destino.Para utilizar una clave de AWS KMS que pertenezca a la cuenta de destino para cifrar los objetos de destino, la cuenta de destino debe conceder los permisos
kms:GenerateDataKey
ykms:Encrypt
al rol de replicación de la política de claves de KMS. Para utilizar el siguiente ejemplo de instrucción en su política de claves de KMS, sustituya
con su información:user input placeholders
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789101
:role/s3-replication-role
" }, "Action": ["kms:GenerateDataKey", "kms:Encrypt"], "Resource": "*" }Si usa un asterisco (
*
) para la instrucciónResource
de la política de claves de AWS KMS, la política otorga permiso para usar la clave de KMS únicamente para el rol de replicación. La política no permite que el rol de replicación derive sus permisos.De forma predeterminada, la política de claves de KMS otorga al usuario raíz todos los permisos sobre la clave. Estos permisos se pueden delegar a otros usuarios de la misma cuenta. A menos que haya instrucciones
Deny
en la política de claves de KMS de origen, basta con utilizar una política de IAM para conceder permisos de rol de replicación a la clave de KMS de origen.nota
Las políticas de claves de KMS que restringen el acceso a rangos de CIDR, puntos de conexión de nube privada virtual (VPC) o puntos de acceso de S3 específicos pueden provocar un error en la replicación.
Si las claves KMS de origen o destino otorgan permisos en función del contexto de cifrado, confirme que las claves de bucket de Amazon S3 estén activadas para los buckets. Si los buckets tienen activadas las claves de bucket de S3, el contexto de cifrado debe ser el recurso en el nivel de bucket, tal como se muestra a continuación:
"kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::
amzn-s3-demo-source-bucket
" ] "kms:EncryptionContext:arn:aws:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
" ]Además de los permisos otorgados por la política de claves de KMS, la cuenta de origen debe añadir los siguientes permisos mínimos a la política de IAM del rol de replicación:
{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "
Source-KMS-Key-ARN
" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "Destination-KMS-Key-ARN
" ] }Para obtener más información sobre la replicación de objetos cifrados con AWS KMS, consulte Replicar objetos cifrados.
-
Si el bucket de destino pertenece a otra Cuenta de AWS, compruebe que el propietario del bucket tenga una política de bucket en el bucket de destino que permita al propietario del bucket de origen replicar objetos. Para ver un ejemplo, consulte Configuración de replicación de buckets en cuentas diferentes.
-
Si los objetos siguen sin replicarse después de haber validado los permisos, compruebe si hay instrucciones
Deny
explícitas en las siguientes ubicaciones:-
Las instrucciones
Deny
en las políticas de bucket de origen o destino. La replicación devuelve un error si la política de bucket deniega el acceso a la función de replicación para cualquiera de las siguientes acciones:Bucket de origen:
"s3:GetReplicationConfiguration", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging"
Buckets de destino:
"s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags"
-
Las instrucciones
Deny
o límites de permisos adjuntos al rol de IAM pueden provocar un error en la replicación. -
Las instrucciones
Deny
en las políticas de control de servicios (SCP) de AWS Organizations asociadas a las cuentas de origen o destino pueden provocar un error en la replicación.
-
-
Si la réplica de un objeto no aparece en el bucket de destino, los siguientes problemas podría haber impedido la replicación:
-
Amazon S3 no replica los objetos de un bucket de origen si son una réplica creada por otra configuración de replicación. Por ejemplo, si establece la configuración de replicación del bucket A en el bucket B y, luego, en el bucket C, Amazon S3 no replica las réplicas de objetos del bucket B en el bucket C.
-
Un propietario del bucket de origen puede conceder permisos a otras Cuentas de AWS para cargar objetos. De forma predeterminada, el propietario del bucket de origen no tiene permisos sobre los objetos creados por otras cuentas. La configuración de replicación solo replica los objetos para los que el propietario del bucket de origen tiene permisos de acceso. Para evitar este problema, el propietario del bucket de origen puede conceder permisos a otras Cuentas de AWS para crear objetos con la condición de que tengan permisos de acceso explícitos para esos objetos. Para ver una política de ejemplo, consulte Conceder permisos entre cuentas para cargar objetos al mismo tiempo que se garantiza que el propietario del bucket tenga el control total.
-
-
Supongamos que en la configuración de replicación añade una regla para replicar un subconjunto de objetos con una etiqueta específica. En este caso, debe asignar la clave de etiqueta y el valor específicos en el momento de crear el objeto para que Amazon S3 replique el objeto. Si primero crea un objeto y luego agrega la etiqueta al objeto existente, Amazon S3 no replica el objeto.
-
Use Notificaciones de eventos de Amazon S3 para recibir notificaciones de instancias cuando los objetos no se repliquen en la Región de AWS de destino. Notificaciones de eventos de Amazon S3 está disponible a través de Amazon Simple Queue Service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS) o AWS Lambda. Para obtener más información, consulte Recepción de eventos de error de replicación con notificaciones de eventos de Amazon S3.
También puede usar las notificaciones de eventos de Amazon S3 para ver los motivos de error de replicación. Para revisar la lista de los motivos de error, consulte Motivos de errores de replicación de Amazon S3.
Errores de replicación por lotes
Para solucionar problemas con objetos que no se replican en el bucket de destino, compruebe los diferentes tipos de permisos de los buckets, el rol de replicación y el rol de IAM que se utilizan para crear el trabajo de Replicación por lotes. Además, compruebe la configuración de Bloqueo de acceso público y la configuración de Propiedad de objetos de S3 de sus buckets.
Para obtener consejos adicionales de solución de problemas para trabajar con Operaciones por lotes, consulte Solución de problemas de Operaciones por lotes.
Al utilizar la replicación por lotes, es posible que se produzca uno de los siguientes errores:
-
La generación del manifiesto no ha encontrado claves que coincidan con los criterios del filtro.
Este error se produce por una de las razones siguientes:
-
Cuando los objetos del bucket de origen se almacenan en la clase de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
Para utilizar Replicación por lotes en estos objetos, primero debe restaurar la clase de almacenamiento S3 Standard mediante una operación Restaurar (
S3InitiateRestoreObjectOperation
) en un trabajo de Operaciones por lote. Para obtener más información, consulte Restauración de un objeto archivado y Restaurar objetos (operaciones por lotes). Una vez restaurados los objetos, puede replicarlos con un trabajo de replicación por lotes. -
Si los criterios de filtro proporcionados no coinciden con ningún objeto válido del bucket de origen.
Compruebe y corrija los criterios del filtro. Por ejemplo, en la regla de Replicación por lotes, el criterio de filtrado busca todos los objetos en el bucket de origen que tienen el prefijo
Tax/
. Si el nombre del prefijo se ha introducido de forma incorrecta, con una barra diagonal al principio y al final de/Tax/
en lugar de solo al final, no se encontrará ningún objeto de S3. Para resolver el error, corrija el prefijo, en este caso, de/Tax/
aTax/
en la regla de replicación.
-
-
Error en el estado de operación por lotes por el motivo siguiente: no se ha podido escribir el informe del trabajo en el bucket de informes.
Este error se produce si el rol de IAM que se utiliza para el trabajo de operaciones por lotes no puede colocar el informe de finalización en la ubicación que se especificó al crear el trabajo. Para resolver este error, compruebe que el rol de IAM tenga permisos
s3:PutObject
para el bucket en el que desea guardar el informe de finalización de las Operaciones por lotes. Le recomendamos entregar el informe en un bucket diferente al bucket de origen.Para obtener consejos adicionales sobre cómo resolver este error, consulte Informe de trabajo que no se entrega cuando hay un problema de permisos o está activado un modo de retención de Bloqueo de objetos de S3.
-
La operación por lotes se ha completado con errores y el total de errores no es igual a 0.
Este error se produce si no hay problemas porque no hay suficientes permisos de objetos con el trabajo de replicación por lotes que se está ejecutando. Si utiliza una regla de replicación para su trabajo de Replicación por lotes, asegúrese de que el rol de IAM utilizado para la replicación tenga los permisos adecuados para acceder a los objetos del bucket de origen o de destino. También puede consultar el Informe de finalización de replicación por lotes para revisar el Motivo de error de replicación de Amazon S3.
-
El trabajo por lotes se ha ejecutado correctamente, pero el número de objetos esperado en el bucket de destino no es el mismo.
Este error se produce cuando hay una discrepancia entre los objetos que figuran en el manifiesto que se proporciona en el trabajo de replicación por lotes y los filtros que ha seleccionado al crear el trabajo. También puede recibir este mensaje cuando los objetos de su bucket de origen no coincidan con ninguna regla de replicación y no estén incluidos en el manifiesto generado.
Los errores en las operaciones por lotes se producen después de agregar una nueva regla de replicación a una configuración de replicación existente
Las operaciones por lotes intentan realizar la replicación de objetos existentes para cada regla de la configuración de replicación del bucket de origen. Si hay problemas con alguna de las reglas de replicación existentes, pueden producirse errores.
En el informe de finalización del trabajo de operaciones por lotes se explican los motivos del error del trabajo. Para obtener una lista de los errores comunes, consulte Motivos de errores de replicación de Amazon S3.