Solucionar problemas de distribuciones - Amazon CloudFront

Solucionar problemas de distribuciones

Utilice la información de este tema para diagnosticar y solucionar los errores de certificados, los problemas de acceso denegado u otros problemas comunes que puedan surgir al configurar un sitio web o una aplicación con distribuciones de Amazon CloudFront.

CloudFront devuelve un error Access Denied

Si utiliza un bucket de Amazon S3 como origen de su distribución de CloudFront, puede que aparezca un mensaje de error Access Denied (403) en los ejemplos siguientes.

Ha especificado un objeto que faltaba en el origen de Amazon S3

Compruebe que exista el objeto solicitado en su bucket. Los nombres de objetos distinguen entre mayúsculas y minúsculas. Si se introduce un nombre de objeto no válido, es posible que devuelva un código de error de acceso denegado.

Por ejemplo, si sigue el tutorial de CloudFront para crear una distribución básica, debe crear un bucket de Amazon S3 como origen y cargar un archivo index.html de ejemplo.

En su navegador web, si introduce https://d111111abcdef8.cloudfront.net/INDEX.HTML en lugar de https://d111111abcdef8.cloudfront.net/index.html, es posible que vea un mensaje similar porque el archivo index.html de la ruta URL distingue entre mayúsculas y minúsculas.

<Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>22Q367AHT7Y1ABCD</RequestId> <HostId> ABCDE/Vg+7PSNa/d/IfFQ8Fb92TGQ0KH0ZwG5iEKbc6+e06DdMS1ZW+ryB9GFRIVtS66rSSy6So= </HostId> </Error>

A su origen de Amazon S3 le faltan permisos de IAM

Compruebe que ha seleccionado el bucket de Amazon S3 correcto como nombre y dominio de origen. El origen (Amazon S3) debe contar con los permisos correctos.

Si no especifica los permisos correctos, es posible que sus espectadores vean el siguiente mensaje de acceso denegado.

<Code>AccessDenied</Code> <Message>User: arn:aws:sts::856369053181:assumed-role/OriginAccessControlRole/EdgeCredentialsProxy+EdgeHostAuthenticationClient is not authorized to perform: kms:Decrypt on the resource associated with this ciphertext because the resource does not exist in this Region, no resource-based policies allow access, or a resource-based policy explicitly denies access</Message> <RequestId>22Q367AHT7Y1ABCD/RequestId> <HostId> ABCDE/Vg+7PSNa/d/IfFQ8Fb92TGQ0KH0ZwG5iEKbc6+e06DdMS1ZW+ryB9GFRIVtS66rSSy6So= </HostId> </Error>
nota

En este mensaje de error, el ID de cuenta 856369053181 es una cuenta administrada de AWS.

Cuando distribuye contenido desde Amazon S3 y también utiliza el cifrado del servicio (SSE-KMS) de AWS Key Management Service (AWS KMS), hay permisos de IAM adicionales que debe especificar para la clave de KMS y el bucket de Amazon S3. Su distribución de CloudFront necesita estos permisos para usar la clave de KMS, que se usa para cifrar el bucket de Amazon S3 de origen.

Las configuraciones de la política del bucket de Amazon S3 permiten a la distribución de CloudFront recuperar los objetos cifrados para la entrega de contenido.

Verificación de los permisos del bucket de Amazon S3 y de la clave de KMS
  1. Compruebe que la clave de KMS que utiliza es la misma clave que utiliza su bucket de Amazon S3 para el cifrado predeterminado. Para obtener más información, consulte Uso del cifrado del servidor con AWS KMS (SSE-KMS) en la Guía del usuario de Amazon Simple Storage Service.

  2. Compruebe que los objetos del bucket estén cifrados con la misma clave de KMS. Puede seleccionar cualquier objeto del bucket de Amazon S3 y comprobar la configuración de cifrado del servidor para verificar el ARN de la clave de KMS.

  3. Edite la política del bucket de Amazon S3 para conceder a CloudFront permiso para llamar a la operación de la API GetObject desde el bucket de Amazon S3. Para ver un ejemplo de política del bucket de Amazon S3 que utiliza el control de acceso de origen, consulte Concesión del permiso de control de acceso de origen para acceder al bucket de S3.

  4. Edite la política de claves de KMS para conceder a CloudFront permiso para realizar las acciones Encrypt, Decrypt y GenerateDataKey*. Para ajustarse al permiso de privilegios mínimos, especifique un elemento Condition para que solo la distribución de CloudFront especificada pueda realizar las acciones enumeradas. Puede personalizar la política para su política de AWS KMS actual. Para ver una política de claves de ejemplo de KMS, consulte SSE-KMS.

Si utiliza la identidad de acceso de origen (OAI) en lugar de OAC, los permisos para el bucket de Amazon S3 son ligeramente diferentes, porque concede permiso a una identidad en lugar de al Servicio de AWS. Para obtener más información, consulte Concesión de un permiso de identidad de acceso de origen para leer archivos en el bucket de Amazon S3.

Si sigue sin poder ver los archivos de su distribución, consulte No puedo ver los archivos de mi distribución.

Está utilizando credenciales no válidas o no tiene permisos suficientes

Puede aparecer un mensaje de error Access Denied si utiliza credenciales de AWS SCT incorrectas o caducadas (clave de acceso y clave secreta) o si a su rol o usuario de IAM le falta el permiso necesario para realizar una acción en un recurso de CloudFront. Para obtener más información sobre los mensajes de error de acceso denegado, consulte Solución de problemas de mensajes de error de acceso denegado en la Guía del usuario de IAM.

Para obtener información acerca de cómo funciona IAM con CloudFront, consulte Identity and Access Management para Amazon CloudFront.

CloudFront devuelve un error InvalidViewerCertificate al intentar agregar un nombre de dominio alternativo

Si CloudFront devuelve un error InvalidViewerCertificate al intentar agregar un nombre de dominio alternativo (CNAME) a la distribución, revise la siguiente información para ayudarle a solucionar el problema. Este error puede indicar que es necesario resolver uno de los problemas siguientes para poder añadir el nombre de dominio alternativo.

Los siguientes errores se enumeran en el orden en que CloudFront comprueba la autorización para agregar un nombre de dominio alternativo. Esto puede ayudarle a solucionar problemas porque puede saber qué comprobaciones de verificación se han realizado correctamente en función del error que devuelva CloudFront.

There's no certificate attached to your distribution. (No hay ningún certificado asociado a la distribución).

Para añadir un nombre de dominio alternativo (CNAME), debe asociar un certificado de confianza válido a la distribución. Revise los requisitos, obtenga un certificado válido que los cumpla, asócielo a la distribución e inténtelo de nuevo. Para obtener más información, consulte Requisitos para el uso de nombres de dominio alternativos.

There are too many certificates in the certificate chain for the certificate that you've attached. (Hay demasiados certificados en la cadena de certificados del certificado que ha asociado).

Solo puede tener cinco certificados como máximo en una cadena de certificados. Reduzca el número de certificados de la cadena y, a continuación, vuelva a intentarlo.

The certificate chain includes one or more certificates that aren't valid for the current date. (La cadena de certificados incluye uno o varios certificados que no son válidos para la fecha actual).

La cadena de certificados de un certificado que ha añadido tiene uno o varios certificados que no son válidos, ya sea porque un certificado todavía no es válida o porque un certificado ha caducado. Compruebe los campos Not Valid Before (No válido antes del) y Not Valid After (No válido después del) en los certificados de la cadena de certificados para asegurarse de que todos los certificados son válidos para las fechas que ha indicado.

The certificate that you've attached isn't signed by a trusted Certificate Authority (CA). (El certificado que ha asociado no está firmado por una entidad de certificación (CA) de confianza).

El certificado que se asocia a CloudFront para verificar un nombre de dominio alternativo no puede ser un certificado autofirmado. Debe estar firmado por una CA de confianza. Para obtener más información, consulte Requisitos para el uso de nombres de dominio alternativos.

The certificate that you've attached isn't formatted correctly (El certificado que ha asociado no tiene el formato correcto)

El formato del nombre de dominio y de la dirección IP que se incluyen en el certificado y el formato del certificado deben seguir el estándar para los certificados.

Se produjo un error interno de CloudFront.

CloudFront se ha bloqueado por un problema interno y no puede hacer las comprobaciones de validación de los certificados. En este caso, CloudFront devuelve un código de estado HTTP 500 e indica que hay un problema interno de CloudFront al asociar el certificado. Espere unos minutos y vuelva a intentar añadir el nombre de dominio alternativo con el certificado.

El certificado que ha asociado no cubre el nombre de dominio alternativo que intenta agregar.

Para cada nombre de dominio alternativo que agregue, CloudFront requiere que asocie un certificado SSL/TLS válido de una entidad de certificación (CA) de confianza que cubra el nombre de dominio, para validar su autorización para utilizarlo. Actualice el certificado para que incluya un nombre de dominio que cubra el CNAME que intenta agregar. Para obtener más información y ejemplos de uso de nombres de dominio con caracteres comodín, consulte Requisitos para el uso de nombres de dominio alternativos.

CloudFront devuelve un error de registro DNS mal configurado al intentar agregar un nuevo CNAME

Cuando tiene una entrada de DNS comodín existente que apunta a una distribución de CloudFront, si intenta agregar un nuevo CNAME con un nombre más específico, es posible que encuentre el siguiente error:

One or more aliases specified for the distribution includes an incorrectly configured DNS record that points to another CloudFront distribution. You must update the DNS record to correct the problem.

Este error se produce porque CloudFront consulta el DNS con el CNAME y la entrada de DNS comodín se resuelve en otra distribución.

Para resolver este problema, primero cree otra distribución y, a continuación, cree una entrada de DNS que apunte a la nueva distribución. Por último, agregue el CNAME más específico. Para obtener más información acerca de cómo agregar CNAME, consulte Adición de un nombre de dominio alternativo.

No puedo ver los archivos de mi distribución

Si no puede ver los archivos en la distribución de CloudFront, consulte los temas siguientes para encontrar soluciones comunes.

¿Se ha registrado en CloudFront y Amazon S3?

Para utilizar Amazon CloudFront con un origen de Amazon S3, debe registrarse en CloudFront y Amazon S3 por separado. Para obtener más información sobre cómo registrarse en CloudFront y Amazon S3, consulte Configuración de su Cuenta de AWS.

¿Están el bucket de Amazon S3 y los permisos de objetos establecidos correctamente?

Si utiliza CloudFront con un origen de Amazon S3, las versiones originales de su contenido se almacenan en un bucket de S3. La forma más sencilla de utilizar CloudFront con Amazon S3 es hacer que todos sus objetos sean legibles públicamente en Amazon S3. Para ello, debe habilitar de forma explícita privilegios públicos de lectura en cada objeto que cargue en Amazon S3.

Si su contenido no es legible de forma pública, tendrá que crear un control de acceso de origen (OAC) de CloudFront para que CloudFront pueda obtener acceso a él. Para obtener más información acerca del control de acceso de origen de CloudFront, consulte Restricción del acceso a un origen de Amazon Simple Storage Service.

Las propiedades del objeto y las del bucket son independientes. Debe otorgar privilegios de forma explícita a cada uno de los objetos de Amazon S3. Los objetos no heredan las propiedades de los buckets y las propiedades de los objetos deben establecerse de forma independiente del bucket.

¿Está su nombre de dominio alternativo (CNAME) configurado correctamente?

Si ya tiene un registro de CNAME para su nombre de dominio, actualice dicho registro o sustitúyalo por uno nuevo que apunte al nombre de dominio de su distribución.

Asimismo, asegúrese de que su registro de CNAME apunte al nombre de dominio de su distribución y no a su bucket de Amazon S3. Puede comprobar si el registro CNAME de su sistema DNS apunta al nombre de dominio de su distribución. Para ello, utilice una herramienta de DNS como dig.

El siguiente ejemplo muestra una solicitud de dig de un nombre de dominio llamado images.example.com y la parte pertinente de la respuesta. En ANSWER SECTION, consulte la línea que contiene CNAME. El registro de CNAME de su nombre de dominio estará configurado correctamente si el valor a la derecha de CNAME es el nombre de dominio de su distribución de CloudFront. Si aparece el bucket del servidor de origen de Amazon S3 o cualquier otro nombre de dominio, el registro de CNAME está configurado incorrectamente.

[prompt]> dig images.example.com ; <<> DiG 9.3.3rc2 <<> images.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;images.example.com. IN A ;; ANSWER SECTION: images.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ... ...

Para obtener más información acerca de CNAME, consulte Uso de URL personalizadas añadiendo nombres de dominio alternativos (CNAME).

¿Está haciendo referencia a la URL correcta de la distribución de CloudFront?

Asegúrese de que la URL a la que está haciendo referencia utilice el nombre de dominio (o CNAME) de la distribución de CloudFront y no del bucket de Amazon S3 o de un origen personalizado.

¿Necesita ayuda para solucionar un problema con un origen personalizado?

Si necesita que AWS le ayude a solucionar un problema con un origen personalizado, quizá necesitemos inspeccionar las entradas del encabezado X-Amz-Cf-Id de sus solicitudes. Si todavía no está registrando estas entradas, le recomendamos que considere hacerlo. Para obtener más información, consulte Uso de Amazon EC2 (u otro origen personalizado). Para obtener ayuda adicional, consulte el AWSCentro de soporte de .

Mensaje de error: Certificate: <id-certificado> is being used by CloudFront

Problema: está intentando eliminar un certificado SSL/TLS del almacén de certificados de IAM y recibe el mensaje "Certificate: <id-certificado> is being used by CloudFront".

Solución: cada distribución de CloudFront debe asociarse al certificado predeterminado de CloudFront o a un certificado SSL/TLS personalizado. Antes de eliminar un certificado SSL/TLS, deberá rotar el certificado (sustituir el certificado SSL/TLS personalizado por otro certificado SSL/TLS personalizado) o volver a usar el certificado de CloudFront predeterminado. Para solucionarlo, realice los pasos de uno de los procedimientos siguientes: