Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Por qué mis objetos de Amazon S3 no se replican cuando configuro la replicación entre mis buckets?
He configurado la replicación entre regiones (CRR) o la replicación en la misma región (SRR) entre mis buckets de Amazon Simple Storage Service (Amazon S3). Sin embargo, los objetos no se replican en el bucket de destino.
Resolución
Para solucionar los problemas con los objetos de S3 que no se replican en el bucket de destino, comprueba los tipos de permisos del bucket. Comprueba también la configuración de acceso público y la de propiedad del bucket.
Consejo:
- Carga un objeto en el bucket de origen para probar la replicación después de cada cambio en la configuración. Se recomienda cambiar una configuración a la vez para identificar cualquier problema en la configuración de la replicación.
- Activa la notificación del tipo de evento s3:Replication:OperationFailedReplication para detectar errores de replicación. El código de error puede ayudarte a determinar la causa del error.
Tras resolver los problemas que causaban errores en la replicación, es posible que haya objetos en el bucket de origen que no se hayan replicado. De forma predeterminada, la replicación de S3 no replica los objetos existentes ni los objetos con un estado de replicación FAILED oREPLICA. Para comprobar los estados de replicación de los objetos, consulta ¿Cómo puedo ver los objetos que no se han podido replicar de un bucket de Amazon S3 a otro? Usa la ](https://repost.aws/es/knowledge-center/s3-list-objects-failed-replication)replicación por lotes de S3[ para replicar los objetos.
Concesión de permisos mínimos de Amazon S3
Confirma que el rol de AWS Identity Access Management (IAM) que usaste en la regla de replicación tenga los permisos correctos. Si los buckets de origen y de destino se encuentran en cuentas de AWS diferentes, confirma que la política de bucket de la cuenta de destino también otorgue los permisos suficientes para el rol de replicación.
El siguiente ejemplo de política de IAM tiene los permisos mínimos necesarios para la replicación:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::SourceBucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::SourceBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
Nota: Sustituye SourceBucket y DestinationBucket por los nombres de tus buckets de S3.
Según las opciones de la regla de replicación, es posible que debas conceder permisos adicionales.
El rol de IAM debe tener una política de confianza que permita a Amazon S3 asumir el rol de replicar objetos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Concesión de permisos adicionales de Amazon S3
Si estableces la regla de replicación en Cambiar la propiedad del objeto al propietario del bucket de destino, el rol de IAM debe tener los permisos s3:ObjectOwnerOverrideToBucketOwner. Coloca el permiso en el recurso del objeto de S3:
{ "Effect": "Allow", "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
La cuenta de destino también debe conceder el permiso s3:ObjectOwnerOverrideToBucketOwner en la política de bucket:
{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Nota: Si la propiedad del objeto del bucket de destino es Aplicada al propietario del bucket, no es necesario Cambiar la propiedad del objeto al propietario del bucket de destino en la regla de replicación. Este cambio se produce de forma predeterminada.
Si has activado la replicación de marcadores de eliminación en la regla de replicación, el rol de IAM debe tener los permisos s3:ReplicateDelete:
{ "Effect": "Allow", "Action": [ "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Si el bucket de destino está en otra cuenta, el propietario del bucket de destino también debe conceder el permiso en la política de bucket:
{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "Stmt1644945277847", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
Nota: Sustituye arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role por el ARN de tu rol de replicación. Sustituye DestinationBucket por el nombre de tu bucket de S3.
Concesión de permisos de AWS KMS
Si has cifrado los objetos de origen del bucket con una clave de AWS Key Management Service (AWS KMS), la regla de replicación debe incluir los objetos cifrados de AWS KMS.
Sigue estos pasos:
- Abre la consola de Amazon S3.
- Elige el bucket de S3 que contiene los objetos de origen.
- En la pestaña Administración, selecciona una regla de replicación.
- Selecciona Editar.
- En Cifrado, selecciona Replicar objetos cifrados con AWS KMS.
- En Clave de AWS KMS para cifrar objetos de destino, selecciona una clave de AWS KMS. La opción predeterminada es utilizar la clave de AWS KMS (aws/S3).
Para obtener más información, consulte Ejemplo de políticas: Uso de SSE-S3 y SSE-KMS con replicación.
Importante: Si el bucket de destino está en una cuenta diferente, especifica una clave de AWS KMS administrada por el cliente que pertenezca a la cuenta de destino. La clave aws/S3 predeterminada cifra los objetos con la clave administrada de AWS que posee la cuenta de origen. Como no puedes compartir la clave administrada de AWS con otra cuenta, la cuenta de destino no puede acceder a los objetos del bucket de destino.
Concesión de permisos de AWS KMS adicionales para escenarios multicuenta
Para utilizar la clave de AWS KMS de la cuenta de destino para cifrar los objetos de destino, la cuenta de destino debe conceder el rol de replicación en la política de claves:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*" }
Nota: Si usas un asterisco (*) en Recurso en la política de claves de AWS KMS, la política concede permiso solo al rol de replicación. La política no permite que el rol de replicación amplíe sus permisos.
Además, tienes que añadir los siguientes permisos mínimos a la política de IAM del rol de replicación desde la cuenta de origen:
[ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] } ]
De forma predeterminada, la política de claves de AWS KMS concede al usuario raíz todos los permisos sobre la clave. Puedes delegar estos permisos a otros usuarios de la misma cuenta. También puedes usar una política de IAM para conceder los permisos del rol de replicación a la clave de KMS de origen. Esto es suficiente a menos que haya declaraciones de denegación en la política de claves de KMS de origen.
Comprobación de si hay instrucciones de denegación explícita y de autorización condicional
Si los objetos siguen sin replicarse después de validar los permisos, comprueba si hay instrucciones de denegación explícita que puedan provocar un error en la replicación.
Elimina las instrucciones de denegación de la política de buckets de destino o de la política de claves de AWS KMS que restringen el acceso a lo siguiente:
- Rangos CIDR específicos
- Puntos de enlace de nube virtual privada (VPC)
- Puntos de acceso de S3
Elimina las instrucciones de denegación o los límites de permisos asociados al rol de IAM. Además, debes eliminar las instrucciones de denegación de las políticas de control de servicios (SCP) de AWS Organizations adjuntadas a las cuentas de origen o de destino.
Consejo: Antes de eliminar cualquier instrucción de denegación explícita, confirma el motivo de la denegación. Además, determina si la instrucción afecta a la seguridad de los datos.
Comprobación de si hay claves de bucket de Amazon S3
Si las claves de KMS de origen o destino conceden permisos en función del contexto de cifrado, comprueba si se utilizan las claves de bucket de S3. Si los buckets usan claves de bucket, el contexto de cifrado debe ser el del recurso a nivel de bucket:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::SOURCE_BUCKET_NAME" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DESTINATION_BUCKET_NAME" ]
Nota: Sustituye SOURCE_BUCKET_NAME y DESTINATION_BUCKET_NAME por los nombres de los buckets de origen y de destino.
Si las claves de bucket no se utilizan para los buckets de origen o de destino, el contexto de cifrado debe ser el recurso a nivel de objeto:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::SOURCE_BUCKET_NAME/*" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DESTINATION_BUCKET_NAME/*" ]
Nota: Sustituye SOURCE_BUCKET_NAME y DESTINATION_BUCKET_NAME por los nombres de los buckets de origen y de destino.
Comprobación de si hay ACL de objeto y bloqueo de acceso público
Comprueba si los buckets de origen y destino usan listas de control de acceso (ACL). Si el objeto tiene una ACL que permite el acceso público, pero el bucket de destino usa el bloqueo de acceso público, se produce un error en la replicación.
Confirmación de la propiedad del objeto de origen
Si otra cuenta de AWS ha cargado los objetos en el bucket de origen, es posible que la cuenta de origen no tenga permiso para esos objetos. Compruebe el bucket de origen para determinar si las ACL están desactivadas.
Si las ACL están desactivadas en el bucket de origen, la cuenta de origen es la propietaria de todos los objetos del bucket. Si las ACL no están desactivadas en el bucket de origen, comprueba si la propiedad del objeto está configurada como Object owner preferred (Propietario del objeto preferido) o Bucket owner preferred (Propietario del bucket preferido). Si la propiedad se establece como Bucket owner preferred (Propietario del bucket preferido), los objetos del bucket de origen deben tener el permiso de la ACL bucket-owner-full-control.
La cuenta de origen puede desactivar las ACL para convertirse en propietaria de todos los objetos de su bucket. La mayoría de los casos de uso no requieren el uso de ACL para administrar el acceso. Se recomienda usar políticas de IAM y de bucket para administrar el acceso a los recursos de S3. Para desactivar las ACL del bucket de S3, consulta Control de la propiedad de los objetos y desactivación de las ACL del bucket. Tus políticas de IAM y bucket deben conceder permisos suficientes para que no afecte al acceso a Amazon S3 al desactivar las ACL.
Especificación del filtro de reglas de replicación correcto
Asegúrate de haber especificado correctamente el filtro de reglas de replicación.
Si especificas un filtro de reglas con una combinación de un prefijo de clave y etiquetas de objeto, S3 realiza una operación AND lógica para combinar estos filtros. La regla se aplica a un subconjunto de objetos con un prefijo de clave y etiquetas específicas.
Información relacionada
Vídeos relacionados


Contenido relevante
- preguntada hace 2 meseslg...
- preguntada hace 2 meseslg...
- preguntada hace 2 meseslg...
- Respuesta aceptadapreguntada hace 19 díaslg...
- Respuesta aceptadapreguntada hace un meslg...
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años