He intentado acceder a un bucket de Amazon Simple Storage Service (Amazon S3) en otra región de AWS y he recibido el error «IllegalLocationConstraintException».
Breve descripción
No puedes acceder a un bucket de Amazon S3 desde una región diferente de la región del bucket. Para acceder al bucket de S3, debes actualizar la API o el AWS SDK para que estén en la misma región que el bucket. Para obtener más información sobre el error IllegalLocationConstraintException, consulta la lista de códigos de error.
Resolución
Sigue estos pasos de solución de problemas para obtener la región del bucket y actualizar los puntos de enlace de Amazon S3 a la región correcta.
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Confirmación de la región del bucket de Amazon S3
Para confirmar la región del bucket de S3, puedes usar la consola de Amazon S3 o la de AWS CLI.
Consola de Amazon S3
Sigue estos pasos:
- Abre la consola de Amazon S3 y, a continuación, navega hasta tu bucket de S3.
- Selecciona la pestaña Propiedades.
- En la descripción general del bucket, anota la región de AWS correspondiente a tu bucket.
AWS CLI
Ejecuta el siguiente comando get-bucket-location:
aws s3api get-bucket-location --bucket BUCKET_NAME
Nota: Sustituye BUCKET_NAME por el nombre del bucket de S3.
Resultado de ejemplo:
{
"LocationConstraint": "us-west-2"
}
Nota: Si el parámetro de solicitud LocationConstraint es nulo o está vacío, el bucket se encuentra en la región us-east-1.
Actualización de la configuración regional de la API o el AWS SDK
Sigue estos pasos para actualizar la configuración de la API o del AWS SDK en la región correcta.
AWS CLI
Ejecute el siguiente comando ls y agrega el parámetro --region:
aws s3 ls s3://BUCKET_NAME --region YOUR_REGION
Nota: Sustituye BUCKET_NAME por el nombre de tu bucket de S3 y YOUR_REGION por tu región.
AWS SDK
Si usas el AWS SDK, actualiza la configuración para especificar la región correcta.
Ejemplo de configuración de AWS SDK para Python (Boto3):
import boto3
s3 = boto3.client('s3', region_name='YOUR-REGION')
response = s3.list_objects_v2(Bucket='BUCKET_NAME')
print(response)
Nota: Sustituye YOUR_REGION por tu región y BUCKET_NAME por el bucket name.IllegalLocationConstraintException.