View a markdown version of this page

Activation de l'intégration des tables Amazon S3 - AWS Lake Formation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Activation de l'intégration des tables Amazon S3

Vous pouvez créer des compartiments de table Amazon S3 à l'aide de la console Amazon S3 et les intégrer aux services AWS d'analyse. Pour plus d'informations, consultez Utilisation des tables Amazon S3 avec des services AWS d'analyse.

Dans AWS Lake Formation, vous pouvez activer l'intégration d'Amazon S3 Tables avec AWS Glue Data Catalog et AWS Lake Formation à l'aide de la console Lake Formation ou utiliser AWS CLI.

  1. Ouvrez la console Lake Formation à l'adresse https://console.aws.amazon.com/lakeformation/.

  2. Dans le volet de navigation, sélectionnez Catalogues sous Catalogue de données.

  3. Choisissez Activer l'intégration des tables S3 sur la page Catalogues.

    L'option d'activation de l'intégration des tables S3 sur la page des catalogues.
  4. Choisissez un rôle IAM doté des autorisations requises pour que Lake Formation puisse assumer la vente d'informations d'identification aux moteurs de requêtes analytiques. Pour connaître les autorisations requises pour que le rôle puisse accéder aux données, consultez step3-permissions la section sur les conditions préalables.

    L'écran d'activation de l'intégration S3 avec le rôle IAM.
  5. Sélectionnez Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec l'option d'accès complet aux tables. Lorsque vous activez l'accès complet aux tables pour des moteurs tiers, Lake Formation renvoie directement les informations d'identification au moteur tiers sans effectuer de validation des balises de session IAM. Cela signifie que vous ne pouvez pas appliquer de contrôles d'accès précis à Lake Formation aux tables auxquelles vous accédez.

  6. Sélectionnez Activer. Le nouveau catalogue des tables S3 est ajouté à la liste des catalogues. Lorsque vous activez l'intégration du catalogue de tables S3, le service enregistre l'emplacement des données du compartiment de tables S3 auprès de Lake Formation.

  7. Choisissez le catalogue pour afficher les objets du catalogue et accorder des autorisations aux autres principaux.

    Le catalogue de tables S3

    Pour créer des catalogues à plusieurs niveaux, consultez la section Création d'un compartiment de tables dans le guide de l'utilisateur d'Amazon Simple Storage Service.

En suivant la section sur les conditions préalables, créez un rôle de service IAM qui permet à Lake Formation d'accéder aux ressources de votre table.

  1. Créez un fichier Role-Trust-Policy.json contenant la stratégie d’approbation suivante :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPolicy", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }
  2. Créez le rôle de service IAM à l’aide de la commande suivante :

    aws iam create-role \ --role-name S3TablesRoleForLakeFormation \ --assume-role-policy-document file://Role-Trust-Policy.json
  3. Créez un fichier LF-GluePolicy.json contenant la stratégie suivante :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationPermissionsForS3ListTableBucket", "Effect": "Allow", "Action": [ "s3tables:ListTableBuckets" ], "Resource": [ "*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:GetTableBucket", "s3tables:CreateNamespace", "s3tables:GetNamespace", "s3tables:ListNamespaces", "s3tables:DeleteNamespace", "s3tables:DeleteTableBucket", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:ListTables", "s3tables:RenameTable", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/*" ] } ] }
  4. Attachez la stratégie au rôle en utilisant la commande suivante :

    aws iam put-role-policy \ --role-name S3TablesRoleForLakeFormation \ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
  5. Créez un fichier input.json contenant ce qui suit :

    { "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }
  6. Enregistrez les compartiments de table auprès de Lake Formation en utilisant la commande suivante :

    aws lakeformation register-resource \ --region us-east-1 \ --with-privileged-access \ --cli-input-json file://input.json
  7. Créez un fichier catalog.json contenant le catalogue qui suit :

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [], "AllowFullTableExternalDataAccess": "True" } }
  8. Créez le catalogue s3tablescatalog à l’aide de la ligne de commande suivante. La création de ce catalogue remplit le AWS Glue Data Catalog avec des objets correspondant à des compartiments de tables, à des espaces de noms et à des tables.

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json
  9. Vérifiez que le s3tablescatalog catalogue a été ajouté à AWS Glue l'aide de la commande suivante :

    aws glue get-catalog --catalog-id s3tablescatalog