Perché gli utenti IAM possono utilizzare Athena per accedere alle risorse del mio Catalogo dati anche dopo che ho limitato le loro autorizzazioni in Lake Formation?

4 minuti di lettura
0

Ho limitato le autorizzazioni per un utente di AWS Identity and Access Management (IAM) in AWS Lake Formation. Tuttavia, l'utente IAM può comunque accedere ad Amazon Athena per eseguire query su una tabella.

Breve descrizione

Per limitare l'accesso degli utenti IAM, aggiorna le impostazioni di sicurezza predefinite delle risorse del Catalogo dati nuove ed esistenti per utilizzare il modello di autorizzazioni di Lake Formation.

Per ulteriori informazioni sulle autorizzazioni predefinite di Lake Formation, consulta Upgrading AWS Glue data permissions to the AWS Lake Formation model.

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta Troubleshooting errors for the AWS CLI (Risoluzione degli errori per AWS CLI). Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Aggiorna le impostazioni di sicurezza predefinite per una nuova risorsa del Catalogo dati

Per una nuova risorsa del Catalogo dati nel data lake, consulta Changing the default settings for your data lake. Gli aggiornamenti alle impostazioni di sicurezza predefinite si applicano solo alle nuove risorse.

Per aggiornare le impostazioni di sicurezza solo per nuove risorse specifiche, crea la risorsa. Quindi, aggiorna le autorizzazioni solo sulla risorsa. Per ulteriori informazioni, consulta Granting permissions on Data Catalog resources.

Aggiorna le impostazioni di sicurezza per una risorsa del Catalogo dati esistente

Per rimuovere le autorizzazioni IAMAllowedPrincipals da un database esistente, completa i seguenti passaggi:

  1. Apri la console AWS Lake Formation.
  2. Nel riquadro di navigazione, in Data catalog, scegli Database.
  3. Seleziona il cerchio accanto al database che desideri aggiornare.
  4. Scegli Azioni, quindi scegli Modifica.
  5. In Autorizzazioni predefinite per le tabelle appena create, deseleziona Usa solo il controllo di accesso IAM per le nuove tabelle in questo database.
  6. Fai clic su Salva.
  7. Nella pagina Database, verifica che il database sia selezionato. Scegli Azioni, quindi scegli Revoca.
  8. Nella finestra di dialogo Revoca autorizzazioni, nell'elenco Utenti e ruoli IAM, in Gruppo, scegli IAMAllowedPrincipals.
  9. In Autorizzazioni del database verifica che Super sia selezionato, quindi scegli Revoca.

Per rimuovere le autorizzazioni IAMAllowedPrincipals su una tabella esistente, completa i seguenti passaggi:

  1. Apri la console AWS Lake Formation.
  2. Nel riquadro di navigazione, scegli Tabelle.
  3. Nella pagina Tabelle, seleziona il cerchio accanto alla tabella che desideri aggiornare.
  4. Scegli Azioni, quindi scegli Revoca.
  5. Nella finestra di dialogo Revoca autorizzazioni, nell'elenco Utenti e ruoli IAM, in Gruppo, scegli IAMAllowedPrincipals.
  6. In Autorizzazioni per le tabelle, assicurati che Super sia selezionato, quindi scegli Revoca.

Nota: assicurati che il percorso di Amazon Simple Storage Service (Amazon S3) verso il database o la tabella sia registrato con Lake Formation.

Dopo aver modificato le impostazioni di sicurezza per una risorsa esistente, utilizza AWS CLI o la console Lake Formation per concedere le autorizzazioni per le tabelle all'utente IAM.

Per eseguire le operazioni di Lake Formation, gli utenti devono disporre delle autorizzazioni Lake Formation e IAM. Per eseguire query su una tabella da Athena quando Lake Formation gestisce le autorizzazioni, l'utente deve disporre delle seguenti autorizzazioni IAM:

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "minimumAWSGlueLakeFormationAthenapermissiontorunselectqueryontable",  
            "Effect": "Allow",  
            "Action": [  
                "lakeformation:GetDataAccess",  
                "glue:SearchTables",  
                "glue:GetTables",  
                "glue:GetPartitions",  
                "glue:GetDatabases",  
                "glue:GetTable",  
                "glue:GetDatabase",  
                "athena:GetNamespace",  
                "athena:ListWorkGroups",  
                "athena:GetCatalogs",  
                "athena:GetNamespaces",  
                "athena:GetExecutionEngine",  
                "athena:GetExecutionEngines",  
                "athena:GetTables",  
                "athena:GetTable"  
            ],  
            "Resource": "*"  
        },  
        {  
            "Sid": "AthenaPermissionToRunQueryInAWorkergroup",  
            "Effect": "Allow",  
            "Action": [  
                "athena:StartQueryExecution",  
                "athena:GetQueryResults",  
                "athena:DeleteNamedQuery",  
                "athena:GetNamedQuery",  
                "athena:ListQueryExecutions",  
                "athena:StopQueryExecution",  
                "athena:GetQueryResultsStream",  
                "athena:ListNamedQueries",  
                "athena:CreateNamedQuery",  
                "athena:GetQueryExecution",  
                "athena:BatchGetNamedQuery",  
                "athena:BatchGetQueryExecution"  
            ],  
            "Resource": [  
                "arn:aws:athena:*:*:workgroup/*"  
            ]  
        },  
        {  
            "Sid": "allowS3PermissionToSaveAthenaQueryResults",  
            "Effect": "Allow",  
            "Action": [  
                "s3:PutObject",  
                "s3:GetObject",  
                "s3:ListBucketMultipartUploads",  
                "s3:AbortMultipartUpload",  
                "s3:CreateBucket",  
                "s3:ListBucket",  
                "s3:GetBucketLocation",  
                "s3:ListMultipartUploadParts"  
            ],  
            "Resource": [  
                "arn:aws:s3:::aws-athena-query-results-*"  
            ]  
        }  
    ]  
}
AWS UFFICIALEAggiornata 7 mesi fa