¿Cómo soluciono los errores de «Acceso denegado» cuando uso Athena como origen de datos en Quicksight?

7 minutos de lectura
0

Recibo errores de «Acceso denegado» cuando intento utilizar Amazon Athena como origen de datos en mi cuenta de Amazon QuickSight.

Breve descripción

A continuación, se presentan motivos habituales por los que se producen errores de acceso denegado cuando utiliza Amazon Athena como origen de datos en Amazon QuickSight:

  • Su cuenta de QuickSight carece de los permisos necesarios para acceder al bucket de Amazon Simple Storage Service (Amazon S3).
  • Su archivo de datos está cifrado con una clave de AWS Key Management Service (AWS KMS).
  • No tiene asignada la política de permisos de AWS Identity and Access Management (IAM) necesaria.
  • El bucket de Amazon S3 no existe. O bien, el rol de IAM que se utiliza para consultar los datos carece de los permisos de S3 requeridos.
  • No tiene asignadas las políticas de control de servicio (SCP) necesarias (para cuentas de QuickSight que utilizan AWS Organizations).
  • Su usuario o grupo de QuickSight carece de los permisos de AWS Lake Formation (para cuentas de Athena que utilizan Lake Formation).

Nota: Antes de empezar a solucionar problemas, asegúrese de que puede acceder a sus datos en Athena.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Su cuenta de QuickSight carece de los permisos necesarios para acceder al bucket de Amazon S3

Aparece un error similar al siguiente:

«An error has been thrown from AWS Athena client. Permission denied on S3 path:sourceErrorMessage: s3:/example bucket/object name»

Para obtener permiso para acceder al bucket de S3, siga estos pasos:

  1. Abra la consola de Amazon QuickSight.
  2. Elija Administrar QuickSight.
  3. Elija Seguridad y permisos.
  4. En Acceso de QuickSight a los servicios de AWS, elija Administrar.
  5. En la lista de servicios de AWS, elija Amazon S3.
  6. Elija Seleccionar buckets de S3 y, a continuación, seleccione el bucket de S3.
  7. Elija **Permiso de escritura para grupo de trabajo de Athena ** y, a continuación, elija Finalizar.
  8. Elija Guardar.

El archivo de datos está cifrado con una clave de AWS KMS

Si el archivo de datos está cifrado con una clave de AWS KMS, Amazon S3 puede denegarle el acceso a los datos. Para resolver este problema, use la AWS CLI o la consola de AWS KMS para conceder a su rol de servicio de QuickSight acceso a la clave de AWS KMS.

Uso de la AWS CLI

Siga estos pasos:

  1. Utilice la consola de IAM para localizar el ARN del rol de servicio de QuickSight.

  2. Utilice la consola de Amazon S3 para buscar el ARN de la clave de AWS KMS.

  3. Vaya al bucket que contiene el archivo de datos.

  4. Elija la pestaña Información general y, a continuación, busque el ID de la clave de KMS.

  5. Agregue el ARN del rol de servicio de QuickSight a la política de claves de KMS.

  6. Ejecute el comando create-grant de la AWS CLI:

    aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt
    

    Nota: Sustituya aws_kms_key_arn por el ARN de su clave de AWS KMS y quicksight_role_arn por el ARN de su rol de servicio de QuickSight.

Use la consola de AWS KMS

Para agregar el rol de servicio de QuickSight a la política de claves de AWS KMS, cambie la política de claves. A continuación, añada los siguientes permisos a la política de claves:

{     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
         "AWS": [
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-service-role-v0",
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-s3-consumers-role-v0"
              ]
         },
         "Action": [
            "kms:Decrypt"
               ],
         "Resource": "*"
}

Nota: En la política anterior, asegúrese de agregar el ARN de sus roles de servicio de QuickSight en la sección Principal.

No tiene asignada la política de permisos de IAM necesaria

Para comprobar qué políticas se le han asignado y comprobar si la política restringe su acceso, siga estos pasos:

  1. Abra la consola de Amazon QuickSight.
  2. Elija Administrar QuickSight.
  3. Elija Seguridad y permisos.
  4. Elija Asignaciones de políticas de IAM.
  5. Compruebe si existen asignaciones de políticas de IAM para acceder a Athena.
  6. Compruebe que la política no restrinja su acceso a S3 ni a Athena.

En el caso de que exista una política que restrinja su acceso a S3 o Athena, solicite al administrador de QuickSight que modifique dicha política. Si es el administrador, desactive la asignación de políticas de IAM y edite la política para incluir los permisos de S3 y Athena. Para obtener más información, consulte Setting granular access to AWS services through IAM.

El bucket de S3 no existe. O bien, el rol de IAM que se utiliza para consultar los datos carece de los permisos de S3 requeridos.

Se muestra el siguiente error:

«Unable to verify/create output bucket.»

Para resolver el error anterior, consulte ¿Cómo puedo solucionar el error «Unable to verify/create output bucket» en Amazon Athena?

Si el bucket no existe, agregue el bucket de S3 válido. En la consola de Amazon QuickSight, seleccione Amazon S3 de la lista de servicios de AWS. A continuación, seleccione el bucket de S3 que se utiliza para la ubicación de los resultados de la consulta.

No tiene asignadas las SCP necesarias (Organizations)

Pídale al administrador de AWS Organizations que revise la configuración de SCP para verificar los permisos que se le asignaron. Si es administrador de Organizations, consulte Creating, updating, and deleting service control policies.

Su usuario o grupo de QuickSight carece de los permisos de Lake Formation

En el caso de las cuentas de Athena que utilizan Lake Formation, es posible que se reciba el siguiente error:

«An error has been thrown from the AWS Athena client. Insufficient permissions to execute the query. Insufficient Lake Formation permission(s).»

A fin de conceder permisos de Lake Formation para QuickSight, debe ser administrador de Lake Formation.

Siga estos pasos:

  1. Busque el ARN de usuario o grupo de QuickSight.

  2. Ejecute uno de los siguientes comandos de la AWS CLI:

    describe-user

    aws quicksight describe-user  --user-name user_name  --aws-account-id account_id --namespace default
    

    Alternativa:

    describe-group

    aws quicksight describe-group --group-name group_name  --aws-account-id account_id --namespace default
    

    Nota: En los comandos anteriores, sustituya user_name por su nombre de usuario, group_name por el nombre de su grupo y account_id por el ID de su cuenta.

  3. Abra la consola de Lake Formation.

  4. Elija Tablas.

  5. Elija Acciones y, a continuación, Permisos.

  6. En la lista de entidades principales, elija Conceder.

  7. En Usuarios y grupos de SAML y Amazon QuickSight, introduzca el ARN de usuario o grupo de QuickSight. Por ejemplo, arn:aws:quicksight:region:accountId:user/namespace/username.

  8. Seleccione el origen de datos correcto y, a continuación, elija Todas las tablas. Los permisos de la tabla son Seleccionar y Describir.

  9. Elija Conceder.

Después de conceder los permisos, vuelva a la consola de QuickSight para intentar crear el conjunto de datos de nuevo.

Información relacionada

Insufficient permissions when using Athena with Amazon QuickSight

Introducing Amazon QuickSight fine-grained access control over Amazon S3 and Amazon Athena

Turn on fine-grained permissions for Amazon QuickSight authors in AWS Lake Formation

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses