Pourquoi les utilisateurs d'IAM peuvent-ils utiliser Athena pour accéder aux ressources de mon catalogue de données alors que j'ai restreint leurs autorisations dans Lake Formation ?

Lecture de 4 minute(s)
0

J'ai restreint les autorisations d'un utilisateur d'AWS Identity and Access Management (IAM) dans AWS Lake Formation. Cependant, l'utilisateur IAM peut toujours accéder à Amazon Athena pour interroger une table.

Brève description

Pour restreindre l'accès des utilisateurs à IAM, mettez à jour les paramètres de sécurité par défaut des ressources nouvelles et existantes du catalogue de données afin d'utiliser le modèle d'autorisations Lake Formation.

Pour en savoir plus sur les autorisations par défaut de Lake Formation, consultez la section Mise à niveau des autorisations de données AWS Glue vers le modèle AWS Lake Formation.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Mettre à jour les paramètres de sécurité par défaut pour une nouvelle ressource du catalogue de données

Pour une nouvelle ressource de catalogue de données dans votre lac de données, consultez la section Modification des paramètres par défaut de votre lac de données. Les mises à jour des paramètres de sécurité par défaut s'appliquent uniquement aux nouvelles ressources.

Pour mettre à jour les paramètres de sécurité uniquement pour de nouvelles ressources spécifiques, créez la ressource. Puis, mettez à jour les autorisations uniquement sur la ressource. Pour plus d'informations, consultez la section Octroi d'autorisations sur les ressources du catalogue de données.

Mettre à jour les paramètres de sécurité d'une ressource existante du catalogue de données

Pour supprimer les autorisations IAMAllowedPrincipals d'une base de données existante, procédez comme suit :

  1. Ouvrez la console AWS Lake Formation.
  2. Dans le volet de navigation, sous Catalogue de données, sélectionnez Bases de données.
  3. Sélectionnez le cercle en regard de la base de données que vous souhaitez mettre à jour.
  4. Sélectionnez Actions, puis Modifier.
  5. Sous Autorisations par défaut pour les tables nouvellement créées, désactivez la case Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données.
  6. Sélectionnez Enregistrer.
  7. Sur la page Bases de données, vérifiez que la base de données est sélectionnée. Sélectionnez Actions, puis Révoquer.
  8. Dans la boîte de dialogue Révoquer les autorisations, dans la liste Utilisateurs et rôles IAM, pour Groupe, sélectionnez IAMAllowedPrincipals.
  9. Dans Autorisations de base de données, vérifiez que Super est sélectionné, puis choisissez Révoquer.

Pour supprimer les autorisations IAMAllowedPrincipals sur une table existante, procédez comme suit :

  1. Ouvrez la console AWS Lake Formation.
  2. Dans le volet de navigation, sélectionnez Tables.
  3. Sur la page Tables, sélectionnez le cercle en regard de la table que vous souhaitez mettre à jour.
  4. Sélectionnez Actions, puis Révoquer.
  5. Dans la boîte de dialogue Révoquer les autorisations, dans la liste Utilisateurs et rôles IAM, pour Groupe, sélectionnez IAMAllowedPrincipals.
  6. Sous Autorisations de tables, vérifiez que Super est sélectionné, puis choisissez ** Révoquer**.

Remarque : Assurez-vous que le chemin Amazon Simple Storage Service (Amazon S3) vers la base de données ou la table est enregistré auprès de Lake Formation.

Après avoir modifié les paramètres de sécurité d'une ressource existante, utilisez l’interface de ligne de commande AWS ou la console Lake Formation pour accorder des autorisations de table à l'utilisateur IAM.

Pour effectuer des opérations Lake Formation, un utilisateur doit disposer des autorisations Lake Formation et IAM. Pour interroger une table depuis Athena lorsque Lake Formation gère les autorisations, l'utilisateur doit disposer des autorisations IAM suivantes :

{  
    "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 OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois