Salta al contenuto

Come posso risolvere gli errori "Access denied" che ricevo quando utilizzo Athena come origine dati in Quick Sight?

6 minuti di lettura
0

Quando cerco di utilizzare Amazon Athena come origine dati nel mio account Amazon Quick Sight, ricevo l'errore "Access denied".

Breve descrizione

Di seguito sono riportati i motivi più comuni degli errori Access denied quando utilizzi Amazon Athena come origine dati in Amazon Quick Sight:

  • L'account Quick Sight non ha l'autorizzazione necessaria per accedere al bucket Amazon Simple Storage Service (Amazon S3).
  • Il file di dati è crittografato con una chiave del Servizio AWS di gestione delle chiavi (AWS KMS).
  • Non ti è stata assegnata la policy di autorizzazioni AWS Identity and Access Management (IAM) necessaria.
  • Il bucket Amazon S3 non esiste. Oppure il ruolo IAM utilizzato per eseguire query sui dati non ha le autorizzazioni S3 richieste.
  • (Per gli account Quick Sight che utilizzano AWS Organizations) Non ti sono state assegnate le policy di controllo dei servizi (SCP) necessarie.
  • (Per gli account Athena che utilizzano Lake Formation) L'utente o il gruppo Quick Sight non ha le autorizzazioni di AWS Lake Formation.

Nota: prima di iniziare la risoluzione dei problemi, assicurati di poter accedere ai tuoi dati in Athena.

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

L'account Quick Sight non ha l'autorizzazione necessaria per accedere al bucket Amazon S3

Ricevi un errore simile al seguente:

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

Per ottenere l'autorizzazione relativa al bucket S3, completa i seguenti passaggi:

  1. Apri la console Amazon Quick Sight.
  2. Scegli Gestisci Quick Sight.
  3. Scegli Sicurezza e autorizzazioni.
  4. In Accesso Quick Sight ai servizi AWS, scegli Gestisci.
  5. Nell'elenco dei servizi AWS, seleziona Amazon S3.
  6. Scegli Seleziona bucket S3, quindi seleziona il bucket S3.
  7. Scegli Autorizzazione di scrittura per Athena Workgroup, quindi scegli Fine.
  8. Scegli Salva.

Il tuo file di dati è crittografato con una chiave AWS KMS

Se il file di dati è crittografato con una chiave AWS KMS, Amazon S3 può negarti l'accesso ai dati. Per risolvere il problema, utilizza AWS CLI o la console AWS KMS per concedere al ruolo di servizio per Quick Sight l'accesso alla chiave AWS KMS.

Utilizza AWS CLI

Completa i seguenti passaggi:

  1. Utilizza la console IAM per individuare l'ARN del ruolo di servizio per Quick Sight.

  2. Utilizza la console Amazon S3 per individuare l'ARN della chiave AWS KMS.

  3. Vai al bucket che contiene il tuo file di dati.

  4. Scegli la scheda Panoramica, quindi individua l'ID della chiave KMS.

  5. Aggiungi l'ARN del ruolo di servizio per Quick Sight alla policy della chiave KMS.

  6. Esegui il comando AWS CLI create-grant:

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

    Nota: sostituisci aws_kms_key_arn con l'ARN della chiave AWS KMS e quicksight_role_arn con l'ARN del ruolo di servizio per Quick Sight.

Utilizza la console AWS KMS

Per aggiungere il ruolo di servizio relativo a Quick Sight alla policy della chiave AWS KMS, modifica la policy della chiave. Quindi aggiungi le seguenti autorizzazioni alla policy della chiave:

{     "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: nella policy precedente, assicurati di aggiungere l'ARN dei ruoli di servizio per QuickSight nella sezione Principal.

Non ti è stata assegnata la policy di autorizzazioni IAM necessaria

Per verificare quali policy ti sono state assegnate e verificare se la policy limita il tuo accesso, completa i seguenti passaggi:

  1. Apri la console Amazon Quick Sight.
  2. Scegli Gestisci Quick Sight.
  3. Scegli Sicurezza e autorizzazioni.
  4. Scegli le assegnazioni delle policy IAM.
  5. Verifica se ci sono assegnazioni di policy IAM per accedere ad Athena.
  6. Verifica che la policy non limiti il tuo accesso a S3 o Athena.

Se una policy limita il tuo accesso a S3 o Athena, chiedi all'amministratore di Quick Sight di modificare la policy. Se sei l'amministratore, disattiva l'assegnazione della policy IAM e modificala per includere le autorizzazioni di S3 e Athena. Per ulteriori informazioni, consulta Setting granular access to AWS services through IAM (Impostazione dell'accesso granulare ai servizi AWS tramite IAM).

Il bucket S3 non esiste. Oppure, il ruolo IAM utilizzato per interrogare i dati non dispone delle autorizzazioni S3 richieste

Viene visualizzato il seguente errore:

"Unable to verify/create output bucket."

Per risolvere l'errore precedente, consulta Come posso risolvere l'errore "Unable to verify/create output bucket" in Amazon Athena?

Se il bucket non esiste, aggiungi un bucket S3 valido. Dalla console Amazon Quick Sight, seleziona Amazon S3 nell'elenco dei servizi AWS. Quindi seleziona il bucket S3 utilizzato per la posizione dei risultati della query.

Non ti sono stati assegnati gli SCP necessari (Organizzazioni)

Chiedi all'amministratore dell'organizzazione di controllare le tue impostazioni SCP per verificare le autorizzazioni che ti sono state assegnate. Se sei un amministratore di Organizations, consulta Creazione di policy dell'organizzazione con AWS Organizations.

L'utente o il gruppo Quick Sight non ha le autorizzazioni di Lake Formation

Per gli account Athena che utilizzano Lake Formation, potresti ricevere il seguente errore:

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

Per concedere le autorizzazioni di Lake Formation per Quick Sight, devi essere un amministratore di Lake Formation.

Completa i seguenti passaggi:

  1. Individua l'ARN per l'utente o il gruppo Quick Sight.

  2. Esegui uno di questi comandi AWS CLI:

    describe-user

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

    -or-

    describe-group

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

    Nota: nei comandi precedenti, sostituisci user_name con il nome del tuo utente, group_name con il nome del tuo gruppo e account_id con l'ID del tuo account.

  3. Apri la console Lake Formation.

  4. Scegli Tabelle.

  5. Scegli Azioni, quindi scegli Autorizzazioni.

  6. Nell'elenco Principals (Principali), scegli Grant (Concedi).

  7. In SAML and Amazon Quick Sight users and groups (Utenti e gruppi Amazon Quick Sight e SAML), inserisci l'ARN dell'utente o del gruppo Quick Sight. Ad esempio, arn:aws:quicksight:region:accountId:user/namespace/username.

  8. Seleziona l'origine dati corretta, quindi scegli All tables (Tutte le tabelle). Le autorizzazioni della tabella sono Seleziona e Descrivi.

  9. Scegli Grant (Concedi).

Dopo aver concesso le autorizzazioni, torna alla console Quick Sight per provare a creare nuovamente il set di dati.

Informazioni correlate

Insufficient permissions when using Athena with Amazon Quick Sight (Autorizzazioni insufficienti nell'utilizzo Athena con Amazon Quick Sight)

Introducing Amazon Quick Sight fine-grained access control over Amazon S3 and Amazon Athena (Controllo granulare degli accessi di Amazon Quick Sight in Amazon S3 e Amazon Athena)

Enable fine-grained permissions for Amazon Quick Sight authors in AWS Lake Formation (Attivazione delle autorizzazioni granulari per gli autori di Amazon Quick Sight in AWS Lake Formation)