

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.

# Intégrer vos données dans AWS Glue Data Catalog
<a name="bring-your-data-overview"></a>

Vous pouvez créer des catalogues fédérés dans le AWS Glue Data Catalog (catalogue de données) et unifier les données entre les lacs de données Amazon S3 et les entrepôts de données Amazon Redshift. Vous pouvez également intégrer des données provenant de vos bases de données opérationnelles telles que Amazon DynamoDB, et de sources de données tierces telles que PostgreSQL BigQuery, Google, MySQL, entre autres. Le catalogue de données fournit un référentiel de métadonnées centralisé qui facilite la gestion et la découverte de données sur des systèmes disparates.

Le catalogue de données s'intègre à plus de 30 sources de données externes via des connecteurs fédérés. Grâce à cette intégration, vous pouvez interroger des données provenant de ces sources externes sans avoir à créer des pipelines de données pour les intégrer au AWS préalable.

Après avoir catalogué les données externes, vous pouvez les utiliser AWS Lake Formation pour gérer de manière centralisée les autorisations d'accès aux données dans le catalogue de données. Les administrateurs de data lake peuvent accorder des autorisations d'accès détaillées à d'autres principaux IAM (utilisateurs ou rôles) au sein d'un même compte ou entre plusieurs comptes à l'aide d'un contrôle d'accès basé sur des balises (balises LF) et de méthodes de ressources nommées.

En utilisant des balises LF, les administrateurs de données peuvent organiser les ressources de manière logique en fonction d'attributs tels que le domaine et le niveau de sensibilité, simplifiant ainsi la gestion des autorisations tout en garantissant des contrôles d'accès cohérents entre les services d'analyse et d'apprentissage automatique tels qu'Athena, Amazon EMR ou Redshift Spectrum. AWS Glue 

Le catalogue de données fournit les méthodes suivantes pour gérer les données et les autorisations sur les ensembles de données externes et les métastores externes :
+ **Intégrer les compartiments de tables Amazon S3 au catalogue de données** : vous pouvez publier et cataloguer les tables Amazon S3 sous forme d'objets du catalogue de données et enregistrer le catalogue en tant que localisation des données de Lake Formation depuis la console Lake Formation ou à l'aide d'opérations d' AWS Glue API.
+ **Importez les données des entrepôts de données Amazon Redshift dans le AWS Glue Data Catalog** — Enregistrez un espace de noms [Amazon Redshift](https://docs.aws.amazon.com/redshift/index.html) existant ou un cluster dans le catalogue de données, et créez un catalogue fédéré à plusieurs niveaux dans le catalogue de données. 

  Vous pouvez accéder à vos données à l'aide de n'importe quel moteur de requête compatible avec les spécifications OpenAPI du catalogue REST Apache Iceberg, tel qu'Amazon EMR Serverless et Amazon Athena. 
+ **Fédérez les Iceberg REST catalogues distants au catalogue de données** : fédérez les Iceberg REST catalogues distants au catalogue de données et accédez en toute sécurité aux Iceberg tables distantes stockées dans Amazon S3 à l'aide de moteurs d'analyse. AWS 
+ **Créez une fédération dans le catalogue de données à partir de sources de données externes** : connectez le catalogue de données à des sources de données externes à l'aide de AWS Glue connexions, et créez des catalogues fédérés pour gérer de manière centralisée les autorisations d'accès aux ensembles de données à l'aide de Lake Formation. Aucune migration de métadonnées dans le catalogue de données n'est nécessaire. 
+ **Créez des catalogues pour gérer les tables Amazon Redshift dans le catalogue de données** : vous ne disposez peut-être pas d'un cluster de producteurs Amazon Redshift ou d'un partage de données Amazon Redshift actuellement, mais vous souhaitez créer et gérer des tables Amazon Redshift à l'aide de Data Catalog. Vous pouvez commencer par créer un catalogue AWS Glue géré à l'aide de l'opération `glue:CreateCatalog` API ou de la AWS Lake Formation console en définissant le type de catalogue `Catalog source` comme **Redshift**. `Managed` 
+ **Publiez des partages de données Amazon Redshift avec Data Catalog : publiez des partages** de données [Amazon Redshift sur](https://docs.aws.amazon.com/redshift/index.html) Data Catalog et utilisez Lake Formation pour gérer de manière centralisée l'accès aux données des partages de données et restreindre l'accès des utilisateurs.

  Vous pouvez interroger vos données à l'aide d'Amazon Redshift Spectrum. 
+  **Connect Data Catalog à des métastores Hive externes** : connectez le catalogue de données à des métastores externes pour gérer les autorisations d'accès aux ensembles de données dans Amazon S3 à l'aide de Lake Formation. Aucune migration de métadonnées dans le catalogue de données n'est nécessaire. 
+ **Intégrez Lake Formation à AWS Data Exchange** — Lake Formation prend en charge l'accès sous licence à vos données via AWS Data Exchange. Si vous souhaitez obtenir une licence pour vos données de Lake Formation, consultez la section [Contenu AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html) du *guide de AWS Data Exchange l'utilisateur*.

**Topics**
+ [Fédération de catalogues vers des catalogues Iceberg distants](catalog-federation.md)
+ [Intégrer les données Amazon Redshift dans AWS Glue Data Catalog](managing-namespaces-datacatalog.md)
+ [Fédération en sources de données externes dans le AWS Glue Data Catalog](federated-catalog-data-connection.md)
+ [Intégration d'Amazon S3 Tables avec AWS Glue Data Catalog et AWS Lake Formation](create-s3-tables-catalog.md)
+ [Modification des contrôles d'accès pour l'intégration des tables S3](manage-s3tables-catalog-integration.md)
+ [Création d'un catalogue géré par Amazon Redshift dans AWS Glue Data Catalog](create-rms-catalog.md)
+ [Gestion des autorisations pour les données dans un partage de données Amazon Redshift](data-sharing-redshift.md)
+ [Gestion des autorisations sur les ensembles de données qui utilisent des métastores externes](data-sharing-hms.md)

# Fédération de catalogues vers des catalogues Iceberg distants
<a name="catalog-federation"></a>

La fédération de catalogues AWS Glue fournit un accès direct et sécurisé aux tables Iceberg, stockées dans Amazon S3 et cataloguées dans des catalogues distants, à l'aide AWS de moteurs d'analyse. La fédération de catalogues synchronise les métadonnées entre Data Catalog et les catalogues distants lorsque vous accédez à des tables distantes. Il est pris en charge par une grande variété de moteurs d'analyse, notamment Amazon Redshift, Amazon EMR, Amazon Athena, des moteurs tiers tels qu' AWS Glue Apache Spark, etc.

La fédération de catalogues AWS Glue Data Catalog permet de communiquer avec les systèmes de catalogues distants pour découvrir les tables et avec Lake Formation pour autoriser l'accès aux données des tables dans Amazon S3. Lorsque vous interrogez une table fédérée, Data Catalog découvre les dernières informations de table dans le catalogue distant au moment de la requête, obtenant ainsi l'emplacement Amazon S3 de la table, le schéma actuel et les informations de partition. Votre moteur d'analyse (Amazon Athena, Amazon Redshift, Amazon EMR) utilise ensuite ces informations pour accéder aux fichiers de données Iceberg directement depuis Amazon S3. Lake Formation gère l'accès aux tables en distribuant des informations d'identification limitées aux données des tables stockées dans Amazon S3, ce qui permet aux moteurs d'appliquer des autorisations détaillées aux tables fédérées.

## Caractéristiques de Catalog Federation
<a name="catalog-federation-features"></a>

**Gouverné à l'aide de Lake Formation**  
Les catalogues d'icebergs fédérés du catalogue de données sont des ressources enregistrées dans Lake Formation, ce qui vous permet d'accorder des autorisations détaillées au niveau des lignes, des colonnes et des cellules aux tables Iceberg des catalogues d'icebergs fédérés à l'aide de subventions Lake Formation. Les catalogues Federated Iceberg et les objets associés peuvent être partagés en toute sécurité entre les comptes. AWS Les catalogues Federated Iceberg fonctionnent également avec le contrôle d'accès basé sur les balises Lake Formation, ce qui vous permet d'étendre la gouvernance à l'aide de balises.

**Configurations réseau**  
La fédération de catalogues prend en charge les connexions directes aux sources de catalogue distantes à l'aide de la connectivité HTTPS standard. Il prend également en charge la connectivité via Amazon VPC lorsque vous souhaitez maintenir l'isolation du réseau et la connectivité à l'aide de proxy lorsque vous souhaitez une communication sécurisée via les pare-feux de l'entreprise.

**Topics**
+ [Caractéristiques de Catalog Federation](#catalog-federation-features)
+ [Fédérer vers le catalogue Snowflake Iceberg](catalog-federation-snowflake.md)
+ [Fédérer pour Databricks Unity Catalog](catalog-federation-databricks.md)

# Fédérer vers le catalogue Snowflake Iceberg
<a name="catalog-federation-snowflake"></a>

AWS Glue Data Catalog se connecte à Snowflake l'utilisation des OAuth2 informations d'identification d'un directeur de Snowflake service. Vous pouvez utiliser cette fédération pour vous connecter à Snowflake Horizon des Snowflake Polaris catalogues. Ce mécanisme d'authentification permet à Data Catalog d'accéder aux métadonnées de divers objets (tels que les catalogues, les bases de données et les tables) de votre catalogue, en fonction des privilèges associés au principal de service. Pour garantir l'accès aux bons objets, il est essentiel d'accorder au principal du service Snowflake les autorisations nécessaires pour lire les métadonnées de ces objets.

## Conditions préalables
<a name="catalog-federation-snowflake-prerequisites"></a>

Avant de créer un catalogue fédéré dans Data Catalog régi par Lake Formation, assurez-vous de disposer des autorisations suivantes :

Votre principal IAM (utilisateur ou rôle) doit disposer des autorisations suivantes :
+ **Permissions de Lake Formation** —`lakeformation:RegisterResource`, `lakeformation:DescribeResource`
+ **AWS Glue autorisations** — `glue:CreateConnection``glue:CreateCatalog`,`glue:GetConnection`, `glue:PassConnection`
+ **Autorisations du Secrets Manager** —`secretsmanager:CreateSecret`, `secretsmanager:GetSecretValue`
+ **Autorisations IAM** —`iam:CreateRole`, `iam:AttachRolePolicy` `iam:PassRole`

Vous devez être un administrateur du lac de Lake Formation ou avoir l'`CREATE_CATALOG`autorisation d'accéder au catalogue de données

## Création d'un catalogue fédéré
<a name="catalog-federation-snowflake-create"></a>

### Utilisation de la console
<a name="catalog-federation-snowflake-console"></a>

1. Connectez-vous à la console et ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Choisissez la AWS région préférée dans la section supérieure droite de la page.

1. Dans le volet de navigation de gauche, choisissez Catalogues.

1. Choisissez **Créer un catalogue** pour ouvrir le **flux de travail de création de catalogue**.

1. Dans l'étape **Choisir une source de données**, Snowflake sélectionnez l'une des options disponibles.

1. À l'étape **Définir les détails du catalogue**, vous fournissez trois informations : les détails du catalogue, les détails de connexion et les détails d'enregistrement.

1. Dans le conteneur des **détails du catalogue**, attribuez un nom unique à votre catalogue AWS Glue fédéré et entrez le nom du Snowflake catalogue existant.

1. Dans le conteneur **des détails des connexions**, vous pouvez soit choisir une connexion existante à laquelle vous avez accès, soit fournir une configuration pour créer un nouveau connecteur.

1. Les nouvelles configurations de connexion incluent :
   + Nom de connexion : nom unique de l'objet de AWS Glue connexion.
   + URL de l'instance : URL du point de terminaison de votre Snowflake compte existant.
   + Authentification — Spécifiez la configuration d'authentification AWS Glue utilisée pour se connecter au serveur de catalogue distant. AWS Glue prend en charge les deux OAuth2 et l'authentification personnalisée.
   + URL du jeton : spécifiez l'URL du fournisseur d'identité du catalogue distant.
   + OAuth2 ID client — Spécifiez l'ID client des OAuth2 informations d'identification associées à votre catalogue distant.
   + Secret — Stockez et utilisez OAuth2 le secret du client en utilisant AWS Secrets Manager ou entrez la valeur du secret dans la zone de texte. Lorsque vous entrez le secret manuellement dans la console, AWS Glue crée le secret en votre nom.
   + Étendue de l'URL du jeton : spécifiez l' OAuth étendue de l'authentification.
   + Filtre de boîtier de catalogue : choisissez d'importer les objets en minuscules ou en majuscules de votre catalogue distant vers Data Catalog.

1. Créez un rôle IAM que les responsables du service Lake Formation AWS Glue et les responsables du service Lake Formation pourront utiliser respectivement pour accéder aux emplacements secrets AWS Secrets Manager et aux emplacements Amazon S3 des tables Iceberg distantes. Sélectionnez le rôle IAM dans le menu déroulant d'inscription. Reportez-vous aux étapes 2 et 3 de la section CLI suivante pour plus de détails sur la politique IAM.

1. Sélectionnez Tester la connexion pour vérifier si les propriétés de votre connexion et l'accès au rôle IAM sont correctement configurés.

1. Sélectionnez **Suivant** pour vérifier vos paramètres.

1. Sélectionnez **Créer un catalogue** sur la page de révision.

### Utilisation de l’interface de ligne de commande (CLI)
<a name="snowflake-federation-cli"></a>

1. <a name="snowflake-step-1"></a>**Créez un AWS Secrets Manager secret**

   Le AWS Glue connecteur prend en charge deux types d'authentification : **OAuth2**l'authentification **personnalisée**. Lorsque vous utilisez l' OAuth2 option, AWS Secrets Manager utilisez-la pour stocker le secret client du principal de Snowflake service. Vous utiliserez ce secret ultérieurement lors de la création de la AWS Glue connexion. Pour l'authentification personnalisée, utilisez-le AWS Secrets Manager pour stocker et récupérer le jeton d'accès.

   Dans l'exemple suivant, remplacez `your-snowflake-secret``client_secret`, `region` par vos propres informations.

   ```
   aws secretsmanager create-secret \
   --name your-snowflake-secret \
   --description "Snowflake secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret"
   }' \
   --region region
   ```
**Note**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`est un mot clé réservé AWS Glue utilisé pour faire référence à une valeur secrète du client dans le secret. Utilisez également le même mot clé lorsque vous créez le secret dans la console Lake Formation.

1. <a name="snowflake-step-2"></a>**Créez un rôle IAM qui permet à l'objet de AWS Glue connexion d'accéder au secret créé à l'étape précédente**

   L'objet de AWS Glue connexion a besoin d'accéder au AWS Secrets Manager secret lorsque vous l'utilisez AWS Secrets Manager pour stocker, récupérer et actualiser votre jeton OAuth secret. L'objet de AWS Glue connexion nécessite également un accès pour créer, décrire et utiliser les interfaces réseau Amazon VPC lorsque vous utilisez un point de terminaison Amazon VPC pour restreindre la connectivité à votre compte. Snowflake

   Créez une politique IAM et associez-la à un rôle IAM. Ajoutez le principal de AWS Glue service à la politique de confiance.

   Dans l'exemple suivant, remplacez `your-secrets-manager-ARN``your-vpc-id`, et `your-subnet-id1` par vos propres informations.  
**Example Stratégie IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "your-secrets-manager-ARN"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"]
                   }
               }
           }
       ]
   }
   ```  
**Example Stratégie d’approbation**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="snowflake-step-3"></a>**Créez une politique IAM qui donne à Lake Formation un accès en lecture à l'emplacement Amazon S3 du catalogue**

   En tant que propriétaire d'un catalogue fédéré dans Data Catalog, vous utilisez Lake Formation pour accorder un accès grossier aux tables, un accès fin (au niveau des colonnes, des lignes et au niveau des cellules) et un accès basé sur des balises à vos équipes chargées des données. Lake Formation utilise un rôle IAM qui lui permet d'accéder aux emplacements Amazon S3 sous-jacents de vos tables Iceberg distantes. Cet accès permet à Lake Formation de vendre des identifiants d'accès délimités aux moteurs d'analyse interrogeant des tables distantes.

   Créez une politique IAM et attachez-la à un rôle IAM. Ajoutez le principal de service de Lake Formation à la politique de confiance des rôles.

   Dans l'exemple suivant, remplacez `amzn-s3-demo-bucketN` et `your-kms-key` par vos propres informations.  
**Example Stratégie IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket2/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1",
                   "arn:aws:s3:::amzn-s3-demo-bucket2"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "your-kms-key"
               ]
           }
       ]
   }
   ```  
**Example Stratégie d’approbation**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**Note**  
Lorsque vous utilisez la console Lake Formation pour créer un catalogue fédéré, la console utilise un seul rôle IAM auquel les deux politiques sont associées pour terminer la configuration.

1. <a name="snowflake-step-4"></a>**Création d'un objet AWS Glue de connexion**

   AWS Glue supports de connecteurs OAuth2 et méthodes d'authentification personnalisées. L'objet de connexion au catalogue de données prend en charge la `CATALOG_CASING_FILTER` configuration qui vous permet d'importer dans Data Catalog des objets en minuscules ou en majuscules de votre catalogue distant.

   L'exemple suivant utilise la configuration OAuth2 d'authentification pour créer une AWS Glue connexion. Remplacez `highlighted sections` par vos informations.

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "your-glue-connection-to-snowflake-account",
   "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "your-snowflake-account-URL",
       "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access",
       "CATALOG_CASING_FILTER": "LOWERCASE_ONLY"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "your-internal-or-external-token-server-url",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "our-client-id"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret"
   }
   }'
   ```

1. <a name="snowflake-step-5"></a>**Enregistrer AWS Glue la connexion en tant que ressource Lake Formation**

   À l'aide de l'objet de AWS Glue connexion (créé à l'étape 4) et du rôle IAM (créé à l'étape 3), vous pouvez désormais enregistrer l'objet de AWS Glue connexion en tant que ressource gérée par Lake Formation.

   Remplacez `your-glue-connector-arn` et `your-IAM-role-ARN-having-LF-access` par vos informations.

   ```
   aws lakeformation register-resource \
       --resource-arn your-glue-connector-arn \
       --role-arn your-IAM-role-ARN-having-LF-access \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="snowflake-step-6"></a>**Création d'un catalogue fédéré dans Data Catalog**

   Après avoir créé un objet de AWS Glue connexion et l'avoir enregistré auprès de Lake Formation, vous pouvez créer un catalogue fédéré dans le catalogue de données :

   Fournissez au catalogue fédéré un nom unique à`your-federated-catalog-name`, référencez le catalogue dans Snowflake at `catalog-name-in-Snowflake` et un nom de connexion d'entrée créé précédemment à`your-glue-connection-name`.

   ```
   aws glue create-catalog \
       --name your-federated-catalog-name \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": catalog-name-in-Snowflake",
           "ConnectionName": your-glue-connection-name"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## Considérations relatives à l'intégration avec Snowflake
<a name="snowflake-considerations"></a>
+ Lorsque vous déposez des ressources (telles que des bases de données et des tables)Snowflake, Lake Formation ne révoque pas automatiquement les autorisations accordées sur cette ressource fédérée. Pour supprimer les autorisations d'accès, vous devez révoquer explicitement les autorisations précédemment accordées sur la ressource fédérée à l'aide de Lake Formation.
+ Lorsque vous montez un catalogue distant avec `CATALOG_CASING_FILTER='UPPERCASE_ONLY'` configuration, les bases de données et les tables avec des identifiants en majuscules sont fédérées, mais pas les objets avec des identifiants en minuscules.
+ Vous pouvez réutiliser la même AWS Glue connexion pour créer plusieurs catalogues fédérés. La suppression d'un catalogue n'entraîne pas la suppression de la connexion associée. Pour supprimer une connexion, utilisez la `aws glue delete-connection` commande AWS CLI et assurez-vous que tous les catalogues associés sont d'abord supprimés.
+ Les espaces de noms imbriqués dans le Polaris catalogue ne sont pas pris en charge. En d'autres termes, la fédération de catalogues peut accéder aux Iceberg tables distantes qui suivent une notation `catalog.database.table` en 3 parties.

# Fédérer pour Databricks Unity Catalog
<a name="catalog-federation-databricks"></a>

AWS Glue Data Catalog se connecte à Databricks l'utilisation des OAuth2 informations d'identification d'un directeur de Databricks service. Ce mécanisme d'authentification permet d'accéder AWS Glue Data Catalog aux métadonnées de divers objets (tels que des catalogues, des bases de données et des tables) en Databricks Unity Catalog fonction des privilèges associés au principal de service. Pour garantir l'accès aux bons objets, il est essentiel d'accorder au principal du service les autorisations nécessaires Databricks pour lire les métadonnées de ces objets.

Ensuite, la fédération de catalogues permet de découvrir et d'interroger Iceberg les tables de votre catalogue Databricks Unity. Pour lire les tables delta, assurez-vous que Iceberg les métadonnées sont disponibles pour ces tables à l'aide deUniform. Suivez le Databricks didacticiel et la documentation pour créer le principal de service et les privilèges associés dans votre Databricks espace de travail.

## Conditions préalables
<a name="catalog-federation-databricks-prerequisites"></a>

Avant de créer un catalogue fédéré dans Data Catalog régi par Lake Formation, assurez-vous de disposer des autorisations suivantes :

Votre principal IAM (utilisateur ou rôle) doit disposer des autorisations suivantes :
+ **Permissions de Lake Formation** —`lakeformation:RegisterResource`, `lakeformation:DescribeResource`
+ **AWS Glue autorisations** — `glue:CreateConnection``glue:CreateCatalog`,`glue:GetConnection`, `glue:PassConnection`
+ **Autorisations du Gestionnaire de Secrets** —`secretsmanager:CreateSecret`, `secretsmanager:GetSecretValue`
+ **Autorisations IAM** —`iam:CreateRole`, `iam:AttachRolePolicy` `iam:PassRole`

Vous devez être un administrateur du lac de Lake Formation ou avoir l'`CREATE_CATALOG`autorisation d'accéder au catalogue de données

## Création d'un catalogue fédéré
<a name="catalog-federation-databricks-create"></a>

### Utilisation de la console
<a name="catalog-federation-databricks-console"></a>

1. Connectez-vous à la console et ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Choisissez la AWS région préférée dans la section supérieure droite de la page.

1. Dans le volet de navigation de gauche, choisissez Catalogues.

1. Choisissez **Créer un catalogue** pour ouvrir le **flux de travail de création de catalogue**.

1. Dans l'étape **Choisir une source de données**, Databricks sélectionnez l'une des options disponibles.

1. À l'étape **Définir les détails du catalogue**, vous fournissez trois informations : les détails du catalogue, les détails de connexion et les détails d'enregistrement.

1. Dans le conteneur des **détails du catalogue**, attribuez un nom unique à votre catalogue AWS Glue fédéré et entrez le nom du Databricks catalogue existant.

1. Dans le conteneur **des détails des connexions**, vous pouvez soit choisir une connexion existante à laquelle vous avez accès, soit fournir une configuration pour créer un nouveau connecteur.

1. Les nouvelles configurations de connexion incluent :
   + Nom de connexion : nom unique de l'objet de AWS Glue connexion.
   + URL de l'espace de travail : URL du point de terminaison de votre Databricks espace de travail existant.
   + Authentification — Spécifiez la configuration d'authentification AWS Glue utilisée pour se connecter au serveur de catalogue distant. AWS Glue prend en charge les deux OAuth2 et l'authentification personnalisée.
   + URL du jeton : spécifiez l'URL du fournisseur d'identité du catalogue distant.
   + OAuth2 ID client — Spécifiez l'ID client des OAuth2 informations d'identification associées à votre catalogue distant.
   + Secret — Stockez et utilisez OAuth2 le secret du client en utilisant AWS Secrets Manager ou entrez la valeur du secret dans la zone de texte. Lorsque vous entrez le secret manuellement dans la console, AWS Glue crée le secret en votre nom.
   + Étendue de l'URL du jeton : spécifiez l' OAuth étendue de l'authentification.

1. Créez un rôle IAM que les responsables du service Lake Formation AWS Glue et les responsables du service Lake Formation peuvent utiliser pour accéder respectivement aux emplacements secrets et Amazon S3 des Iceberg tables distantes. Sélectionnez le rôle IAM dans le menu déroulant d'inscription. Reportez-vous aux étapes 2 et 3 de la section CLI suivante pour plus de détails sur la politique IAM.

1. Sélectionnez Tester la connexion pour vérifier si les propriétés de votre connexion et l'accès au rôle IAM sont correctement configurés. La fonctionnalité de test de connexion n'est pas disponible lors de la connexion à Databricks l'aide d'Amazon VPC.

1. Sélectionnez **Suivant** pour vérifier vos paramètres.

1. Sélectionnez **Créer un catalogue** sur la page de révision.

### Utilisation de l’interface de ligne de commande (CLI)
<a name="catalog-federation-databricks-cli"></a>

1. <a name="databricks-step-1"></a>**Créez un AWS Secrets Manager secret**

   Le AWS Glue connecteur prend en charge deux types d'authentification : **OAuth2**l'authentification **personnalisée**. Lorsque vous utilisez l' OAuth2 option, AWS Secrets Manager utilisez-la pour stocker le secret client du principal de Databricks service. Vous utiliserez ce secret ultérieurement lors de la création de la AWS Glue connexion. Pour l'authentification personnalisée, utilisez-le AWS Secrets Manager pour stocker et récupérer le jeton d'accès.

   Dans l'exemple suivant, remplacez `<databricks-secret>``<client_secret>`, `<region>` par vos propres informations.

   ```
   aws secretsmanager create-secret \
   --name <databricks-secret> \
   --description "Databricks secret" \
   --secret-string '{
   "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<client_secret>"
   }' \
   --region <region>
   ```
**Note**  
`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`est un mot clé réservé AWS Glue utilisé pour faire référence à une valeur secrète du client dans le secret. Utilisez également le même mot clé lorsque vous créez le secret dans la console Lake Formation. 

1. <a name="databricks-step-2"></a>**Créez un rôle IAM qui permet à l'objet de AWS Glue connexion d'accéder au secret créé à l'étape précédente**

   L'objet de AWS Glue connexion a besoin d'accéder au AWS Secrets Manager secret lorsque vous l'utilisez AWS Secrets Manager pour stocker, récupérer et actualiser votre jeton OAuth secret. L'objet de AWS Glue connexion nécessite également un accès pour créer, décrire et utiliser les interfaces réseau Amazon VPC lorsque vous utilisez un point de terminaison Amazon VPC pour restreindre la connectivité à votre espace de travail. Databricks

   Créez une politique IAM et associez-la à un rôle IAM. Ajoutez le principal de AWS Glue service à la politique de confiance.

   Dans l'exemple suivant, remplacez `<your-secrets-manager-ARN>``<your-vpc-id>`, et `<your-subnet-id1>` par vos propres informations.  
**Example Stratégie IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "<your-secrets-manager-ARN>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnEquals": {
                       "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/<your-vpc-id>",
                       "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/<your-subnet-id1>"]
                   }
               }
           }
       ]
   }
   ```  
**Example Stratégie d’approbation**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "glue.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. <a name="databricks-step-3"></a>**Créez une politique IAM qui donne à Lake Formation un accès en lecture à l'emplacement Amazon S3 du catalogue**

   En tant que propriétaire d'un catalogue fédéré dans Data Catalog, vous utilisez Lake Formation pour accorder un accès grossier aux tables, un accès fin (au niveau des colonnes, des lignes et au niveau des cellules) et un accès basé sur des balises à vos équipes chargées des données. Lake Formation utilise un rôle IAM qui lui permet d'accéder aux emplacements Amazon S3 sous-jacents de vos tables Iceberg distantes. Cet accès permet à Lake Formation de vendre des identifiants d'accès délimités aux moteurs d'analyse interrogeant des tables distantes.

   Créez une politique IAM et attachez-la à un rôle IAM. Ajoutez le principal de service Lake Formation à la politique de confiance des rôles IAM.

   Dans l'exemple suivant, remplacez `<your-s3-bucket-N>` et `<your-kms-key>` par vos propres informations.  
**Example Stratégie IAM**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>/*",
                   "arn:aws:s3:::<your-s3-bucket-2>/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::<your-s3-bucket-1>",
                   "arn:aws:s3:::<your-s3-bucket-2>"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:Encrypt"
               ],
               "Resource": [
                   "<your-kms-key>"
               ]
           }
       ]
   }
   ```  
**Example Stratégie d’approbation**  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "",
           "Effect": "Allow",
           "Principal": {
               "Service": "lakeformation.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```
**Note**  
Lorsque vous utilisez la console Lake Formation pour créer un catalogue fédéré, la console utilise un seul rôle IAM auquel les deux politiques sont associées pour terminer la configuration.

1. <a name="databricks-step-4"></a>**Création d'un objet AWS Glue de connexion**

   Data Catalog prend en charge ConnectionType `DATABRICKSICEBERGRESTCATALOG` : pour connecter Data Catalog à. Databricks Ce AWS Glue connecteur prend en charge OAuth2 les méthodes d'authentification personnalisées.

   L'exemple suivant utilise la configuration OAuth2 d'authentification pour créer une AWS Glue connexion. Remplacez `highlighed sections` par vos informations.

   ```
   aws glue create-connection \
       --connection-input '{
   "Name": "<your-glue-connection-to-databricks-unity-account>",
   "ConnectionType": "DATABRICKSICEBERGRESTCATALOG",
   "ConnectionProperties": {
       "INSTANCE_URL": "<your-databricks-workspace-catalog-URL>",
       "ROLE_ARN": "<your-IAM-role-for-secrets-and-VPC-access>"
   },
   "AuthenticationConfiguration": {
       "AuthenticationType": "OAUTH2",
       "OAuth2Properties": {
           "OAuth2GrantType": "CLIENT_CREDENTIALS",
           "TokenUrl": "<your-internal-or-external-token-server-url>",
           "OAuth2ClientApplication": {
               "UserManagedClientApplicationClientId": "<your-client-id>"
           },
           "TokenUrlParametersMap": {
               "scope": "all-apis"
           }
       },
       "SecretArn": "arn:aws:secretsmanager:<aws-region>:<your-aws-account-id>:secret:<databricks-secret>"
   }
   }'
   ```

1. <a name="databricks-step-5"></a>**Enregistrer AWS Glue la connexion en tant que ressource Lake Formation**

   À l'aide de l'objet de AWS Glue connexion (créé à l'étape 4) et du rôle IAM (créé à l'étape 3), vous pouvez désormais enregistrer l'objet de AWS Glue connexion en tant que ressource gérée par Lake Formation.

   Remplacez `<your-glue-connector-arn>` et `<your-IAM-role-ARN-having-LF-access>` par vos informations.

   ```
   aws lakeformation register-resource \
       --resource-arn <your-glue-connector-arn> \
       --role-arn <your-IAM-role-ARN-having-LF-access> \
       --with-federation \
       --with-privileged-access
   ```

1. <a name="databricks-step-6"></a>**Création d'un catalogue fédéré dans Data Catalog**

   Après avoir créé un objet de AWS Glue connexion et l'avoir enregistré auprès de Lake Formation, vous pouvez créer un catalogue fédéré dans le catalogue de données :

   Fournissez au catalogue fédéré un nom unique à`<your-federated-catalog-name>`, référencez le catalogue dans Databricks at `"<catalog-name-in-Databricks>` et un nom de connexion d'entrée créé précédemment à`"<your-glue-connection-name>`.

   ```
   aws glue create-catalog \
       --name <your-federated-catalog-name> \
       --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "<catalog-name-in-Databricks>",
           "ConnectionName": "<your-glue-connection-name>"
       },
       "CreateTableDefaultPermissions": [],
       "CreateDatabaseDefaultPermissions": []
   }'
   ```

## Considérations relatives à l'intégration avec Databricks
<a name="databricks-considerations"></a>
+ Lorsque vous déposez des ressources (telles que des bases de données et des tables) dans leDatabricks, Lake Formation ne révoque pas automatiquement les autorisations accordées sur cette ressource fédérée. Pour supprimer les autorisations d'accès, vous devez révoquer explicitement les autorisations précédemment accordées sur la ressource fédérée à l'aide de Lake Formation.
+ Vous pouvez interroger les tables Iceberg stockées dans Amazon S3 à l'aide de cette intégration. Lorsque vous utilisez un autre format de table ou un autre stockage d'objets, vous pouvez fédérer des métadonnées dans des catalogues distants AWS Glue et répertorier ses bases de données et ses tables, mais les opérations de requête de ce type `SELECT ColumnFoo from TableBar` échoueront lors de la requête avec l'erreur « Impossible de lire la table ». Apache Iceberg L'emplacement de stockage des objets n'est pas pris en charge. '
+ Vous pouvez réutiliser la même AWS Glue connexion pour créer plusieurs catalogues fédérés. La suppression d'un catalogue n'entraîne pas la suppression de l'objet de connexion associé. Pour supprimer un objet de connexion, utilisez la `aws glue delete-connection` commande AWS CLI et assurez-vous que tous les catalogues associés sont d'abord supprimés.

# Intégrer les données Amazon Redshift dans AWS Glue Data Catalog
<a name="managing-namespaces-datacatalog"></a>

Vous pouvez gérer les données analytiques dans les entrepôts de données Amazon Redshift dans AWS Glue Data Catalog le (catalogue de données) et unifier les lacs de données Amazon S3 et les entrepôts de données Amazon Redshift. Amazon Redshift est un service d'entrepôt de données entièrement géré de plusieurs pétaoctets dans le cloud. AWS Un entrepôt des données Amazon Redshift est un ensemble de ressources informatiques appelées *nœuds*, qui sont organisées en un groupe appelé *cluster*. Chaque cluster exécute un moteur Amazon Redshift et contient une ou plusieurs bases de données.

Dans Amazon Redshift, vous pouvez créer des clusters provisionnés par Amazon Redshift et des espaces de noms sans serveur, et les enregistrer dans le catalogue de données. Vous pouvez ainsi unifier les données dans le stockage géré Amazon Redshift (RMS) et les compartiments Amazon S3, et accéder aux données à partir de moteurs d'analyse compatibles avec Apache Iceberg.

En enregistrant des espaces de noms et des clusters, vous pouvez donner accès aux données sans avoir à les copier ou à les déplacer. Pour plus d'informations sur l'enregistrement de clusters et d'espaces de noms dans Amazon Redshift, [consultez la section Enregistrement de clusters et d'espaces de noms Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/iceberg-integration-register.html) auprès du. AWS Glue Data Catalog

 Dans Amazon Redshift, vous pouvez partager des données par le biais de partages de données ou en enregistrant des espaces de noms et des clusters auprès de Data Catalog. Dans le cas des partages de données, qui fonctionnent au niveau de chaque objet de base de données, vous devez activer le partage pour chaque table ou vue. En revanche, la publication d'espaces de noms fonctionne au niveau du cluster ou de l'espace de noms. Lorsque vous enregistrez un cluster ou un espace de noms dans le catalogue de données, toutes les bases de données et les tables qu'il contient sont automatiquement partagées, sans que vous ayez à configurer le partage pour des objets individuels. 

Dans le catalogue de données, vous pouvez créer un catalogue fédéré pour chaque espace de noms ou cluster. Un catalogue est appelé *catalogue fédéré* lorsqu'il pointe vers une entité extérieure au catalogue de données. Les tables et les vues de l'espace de noms Amazon Redshift sont répertoriées sous forme de tables individuelles dans le catalogue de données. Vous pouvez partager des bases de données et des tables du catalogue fédéré avec des principaux IAM et des utilisateurs SAML sélectionnés au sein du même compte ou d'un autre compte avec Lake Formation. Vous pouvez également inclure des expressions de filtre de ligne et de colonne pour restreindre l'accès à certaines données. Pour de plus amples informations, veuillez consulter [Filtrage des données et sécurité au niveau des cellules dans Lake Formation](data-filtering.md). 

Le catalogue de données prend en charge une hiérarchie de métadonnées à trois niveaux comprenant des catalogues, des bases de données et des tables (et des vues). Lorsque vous enregistrez un espace de noms dans le catalogue de données, la hiérarchie de données Amazon Redshift est mappée à la hiérarchie à 3 niveaux du catalogue de données comme suit :
+ L'espace de noms Amazon Redshift devient un catalogue à plusieurs niveaux dans le catalogue de données.
+ La base de données Amazon Redshift associée est enregistrée en tant que catalogue dans le catalogue de données.
+ Le schéma Amazon Redshift devient une base de données dans le catalogue de données.
+ La table Amazon Redshift devient une table dans le catalogue de données.

![\[Affiche le mappage au niveau du catalogue entre l'espace de noms Amazon Redshift et le catalogue de données.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/rs-catalog-mapping.png)


Grâce à cette hiérarchie de métadonnées à trois niveaux, vous pouvez accéder aux tables Amazon Redshift en utilisant la notation en trois parties « catalog1/catalog2.database.table » dans le catalogue de données. Les équipes chargées des données peuvent également conserver la même organisation qu'Amazon Redshift utilise pour organiser les tables au sein du compte Data Catalog. 

Dans Lake Formation, vous pouvez gérer en toute sécurité les données d'Amazon Redshift à l'aide d'un contrôle d'accès précis pour les ressources du catalogue de données. Grâce à cette intégration, vous pouvez gérer, sécuriser et interroger des données analytiques à partir d'un catalogue unique doté d'un mécanisme de contrôle d'accès commun.

Pour connaître les limitations, veuillez consulter [Limites liées à l'intégration des données de l'entrepôt de données Amazon Redshift dans le AWS Glue Data Catalog](notes-ns-catalog.md).

**Topics**
+ [Principaux avantages](#namespace-publish-benefits)
+ [Rôles et responsabilités](#namespace-roles-responsibilities)
+ [Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md)
+ [Création de catalogues fédérés Amazon Redshift](create-ns-catalog.md)
+ [Affichage des objets du catalogue](view-ns-catalog-resources.md)
+ [Mettre à jour un catalogue fédéré](update-fed-catalog-steps.md)
+ [Accès à un catalogue fédéré partagé](catalog-resource-link.md)
+ [Supprimer un catalogue fédéré](delete-rs-fed-catalog.md)
+ [Interrogation de catalogues fédérés](query-redshift-fed-catalog.md)
+ [Ressources supplémentaires](additional-resources-byod.md)

## Principaux avantages
<a name="namespace-publish-benefits"></a>

 L'enregistrement de clusters et d'espaces de noms Amazon Redshift dans les AWS Glue Data Catalog lacs de données Amazon S3 et les entrepôts de données Amazon Redshift et leur unification offrent les avantages suivants : 
+ **Expérience d'interrogation uniforme** : interrogez vos données gérées par Amazon Redshift et les données contenues dans les compartiments Amazon S3 à l'aide de n'importe quel moteur de requête compatible avec Apache Iceberg, tel qu'Amazon EMR Serverless et Amazon Athena, sans avoir à déplacer ou à copier des données. 
+ **Accès aux données cohérent entre les services** : vous n'avez pas besoin de mettre à jour les noms des bases de données et des tables dans vos pipelines de données lorsque vous accédez aux mêmes sources de données fédérées à partir de différents services AWS d'analyse, car les sources de données sont enregistrées dans le catalogue de données. 
+ **Contrôle d'accès détaillé** — Vous pouvez appliquer des autorisations de Lake Formation pour gérer l'accès aux sources de données fédérées à l'aide d'autorisations de contrôle d'accès détaillées. 

## Rôles et responsabilités
<a name="namespace-roles-responsibilities"></a>


|  |  | 
| --- |--- |
| Rôle | Responsabilité | 
|  Administrateur du cluster de producteurs Amazon Redshift  |  Enregistre le cluster ou l'espace de noms dans le catalogue de données.  | 
| Administrateur du lac de données de Lake Formation  |  Accepte l'invitation du cluster ou de l'espace de noms, crée des catalogues fédérés et accorde l'accès aux catalogues fédérés à d'autres principaux.  | 
| Administrateur en lecture seule de Lake Formation | Découvre le catalogue fédéré, interroge les tables Amazon Redshift dans le catalogue fédéré. | 
| Rôle de transfert de données  |  Amazon Redshift se charge en votre nom de transférer les données vers et depuis le compartiment Amazon S3.  | 

Voici les étapes de haut niveau permettant aux utilisateurs d'accéder à un espace de noms Amazon Redshift :

1.  Dans Amazon Redshift, l'administrateur du cluster de producteurs enregistre un cluster ou un espace de noms dans le catalogue de données. 

1. L'administrateur du lac de données accepte l'invitation à l'espace de noms de l'administrateur du cluster de producteurs Amazon Redshift et crée un catalogue fédéré dans le catalogue de données.

   Une fois cette étape terminée, vous pouvez gérer le catalogue d'espaces de noms Amazon Redshift dans le catalogue de données. 

1. Accordez des autorisations aux utilisateurs sur les catalogues, les bases de données et les tables. Vous pouvez partager l'intégralité du catalogue d'espaces de noms ou un sous-ensemble de tables avec des utilisateurs du même compte ou d'un autre compte. 

# Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog
<a name="redshift-ns-prereqs"></a>

1. Création d'un administrateur de lac de données : créez un rôle IAM autorisé à accepter l'invitation d'espace de noms, à créer les AWS Glue Data Catalog objets (catalogues, bases de données, tables/vues) et à accorder les autorisations de Lake Formation aux autres utilisateurs.

   Pour step-by-step obtenir des instructions sur la création d'un administrateur de lac de données, consultez[Création d'un administrateur de lac de données](initial-lf-config.md#create-data-lake-admin). 

1. Mettez à jour les autorisations d'administrateur du lac de données.

    Outre les autorisations d'administrateur du lac de données, l'administrateur du lac de données a besoin des autorisations suivantes pour accepter une invitation à un espace de noms Amazon Redshift dans Lake Formation, créer ou mettre à jour les ressources du catalogue de données et autoriser l'accès au lac de données :

------
#### [ JSON ]

****  

   ```
       {
       "Version":"2012-10-17",		 	 	 
       "Id": "glue-enable-datalake-access",
       "Statement": [{
               "Effect": "Allow",
               "Action": [
                   "redshift:AssociateDataShareConsumer",
                   "redshift:DescribeDataSharesForConsumer",
                   "redshift:DescribeDataShares",
                   "redshift-serverless:CreateNamespace",
                   "redshift-serverless:CreateWorkgroup",
                   "redshift-serverless:DeleteNamespace",
                   "redshift-serverless:DeleteWorkgroup",
                   "ec2:DescribeAccountAttributes",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeAvailabilityZones",
                   "s3:createBucket",
                   "s3:deleteBucket",
                   "s3:putBucketPolicy",
                   "s3:putEncryptionConfiguration",
                   "s3:putLifecycleConfiguration",
                   "s3:putBucketVersioning",
                   "iam:CreateRole"
               ],
               "Resource": "*"
           },
           {
               "Action": [
                   "iam:PassRole"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:iam::*:role/data transfer role name",
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": [
                           "glue.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Si le rôle IAM utilisé pour créer des catalogues fédérés n'est pas un administrateur de data lake, vous devez lui accorder l'autorisation. `Create catalog`

**Pour créer des créateurs de catalogues**

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

   1. Choisissez **Rôles et tâches administratifs** sous **Administration**.

   1. Choisissez **Accorder**.

   1. Sur l'écran **Accorder des autorisations**, choisissez un utilisateur ou un rôle IAM.

   1. Sélectionnez **Créer une autorisation de catalogue**.

   1. Facultativement, vous pouvez également accorder une autorisation de **création de catalogue** pouvant être accordée. L'autorisation pouvant être accordée permet au créateur du catalogue d'accorder l'`Create catalog`autorisation à d'autres personnes principales.

   1. Choisissez **Accorder**.

   AWS CLI exemple d'octroi d'autorisations pour créer un catalogue fédéré. 

   ```
   aws lakeformation grant-permissions \
   --cli-input-json \
   '{
       "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"
       },
       "Resource": {
           "Catalog": {
           }
       },
       "Permissions": [
           "CREATE_CATALOG",
           "DESCRIBE"
       ]
   }'
   ```

1. Créez un rôle d'administrateur en lecture seule pour découvrir les catalogues fédérés Amazon Redshift dans le catalogue de données d'Amazon Redshift Query Editor v2.

   Pour interroger les tables Amazon Redshift dans le catalogue fédéré à partir d'Amazon Redshift Query Editor v2, assurez-vous que la politique de rôle d'administrateur en lecture seule contient l'ARN du rôle lié au service Amazon Redshift. `AWSServiceRoleForRedshift` 

   ```
    aws lakeformation put-data-lake-settings 
           --region us-east-1 \
           --data-lake-settings \
    '{
      "DataLakeAdmins": [{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"}],
      "ReadOnlyAdmins":[{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift"}],
      "CreateDatabaseDefaultPermissions":[],
      "CreateTableDefaultPermissions":[],
      "Parameters":{"CROSS_ACCOUNT_VERSION":"4","SET_CONTEXT":"TRUE"}
     }'
   ```

1.  Créez un rôle de transfert de données qu'Amazon Redshift peut assumer en votre nom pour transférer des données vers et depuis le compartiment Amazon S3. 

   Lorsque vous activez l'accès aux lacs de données pour les moteurs de requêtes compatibles Apache Iceberg tels qu'Athena, Amazon EMR ou Amazon EC2 pour accéder aux ressources Amazon Redshift du catalogue de données, vous devez créer un rôle IAM doté des autorisations requises pour effectuer le transfert de données vers et depuis le compartiment Amazon S3. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "glue-enable-datalake-access",
       "Statement": [{
         "Sid": "DataTransferRolePolicy",
           "Effect": "Allow",
           "Action": [ "glue:GetCatalog",
                       "glue:GetDatabase",
                       "kms:GenerateDataKey",
                       "kms:Decrypt"],
           "Resource": "*"
       }
       ]
   }
   ```

------

1.  Ajoutez la politique de confiance suivante au rôle de transfert de données pour que AWS Glue les services Amazon Redshift assument le rôle de transfert de données vers et depuis le compartiment Amazon S3. 

------
#### [ JSON ]

****  

   ```
             {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
           "Service": [
           "redshift.amazonaws.com",
           "glue.amazonaws.com"
           ]
       },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

1.  Ajoutez la politique de clé suivante à la AWS KMS clé si vous utilisez une clé gérée par le client pour chiffrer les données dans le cluster/espace de noms Amazon Redshift. Remplacez le numéro de compte par un numéro de AWS compte valide et spécifiez le nom du rôle de transfert de données. Par défaut, les données du cluster Amazon Redshift sont chiffrées à l'aide d'une clé KMS. Lake Formation propose une option permettant de créer votre clé KMS personnalisée pour le chiffrement. Si vous utilisez une clé gérée par le client, vous devez ajouter des politiques clés spécifiques à la clé. 

   Pour plus d’informations sur la gestion des autorisations d’une clé gérée par le client, consultez [Clés gérées par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "auto-redshift-3",
       "Statement": [{
               "Sid": "RedshiftAllowAccessPolicy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "kms:CallerAccount": "111122223333",
                       "kms:ViaService": "redshift.us-east-1.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "RedshiftServerlessAllowAccessPolicy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "*"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "kms:CallerAccount": "111122223333",
                       "kms:ViaService": "redshift-serverless.us-east-1.amazonaws.com"
                   }
               }
           },
           {
               "Sid": "DirectMetadataAccess",
               "Effect": "Allow",
               "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "kms:Describe*",
                   "kms:Get*",
                   "kms:List*",
                   "kms:RevokeGrant"
               ],
               "Resource": "*"
           },
           {
               "Sid": "GenerateDataKeyDecryptDataTransferRole",
               "Effect": "Allow",
               "Principal": {
               "AWS": "arn:aws:iam::111122223333:role/data-transfer-role-name"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                   "kms:ViaService": "s3.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

# Création de catalogues fédérés Amazon Redshift
<a name="create-ns-catalog"></a>

Cette rubrique décrit les étapes à suivre pour accepter une invitation de cluster ou d'espace de noms, créer un catalogue fédéré à plusieurs niveaux et accorder des autorisations à d'autres principaux. Vous pouvez effectuer ces tâches à l'aide de la console Lake Formation, du AWS Command Line Interface (AWS CLI) ou du APIs/SDKs. Les exemples présentés dans cette rubrique présentent le cluster/espace de noms du producteur, le catalogue de données et le consommateur de données dans le même compte.

Pour en savoir plus sur les fonctionnalités multicomptes de Lake Formation, voir[Partage de données entre comptes dans Lake Formation](cross-account-permissions.md).

**Pour gérer un espace de noms Amazon Redshift dans le catalogue de données**

1. Passez en revue une invitation à un espace de noms et acceptez-la.

------
#### [ Console ]

   1. Connectez-vous à la console Lake Formation en tant qu'administrateur de lac de données à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Accédez à la page **Catalogues** sous **Catalogue de données**. 

   1. Passez en revue l'invitation à l'espace de noms à laquelle vous êtes autorisé à accéder. La colonne **Status** indique votre statut de participation actuel pour l'espace de noms. Le statut **Non accepté** indique que vous avez été ajouté à l'espace de noms, mais que vous ne l'avez pas encore accepté ou que vous avez rejeté l'invitation.   
![\[La page des catalogues avec les invitations en attente.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-details.png)

   1. Pour répondre à une invitation à un espace de noms ou à un cluster, sélectionnez le nom de l'invitation, puis sélectionnez **Vérifier l'invitation**. Dans **Accepter ou rejeter l'invitation**, passez en revue les détails de l'invitation. Choisissez **Accepter** pour accepter l'invitation ou **Refuser** pour refuser l'invitation. Vous n'avez pas accès à l'espace de noms si vous rejetez l'invitation.

------
#### [ AWS CLI ]

   Les exemples suivants montrent comment afficher, accepter et enregistrer l'invitation. Remplacez l' Compte AWS identifiant par un Compte AWS identifiant valide. Remplacez le `data-share-arn` par le véritable Amazon Resource Name (ARN) qui fait référence à l'espace de noms.

   1. Afficher une invitation en attente.

      ```
      aws redshift describe-data-shares \
       --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
      ```

   1. Acceptez une invitation.

      ```
       aws redshift associate-data-share-consumer \
       --data-share-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace' \
       --consumer-arn 'arn:aws:glue:us-east-1:123456789012:catalog'
      ```

   1. Enregistrez le cluster ou l'espace de noms dans le compte Lake Formation. Utilisez l'opération [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)API pour enregistrer le partage de données dans Lake Formation. `DataShareArn`est le paramètre d'entrée pour`ResourceArn`.
**Note**  
Il s'agit d'une étape obligatoire.

      ```
      aws lakeformation register-resource \
       --resource-arn 'arn:aws:redshift:us-east-1:123456789012:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/ds_internal_namespace'
      ```

------

1. Créez un catalogue fédéré.

    Après avoir accepté une invitation, vous devez créer un catalogue fédéré dans le catalogue de données qui met en correspondance les objets de l'espace de noms Amazon Redshift avec le catalogue de données. Vous devez être un administrateur de lac de données, un utilisateur ou un rôle disposant des autorisations requises pour créer un catalogue. 

------
#### [ Console ]

   1. Après avoir accepté l'**invitation** à l'espace de noms, la page **Définir les détails du catalogue** s'affiche. 

   1. Sur la page **Définir les détails du catalogue**, entrez un nom unique pour le catalogue. Utilisez des minuscules pour les noms de catalogue. Les noms de catalogue doivent comporter une longueur inférieure ou égale à 255 caractères. Vous utilisez cet identifiant pour mapper l'espace de noms en interne dans la hiérarchie des métadonnées (Catalogid.DBName.Schema.Table). 

   1.  Entrez une description pour le catalogue. La description doit comporter une longueur inférieure ou égale à 2 048 caractères. 

   1. Cochez ensuite la case **Accéder à ce catalogue depuis des moteurs compatibles Iceberg** pour permettre l'accès aux ressources Amazon Redshift à l'aide de moteurs d'analyse compatibles Apache Iceberg tels qu'Athena et Apache Spark sur Amazon EMR.

      Il n’est pas nécessaire d’activer l’accès au lac de données pour accéder aux catalogues fédérés à l’aide d’Amazon Redshift.  
![\[La page de création du catalogue avec les options d'activation de l'accès.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-access.png)

   1. Pour permettre à ces moteurs de requêtes de lire et d'écrire dans les espaces de noms Amazon Redshift, AWS Glue créez un cluster Amazon Redshift géré avec les ressources de calcul et de stockage nécessaires pour effectuer des opérations de lecture et d'écriture sans impact sur les charges de travail de l'entrepôt de données Amazon Redshift.

      Vous devez également fournir un rôle IAM avec les autorisations requises pour transférer des données vers et depuis le compartiment Amazon S3. 

   1. Par défaut, les données du cluster Amazon Redshift sont chiffrées à l'aide d'une clé AWS gérée. Lake Formation propose une option permettant de créer votre clé KMS personnalisée pour le chiffrement. Si vous utilisez une clé gérée par le client, vous devez ajouter des politiques clés spécifiques à la clé. 

       Choisissez l'option **Personnaliser les paramètres de chiffrement** si vous utilisez une clé gérée par le client pour chiffrer les données du cluster/espace de noms Amazon Redshift. Pour utiliser une clé personnalisée, vous devez ajouter une stratégie de clé gérée personnalisée supplémentaire à votre clé KMS. Pour de plus amples informations, veuillez consulter [Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md).

------
#### [ AWS CLI ]

    Utilisez l'exemple de code suivant pour créer un catalogue avec les données Amazon Redshift publiées dans le catalogue de données à l'aide du. AWS CLI

   ```
   aws glue create-catalog 
   --cli-input-json \
   '{
       "Name": "nscatalog", 
       "CatalogInput": {
           "Description": "Redshift federated catalog",
           "CreateDatabaseDefaultPermissions" : [],
           "CreateTableDefaultPermissions": [],
           "FederatedCatalog": {
               "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace",
               "ConnectionName": "aws:redshift"
           },
           "CatalogProperties": {
             "DataLakeAccessProperties" : {
               "DataLakeAccess" : true,
               "DataTransferRole" : "arn:aws:iam::123456789012:role/DataTransferRole"
            } 
          }
       }
   }'
   ```

------

1. Accordez des autorisations aux utilisateurs de votre compte ou de comptes externes.

------
#### [ AWS Management Console ]

   1. Choisissez **Next** pour accorder des autorisations à d'autres utilisateurs sur les catalogues, bases de données et tables partagés. 

   1.  Sur l'écran **Ajouter des autorisations**, choisissez les principes et les types d'autorisations à accorder.   
![\[La page des autorisations du catalogue avec le type principal et les options de subvention.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-permissions.png)

      1.  Dans la section **Principaux**, choisissez un type de principal, puis spécifiez les principaux auxquels octroyer des autorisations. 
         + **Utilisateurs et rôles IAM** : choisissez un ou plusieurs utilisateurs ou rôles dans la liste des utilisateurs et des rôles IAM.
         + **Utilisateurs et groupes SAML** : pour le SAML et Amazon Quick les utilisateurs et groupes, entrez un ou plusieurs Amazon Resource Names (ARNs) pour les utilisateurs ou les groupes fédérés via SAML, ou pour les utilisateurs ou groupes ARNs Amazon Quick. Appuyez sur **Entrée** après chaque ARN.

           Pour plus d'informations sur la façon de créer les ARNs, voir les AWS CLI commandes AWS CLI d'octroi et de révocation. 
         + **Comptes externes** : pour AWS, AWS organisation ou directeur IAM, entrez un ou plusieurs AWS comptes, organisations IDs IDs, unités organisationnelles ou ARN valides pour l'utilisateur ou le rôle IAM. IDs Appuyez sur Entrée après chaque identifiant. Un identifiant d'organisation se compose de « o- » suivi de 10 à 32 lettres minuscules ou chiffres. L'identifiant d'une unité organisationnelle commence par « ou- » suivi de 4 à 32 lettres minuscules ou chiffres (identifiant de la racine contenant l'unité organisationnelle). Cette chaîne est suivie d'un deuxième tiret « - » et de 8 à 32 lettres minuscules ou chiffres supplémentaires. 

      1.  Dans la section **Autorisations**, sélectionnez les autorisations et les autorisations octroyables.

         Sous **Autorisations du catalogue**, sélectionnez une ou plusieurs autorisations à octroyer. Sous **Autorisations pouvant être accordées**, sélectionnez les autorisations que le bénéficiaire de la subvention peut accorder aux autres principaux de son compte. AWS Cette option n’est pas prise en charge lorsque vous octroyez des autorisations à un principal IAM à partir d’un compte externe. 

         Choisissez **Super user** pour accorder à l'utilisateur des autorisations illimitées sur les ressources (bases de données, tables, vues) du catalogue.

   1. Choisissez **Ajouter**.

------
#### [ AWS CLI ]

   Utilisez les exemples suivants pour accorder des autorisations de catalogue, de base de données et de table à l'aide de AWS CLI :
   + L'exemple suivant montre comment accorder des autorisations sur le catalogue fédéré.

     ```
     aws lakeformation grant-permissions
      --cli-input-cli-json \
        '{
              "Principal": {
                   "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
               },
               "Resource": {
                    "Catalog": {
                          "Id": "123456789012:nscatalog"
                     }
                 },
                 "Permissions": [
                        "DESCRIBE","CREATE_CATALOG"
                  ],
                 "PermissionsWithGrantOption": [
                  ]
         }'
     ```
   + Utilisez l'exemple suivant pour accorder des autorisations sur une base de données.

     ```
     aws lakeformation grant-permissions \
       --cli-input-json \
               '{
                   "Principal": {
                       "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
                   },
                   "Resource": {
                       "Database": {
                           "CatalogId": "123456789012:nscatalog/dev",
                           "Name": "public"
                       }
                   },
                   "Permissions": [
                       "ALL"
                   ]
               }'
     ```
   +  L'exemple suivant montre comment accorder des autorisations sur une table de la base de données Amazon Redshift. 

     ```
     aws lakeformation grant-permissions \
       --cli-input-json \
             '{
                 "Principal": {
                     "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:role/non-admin"
                 },
                 "Resource": {
                     "Table": {
                         "CatalogId": "123456789012:nscatalog2/dev",
                         "DatabaseName": "public",
                         "TableWildcard" : {}
                     }
                 },
                 "Permissions": [
                     "ALL"
                 ]
             }'
     ```

------

1. Choisissez **Next** pour consulter les détails du catalogue et créer un catalogue fédéré. Le catalogue fédéré nouvellement créé et les objets du catalogue apparaissent sur la page **Catalogues**. 

   Un catalogue fédéré Amazon Redshift est référencé avec. `catalogID = 123456789012:Redshift-federated catalog id`

# Affichage des objets du catalogue
<a name="view-ns-catalog-resources"></a>

 Après avoir créé le catalogue fédéré, vous pouvez afficher les objets du catalogue à l'aide de la console Lake Formation ou AWS CLI. 

------
#### [ AWS Management Console ]

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

1. Choisissez **Catalogues** sous Catalogue de données. 

1. Choisissez un catalogue fédéré dans la liste de la page **Catalogues**.

1.  La page de résumé du catalogue indique les objets du catalogue (bases de données et tables) pour lesquels vous avez des autorisations. L'onglet **Autorisations** indique les principaux IAM auxquels des autorisations ont été accordées sur ces objets. 

------
#### [ AWS CLI ]
+ L' AWS CLI exemple suivant montre comment demander le catalogue de niveau supérieur.

  ```
  aws glue get-catalog \
  --catalog-id 123456789012:nscatalog
  ```

  *Réponse*

  ```
  {
      "Catalog": {
          "CatalogId": "123456789012:nscatalog",
          "Name": "nscatalog",
          "ResourceArn": "arn:aws:glue:us-east-1:123456789012:catalog/nscatalog",
          "Description": "Redshift published Catalog",
          "CreateTime": "2024-09-05T14:49:16-07:00",
          "FederatedCatalog": {
              "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:b1234589-e823-4a14-ad8e-077085540a50/ds_internal_namespace",
              "ConnectionName": "aws:redshift"
          },
          "CatalogProperties": {
              "DataLakeAccessProperties": {
                  "DataLakeAccess": true,
                  "DataTransferRole": "arn:aws:iam::123456789012:role/DataTransferRole",
                  "KmsKey": "AWS_OWNED_KMS_KEY",
                  "ManagedWorkgroupName": "123456789012:nscatalog",
                  "ManagedWorkgroupStatus": "AVAILABLE",
                  "RedshiftDatabaseName": "dev"
              }
          },
          "CatalogIdentifier": "e2309c2c2fb048f1a3069dfdc1c7883e",
          "CreateTableDefaultPermissions": [],
          "CreateDatabaseDefaultPermissions": []
      }
  }
  ```
+ L'exemple suivant montre comment demander tous les catalogues du compte.

  ```
  aws glue get-catalogs \
    --recursive
  ```
+ L'exemple de demande suivant montre comment obtenir un catalogue Amazon Redshift au niveau de la base de données.

  ```
  aws glue get-catlog \
   --catalog-id 123456789012:namespace catalog name/redshift database name
  ```
+ L'exemple de demande suivant montre comment obtenir les bases de données dans le catalogue au niveau de la base de données Amazon Redshift.

  ```
  aws glue get-databases \
  --catalog-id 123456789012:namespace catalog name/redshift database name
  ```
+  L'exemple de demande suivant montre comment obtenir une table Amazon Redshift dans le catalogue. 

  ```
  aws glue get-table \
    --catalog-id 123456789012:parent catalog name/redshift database \
    --database-name redshift schema name \
    --name table name
  ```
+  L'exemple suivant montre comment obtenir toutes les tables de la base de données Amazon Redshift. 

  ```
  aws glue get-tables \
   --catalog-id 123456789012:namespace catalog name/redshift database name \
   --database-name RS schema name
  ```

------

# Mettre à jour un catalogue fédéré
<a name="update-fed-catalog-steps"></a>

Vous pouvez mettre à jour un catalogue fédéré Amazon Redshift dans le catalogue de données à l'aide de la console Lake Formation AWS CLI ou de l'opération API. [UpdateCatalog](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateCatalog.html)

------
#### [ AWS Management Console ]

Suivez ces étapes pour mettre à jour votre catalogue fédéré à l'aide de la console Lake Formation.

1. Connectez-vous à la AWS Management Console console Lake Formation et ouvrez-la à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans le volet de navigation de gauche, sélectionnez **Catalogues** sous **Catalogue de données**.

1. Sur la page **Catalogues**, choisissez le catalogue fédéré Amazon Redshift que vous souhaitez mettre à jour.

1. Sous **Actions**, sélectionnez **Modifier**.

1. Sur l'écran **Définir les détails du catalogue**, dans la section **Accès depuis les moteurs**, sélectionnez **Accéder à ce catalogue depuis les moteurs compatibles Iceberg**. Si vous cochez cette option, l'accès au lac de données sera activé pour les moteurs de requêtes compatibles avec Apache Iceberg.

1. Créez ensuite un nouveau rôle IAM ou choisissez un rôle IAM existant dont la politique accorde des autorisations pour effectuer le transfert de données vers et depuis le compartiment Amazon S3.

   Pour plus d'informations sur les autorisations, consultez[Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md).

1. Par défaut, vos données dans le cluster Amazon Redshift sont chiffrées à l'aide d'un. Clé gérée par AWS Si vous choisissez de chiffrer les données à l'aide d'une clé gérée par le client, créez une clé KMS ou choisissez une clé existante dotée des autorisations définies dans la [Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md) section. 

1. Choisissez **Enregistrer**.

   Une fois l'opération terminée, la page des **détails du catalogue** affiche le nom du groupe de travail géré avec le statut « Succès ».

------
#### [ AWS CLI ]

Voici un exemple d'entrée `update-catalog` CLI avec l'accès au lac de données désactivé en définissant la valeur du `DataLakeAacess` paramètre comme`false`. 

```
aws glue update-catalog  --cli-input-json \
'{
    "Name": "nscatalog", 
    "CatalogInput": {
        "Description": "Redshift published catalog",
        "CreateDatabaseDefaultPermissions" : [],
        "CreateTableDefaultPermissions": [],
        "FederatedCatalog": {
            "Identifier": "arn:aws:redshift:us-east-1:123456789012:datashare:11524d7f-f56d-45fe-83f7-d7bb0a4d6d71/ds_internal_namespace",
            "ConnectionName": "aws:redshift"
        },
        "CatalogProperties": {
          "DataLakeAccessProperties" : {
            "DataLakeAccess" : false
        } 
       }
    }
}'
```

------

# Accès à un catalogue fédéré partagé
<a name="catalog-resource-link"></a>

 AWS Lake Formation les fonctionnalités inter-comptes permettent aux utilisateurs de partager en toute sécurité des lacs de données distribués entre plusieurs Compte AWS entreprises ou AWS organisations, ou directement avec les responsables IAM d'un autre compte, offrant ainsi un accès détaillé aux métadonnées et aux données sous-jacentes. 

Lake Formation utilise le service AWS Resource Access Manager (AWS RAM) pour faciliter le partage des ressources. Lorsque vous partagez une ressource de catalogue avec un autre compte, AWS RAM envoie une invitation au compte bénéficiaire pour qu'il accepte ou rejette la subvention de ressource.

Les services analytiques intégrés tels qu'Amazon Athena et Redshift Spectrum nécessitent des liens de ressources pour pouvoir inclure des ressources partagées dans les requêtes. Les directeurs doivent créer un lien vers une ressource partagée depuis une autre Compte AWS ressource. AWS Glue Data Catalog Pour plus d'informations sur les liens vers des ressources, consultez [Comment fonctionnent les liens vers des ressources dans Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

Un *conteneur de liens de catalogue* est un objet de catalogue de données qui fait référence à un catalogue de base de données fédéré local ou entre comptes provenant d'autres comptes. AWS Vous pouvez également créer des liens de base de données et des liens de table dans un conteneur de liens de catalogue. Lorsque vous créez un lien de base de données ou un lien de table, vous devez spécifier une ressource cible résidant dans le même catalogue cible au niveau de la base de données Amazon Redshift (base de données Amazon Redshift). 

Pour créer un conteneur de liens de catalogue, vous avez besoin de la Lake Formation `CREATE_CATALOG` ou de l'`glue:CreateCatalog`autorisation.

 Vous devez disposer des **paramètres de version inter-comptes** version 4 ou supérieure pour partager des bases de données ou des tables dans le catalogue fédéré entre Compte AWS s. 

## Création d'un conteneur de liens de catalogue vers un catalogue fédéré entre comptes
<a name="create-resource-link-catalog"></a>

Vous pouvez créer un conteneur de liens de catalogue qui pointe vers un catalogue fédéré au niveau de la base de données Redshift dans n'importe quelle AWS région à l'aide de la AWS Lake Formation console, AWS Glue `CreateCatalog` de l'API ou (). AWS Command Line Interface AWS CLI

**Pour créer un conteneur de liens de catalogue vers un catalogue partagé (console)**

1. Ouvrez la AWS Lake Formation console à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Connectez-vous en tant que directeur disposant de l'`CREATE_CATALOG`autorisation de Lake Formation. 

1. Dans le volet de navigation, choisissez **Catalogues**, puis sélectionnez **Créer un catalogue**.

1. Sur la page **Définir les détails du catalogue**, fournissez les informations suivantes :  
**Nom**  
Entrez un nom qui respecte les mêmes règles qu'un nom de catalogue. Le nom peut être identique à celui du catalogue partagé cible.  
**Type**  
Choisissez **le conteneur de liens de catalogue** comme type de catalogue.  
**Source**  
Sélectionnez `Redshift`.  
**Catalogue Target Redshift**  
Sélectionnez un catalogue fédéré au niveau de la base de données Redshift ou choisissez un catalogue local (détenu) dans la liste.  
La liste contient tous les catalogues partagés avec votre compte. Notez que l'ID de compte du propriétaire du catalogue est indiqué avec chaque catalogue. Si aucun catalogue dont vous savez qu'il a été partagé avec votre compte ne s'affiche, vérifiez les points suivants :  
   + Si vous n'êtes pas un administrateur de lac de données, vérifiez que l'administrateur du lac de données vous a accordé les autorisations de Lake Formation sur le catalogue.
   + Si vous êtes administrateur d'un lac de données et que votre compte n'appartient pas à la même AWS organisation que le compte octroyant, assurez-vous d'avoir accepté l'invitation AWS Resource Access Manager (AWS RAM) au partage de ressources pour le catalogue. Pour de plus amples informations, veuillez consulter [Acceptation d'une invitation de partage de ressources de AWS RAM](accepting-ram-invite.md).
Lorsque vous créez un conteneur de liens de catalogue via la console, la liste déroulante **Target Redshift Catalog** peut s'afficher `No matches` lorsque vous essayez de sélectionner un catalogue Redshift entre comptes. Malgré cet affichage, vous pouvez saisir manuellement l'ARN cible du catalogue fédéré au niveau de la base de données Amazon Redshift (base de données Amazon Redshift) dans le champ de saisie, et le formulaire fonctionnera toujours correctement. Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/federated-catalog-redshift/dev`.  
Ce comportement se produit car la console ne peut rechercher des candidats potentiels que dans le compte actuellement connecté. La liste déroulante est conçue comme une fonctionnalité de saisie automatique, mais vous pouvez toujours la saisir manuellement ARNs pour un accès entre comptes.

1. Pour permettre aux moteurs de requêtes Apache Iceberg de lire et d'écrire dans les espaces de noms Amazon Redshift AWS Glue , créez un cluster Amazon Redshift géré avec les ressources de calcul et de stockage nécessaires pour effectuer des opérations de lecture et d'écriture sans impact sur les charges de travail de l'entrepôt de données Amazon Redshift. Vous devez fournir un rôle IAM avec les autorisations requises pour transférer des données depuis et vers le compartiment Amazon S3. 

1. Choisissez **Suivant**.

1. (Facultatif) Choisissez **Ajouter des autorisations** pour accorder des autorisations à d'autres principaux.

   Toutefois, l'octroi d'autorisations sur un conteneur de liens de catalogue n'accorde pas d'autorisations sur le catalogue cible (lié). Vous devez accorder des autorisations sur le catalogue cible séparément pour que le lien du catalogue soit visible dans Athena.

1. Passez ensuite en revue les détails du conteneur de liens du catalogue et sélectionnez **Créer un catalogue**. 

   Vous pouvez ensuite afficher le nom du conteneur de liens sur la page **Catalogues**.

   Vous pouvez désormais créer des liens de base de données et des liens de table dans le conteneur de liens de catalogue pour permettre l'accès depuis les moteurs de requête.

**Exemple de CLI pour créer un conteneur de liens de catalogue**
+ Dans l'exemple suivant, l'`TargetRedshiftCatalog`objet spécifie l'ARN du catalogue fédéré au niveau de la base de données Amazon Redshift (base de données Amazon Redshift). Le `DataLakeAccess` doit être activé lorsque vous créez le conteneur de liens de catalogue.

  ```
  aws glue create-catalog \
    --cli-input-json 
      '{
          "Name": "linkcontainer", 
          "CatalogInput": {
              "TargetRedshiftCatalog": {
                 "CatalogArn": "arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"
               },
              "CatalogProperties": {
                "DataLakeAccessProperties" : {
                  "DataLakeAccess" : true,
                  "DataTransferRole" : "arn:aws:iam::111122223333:role/DataTransferRole"
               } 
             }
          }
      }'
  ```

## Création de liens vers des ressources sous le conteneur de liens du catalogue
<a name="create-db-table-link"></a>

 Vous pouvez créer des liens vers des ressources vers des bases de données et des tables dans un conteneur de liens de catalogue. Lorsque vous créez des liens vers des ressources de base de données ou des liens vers des ressources de table, vous devez spécifier une ressource cible résidant dans le même catalogue cible au niveau de la base de données Amazon Redshift (base de données Amazon Redshift) que celui vers lequel pointe le conteneur de liens. 

Vous pouvez créer un lien de ressource vers une base de données Amazon Redshift partagée ou une table à l'aide de la AWS Lake Formation console, de l'API ou AWS Command Line Interface ()AWS CLI.
+ Pour obtenir des instructions complètes, consultez [Création d'un lien de ressource vers une base de données de catalogue de données partagée](create-resource-link-database.md).

  Voici un AWS CLI exemple de création d'un lien vers une ressource de base de données sous un conteneur de liens de catalogue.

  ```
  aws glue create-database \
    --cli-input-json \
      '{
          "CatalogId": "111122223333:linkcontainer",
          "DatabaseInput": {
              "Name": "dblink",
               "TargetDatabase": {
                 "CatalogId": "123456789012:nscatalog/dev",
                  "DatabaseName": "schema1"
               }
          }
      }'
  ```
+ Pour créer un lien vers une ressource de table sous un conteneur de liens de catalogue, vous devez d'abord créer une AWS Glue base de données dans le répertoire local AWS Glue Data Catalog pour contenir le lien vers une ressource de table.

  Pour plus d'informations sur la création de liens de ressources vers des tables partagées, consultez[Création d'un lien de ressource vers une table de catalogue de données partagée](create-resource-link-table.md).
  +  Création d'une base de données contenant la table (exemple de lien de ressource)

    ```
    aws glue create-database \
      --cli-input-json \
          '{
              "CatalogId": "111122223333:linkcontainer",
              "DatabaseInput": {
                  "Name": "db1",
                  "Description": "creating parent database for table link"
              }
          }'
    ```
  +  Exemple de lien vers les ressources d'une table

    ```
    aws glue create-table \
      --cli-input-json \
        '{
            "CatalogId": "111122223333:linkcontainer",
             "DatabaseName": "db1",
            "TableInput": {
                "Name": "tablelink",
                "TargetTable": {
                    "CatalogId": "123456789012:nscatalog/dev",
                   "DatabaseName": "schema1", 
                    "Name": "table1"
                 }
            }
        }'
    ```

# Supprimer un catalogue fédéré
<a name="delete-rs-fed-catalog"></a>

 Vous pouvez supprimer les catalogues fédérés que vous avez créés à l' AWS Glue Data Catalog aide de l'`glue:DeleteCatalog`opération ou de la console. AWS Lake Formation 

**Pour supprimer un catalogue fédéré (console)**

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

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

1. Choisissez le catalogue que vous souhaitez supprimer dans la liste des catalogues.

1. Choisissez **Supprimer** des **actions**. 

1. Choisissez **Supprimer** pour confirmer et le catalogue fédéré sera supprimé du catalogue de données.  
![\[Confirmation de suppression du catalogue.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/delete-fed-catalog.png)

**Pour supprimer un catalogue fédéré (CLI)**
+ 

  ```
  aws glue delete-catalog 
   --catalog-id 123456789012:catalog name
  ```

# Interrogation de catalogues fédérés
<a name="query-redshift-fed-catalog"></a>

Une fois que vous avez accordé des autorisations aux autres principaux, ils peuvent se connecter et commencer à interroger les tables des catalogues fédérés en se connectant aux outils SQL via Amazon Redshift, Amazon EMR et ETL. Amazon Athena AWS Glue 

 Pour plus d'informations sur la connexion au point de terminaison de AWS Glue Data Catalog l'extension Apache Iceberg Rest ou à l'application Spark autonome, consultez la section [Accès à la AWS Glue Data Catalog section du](https://docs.aws.amazon.com/glue/latest/dg/access_catalog.html) Guide du AWS Glue développeur. 

Vous pouvez utiliser les requêtes DDL (Data Definition Language) pour créer et gérer des tables dans la base de données à l'aide d'Apache Spark sur Amazon EMR. Pour créer et supprimer des tables dans la base de données Amazon Redshift, le principal doit disposer des autorisations Lake Formation`Create table`. `Drop`

 Pour plus d'informations sur l'octroi d'autorisations au catalogue de données, consultez[Octroi d'autorisations sur les ressources du catalogue de données](granting-catalog-permissions.md). 

Pour plus d'informations sur l'interrogation des ressources du catalogue Amazon Athena, consultez la section [Interrogation depuis le guide AWS Glue Data Catalog de](https://docs.aws.amazon.com/athena/latest/ug/gdc-register.html) l' Amazon Athena utilisateur d'Amazon Athena. 

# Ressources supplémentaires
<a name="additional-resources-byod"></a>

Vous pouvez utiliser [Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse.html) pour obtenir un accès unifié aux données dans les entrepôts de données et les lacs de données. Grâce à SageMaker Lakehouse, vous pouvez utiliser des moteurs d'analyse, d'apprentissage automatique et de business intelligence préférés via une API REST Apache Iceberg ouverte pour garantir un accès sécurisé aux données grâce à des contrôles d'accès cohérents et précis.
+ [ SageMaker Atelier Amazon](https://catalog.us-east-1.prod.workshops.aws/workshops/107188af-3663-4bbf-bb35-93d514d406da/en-US/03lakehouse)
+ [Simplifiez l'accès aux données pour votre entreprise à l'aide d'Amazon SageMaker Lakehouse](https://aws.amazon.com/blogs/big-data/simplify-data-access-for-your-enterprise-using-amazon-sagemaker-lakehouse/)

# Fédération en sources de données externes dans le AWS Glue Data Catalog
<a name="federated-catalog-data-connection"></a>

 Vous pouvez connecter le AWS Glue Data Catalog (catalogue de données) à des entrepôts de données tels qu'Amazon Redshift, Snowflake, à des bases de données cloud telles qu'Amazon RDS, Oracle, Amazon DynamoDBà des services de streaming tels qu'Amazon MSK, et à des systèmes sur site tels que Teradata à l'aide de connexions. AWS Glue Ces connexions sont enregistrées dans le AWS Glue Data Catalog et enregistrées auprès de celui-ci AWS Lake Formation, ce qui vous permet de créer un catalogue fédéré pour chaque source de données disponible. 

 Un *catalogue fédéré* est un conteneur de niveau supérieur qui pointe vers une base de données dans un système de données externe. Il vous permet d'interroger les données directement depuis le système de données externe sans processus d'extraction, de transformation et de chargement (ETL). 

Pour plus d'informations sur AWS Glue les connexions, consultez la section [Connexion aux données](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html) dans le Guide du AWS Glue développeur.

Les administrateurs de data lake peuvent créer des catalogues fédérés à l'aide d'[Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse.html) ou. [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)

Les administrateurs de data lake peuvent ensuite accorder des autorisations détaillées sur les objets du catalogue à l'aide de Lake Formation, en contrôlant l'accès à différents niveaux tels que le catalogue, la base de données, la table, la colonne, la ligne ou la cellule. Les analystes de données peuvent découvrir et interroger les sources de données cataloguées à l'aide d'Athena, Lake Formation appliquant les politiques d'accès définies. Les analystes peuvent joindre des données provenant de plusieurs sources en une seule requête sans avoir à se connecter à chaque source individuellement. 

**Topics**
+ [Flux de travail](#connect-data-source-workflow)
+ [Conditions requises pour connecter le catalogue de données à des sources de données externes](connect-data-source-prerequisites.md)
+ [Création d'un catalogue fédéré à l'aide d'une connexion AWS Glue](create-fed-catalog-data-source.md)
+ [Affichage des objets du catalogue](view-fed-glue-connection-catalog.md)
+ [Supprimer un catalogue fédéré](delete-glue-fed-catalog.md)
+ [Interrogation de catalogues fédérés](query-glue-fed-catalog.md)
+ [Ressources supplémentaires](additional-resources-fed-connection.md)

## Flux de travail
<a name="connect-data-source-workflow"></a>

Un administrateur de lac de données ou un utilisateur disposant des autorisations requises effectue les étapes suivantes pour le connecter AWS Glue Data Catalog à une source de données externe.

1.  Crée une AWS Glue connexion à la source de données. Lorsque vous enregistrez la connexion, le rôle IAM utilisé pour enregistrer la connexion doit avoir accès à la fonction Lambda et à l'emplacement du compartiment de déversement Amazon S3. 

1.  Enregistre le lien avec Lake Formation. 

1.  Crée un catalogue fédéré dans le catalogue de données à l'aide d'une AWS Glue connexion pour se connecter aux sources de données disponibles. Les bases de données, les tables et les vues sont automatiquement cataloguées dans le catalogue de données et enregistrées auprès de Lake Formation. 

1.  Accorde l'accès à des catalogues, bases de données et tables spécifiques aux analystes de données à l'aide des autorisations de Lake Formation. Des politiques de contrôle d'accès précises peuvent être définies pour les lacs de données, les entrepôts et les sources OLTP à l'aide de Lake Formation, ce qui permet d'activer des filtres de sécurité au niveau des lignes et des colonnes. 

    Les analystes de données peuvent ensuite accéder à toutes les données via le catalogue de données à l'aide de requêtes SQL dans Athena, sans avoir besoin de connexions distinctes ni d'informations d'identification de source de données. Les analystes peuvent exécuter des requêtes SQL fédérées qui analysent les données provenant de sources multiples, en joignant les données sur place sans pipelines de données complexes. 

# Conditions requises pour connecter le catalogue de données à des sources de données externes
<a name="connect-data-source-prerequisites"></a>

Pour vous connecter AWS Glue Data Catalog à des sources de données externes, enregistrer la connexion auprès de Lake Formation et configurer des catalogues fédérés, vous devez remplir les conditions suivantes :
**Note**  
Nous recommandons à un administrateur du lac de données de Lake Formation de créer les AWS Glue connexions pour se connecter aux sources de données externes et de créer les catalogues fédérés. 

1. 

**Création des rôles IAM.**
   +  Créez un rôle doté des autorisations nécessaires pour déployer les ressources (fonction Lambda, compartiment de déversement Amazon S3, rôle IAM et AWS Glue connexion) requises pour créer une connexion à la source de données externe. 
   + Créez un rôle doté des autorisations minimales nécessaires pour accéder aux propriétés de AWS Glue connexion (fonction Lambda et compartiment de déversement Amazon S3). C'est le rôle que vous allez inclure lorsque vous enregistrez la connexion avec Lake Formation.

     Pour utiliser Lake Formation pour gérer et sécuriser les données de votre lac de données, vous devez enregistrer la AWS Glue connexion auprès de Lake Formation. Lake Formation peut ainsi vendre des informations d'identification à Amazon Athena pour interroger les sources de données fédérées. 

     Le rôle doit disposer `Select` d'`Describe`autorisations sur le compartiment Amazon S3 et sur la fonction Lambda.
     +  s3 : ListBucket 
     + s3 : GetObject
     +  lambda : InvokeFunction 

------
#### [ JSON ]

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "s3:*"
           ],
           "Resource": [
             "arn:aws:s3:::amzn-s3-demo-bucket1/object/*",
             "arn:aws:s3:::amzn-s3-demo-bucket1/object"
           ]
         },
         {
           "Sid": "lambdainvoke",
           "Effect": "Allow",
           "Action": "lambda:InvokeFunction",
           "Resource": "arn:aws:lambda:us-east-1:123456789012:function:example-lambda-function"
         },
         {
           "Sid": "gluepolicy",
           "Effect": "Allow",
           "Action": "glue:*",
           "Resource": "*"
         }
       ]
     }
     ```

------
   + Ajoutez la politique de confiance suivante au rôle IAM utilisé lors de l'enregistrement de la connexion :

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         "lakeformation.amazonaws.com"
                   ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```

------
   + L'administrateur du lac de données qui enregistre la connexion doit disposer de l'`iam:PassRole`autorisation associée au rôle.

     Voici une politique intégrée qui accorde cette autorisation. Remplacez *<account-id>* par un numéro de AWS compte valide et remplacez *<role-name>* par le nom du rôle.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "PassRolePermissions",
                 "Effect": "Allow",
                 "Action": [
                     "iam:PassRole"
                 ],
                 "Resource": [
                     "arn:aws:iam::111122223333:role/example-role-name>"
                 ]
             }
         ]
     }
     ```

------
   +  Pour créer des catalogues fédérés dans Data Catalog, assurez-vous que le rôle IAM que vous utilisez est un administrateur de lac de données de Lake Formation en vérifiant les paramètres du lac de données (). `aws lakeformation get-data-lake-settings`

      Si vous n'êtes pas administrateur de data lake, vous devez disposer de l'`CREATE_CATALOG`autorisation Lake Formation pour créer un catalogue. L'exemple suivant montre comment accorder les autorisations requises pour créer des catalogues. 

     ```
     aws lakeformation grant-permissions \
     --cli-input-json \
             '{
                 "Principal": {
                  "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/non-admin"
                 },
                 "Resource": {
                     "Catalog": {
                     }
                 },
                 "Permissions": [
                     "CREATE_CATALOG",
                     "DESCRIBE"
                 ]
             }'
     ```

1. Ajoutez la politique de clé suivante à la AWS KMS clé si vous utilisez une clé gérée par le client pour chiffrer les données de la source de données. Remplacez le numéro de compte par un numéro de AWS compte valide et spécifiez le nom du rôle. Par défaut, les données sont chiffrées à l'aide d'une clé KMS. Lake Formation propose une option permettant de créer votre clé KMS personnalisée pour le chiffrement. Si vous utilisez une clé gérée par le client, vous devez ajouter des politiques clés spécifiques à la clé. 

   Pour plus d’informations sur la gestion des autorisations d’une clé gérée par le client, consultez [Clés gérées par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-1"
           }
       ]
   }
   ```

------

# Création d'un catalogue fédéré à l'aide d'une connexion AWS Glue
<a name="create-fed-catalog-data-source"></a>

 Pour connecter les sources AWS Glue Data Catalog de données externes, vous devez utiliser des AWS Glue connexions qui permettent la communication avec les sources de données externes. Vous pouvez créer des AWS Glue connexions à l'aide de la AWS Glue console, de l'API [Create connection](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateConnection.html) et de la console Amazon SageMaker Lakehouse. 

Pour obtenir des instructions détaillées sur la création d'une AWS Glue connexion, consultez [Connexion aux données](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html) dans le guide du AWS Glue développeur ou [Création de connexions dans Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html). 

Lorsqu'un utilisateur exécute une requête sur des tables fédérées, Lake Formation envoie des informations d'identification qui invoquent une AWS Lambda fonction spécifiée dans la AWS Glue connexion pour récupérer des objets de métadonnées depuis la source de données. 

------
#### [ AWS Management Console ]

**Pour créer un catalogue fédéré à partir d'une source de données externe et configurer des autorisations (console)**

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

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

1. Sélectionnez l'option **Créer un catalogue**. 

1. Sur la **page de détails du catalogue**, entrez les informations suivantes :   
![\[La page de création de catalogue avec options.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/create-glue-connection-catalog.png)
   + **Nom : nom** unique pour votre catalogue fédéré. Le nom ne peut pas être modifié et doit être en minuscules. Le nom peut comporter un maximum de 255 caractères. compte. 
   + **Type** — Choisissez le catalogue fédéré comme type de catalogue.
   + **Source** : choisissez une source de données dans la liste déroulante. Les sources de données pour lesquelles vous avez créé des connexions s’affichent. Pour plus d'informations sur la création d'une AWS Glue connexion à une source de données externe, consultez [Création de connexions pour les connecteurs](https://docs.aws.amazon.com/glue/latest/dg/creating-connections.html) dans le Guide du AWS Glue développeur ou [Création de connexions dans Amazon SageMaker Lakehouse](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/lakehouse-create-connection.html).
   + **Connexion** : choisissez une AWS Glue connexion existante à la source de données.
   + **Description** — Entrez une description pour le catalogue créé à partir de la source de données.

1. Choisissez un **rôle IAM** que Lake Formation assumera pour vendre les informations d'identification permettant au moteur de requête d'accéder aux données depuis la source de données. Ce rôle doit disposer des autorisations requises pour accéder à la AWS Glue connexion et appeler la fonction Lambda pour accéder aux données de la source de données externe.

   Vous pouvez également **créer un nouveau rôle** dans la console IAM.

   Consultez la [Conditions requises pour connecter le catalogue de données à des sources de données externes](connect-data-source-prerequisites.md) section pour connaître les autorisations requises.

1.  Sélectionnez l'option **Activer le connecteur pour vous connecter à la source de données** afin de permettre à Athena d'exécuter des requêtes fédérées.

   Pour obtenir la liste des connecteurs pris en charge, consultez la section [Enregistrer votre connexion](https://docs.aws.amazon.com/athena/latest/ug/register-connection-as-gdc.html) dans le guide de l'utilisateur Amazon Athena. 

1. **Options de chiffrement** — Choisissez l'option **Personnaliser les paramètres de chiffrement** si vous souhaitez utiliser une clé personnalisée pour chiffrer le catalogue. Pour utiliser une clé personnalisée, vous devez ajouter une stratégie de clé gérée personnalisée supplémentaire à votre clé KMS. 

1. Choisissez **Next** pour accorder des autorisations aux autres principaux. 

1. Sur la page **Accorder des autorisations**, choisissez **Ajouter des autorisations**.

1.  Sur l'écran **Ajouter des autorisations**, choisissez les principes et les types d'autorisations à accorder.   
![\[La page des autorisations du catalogue avec le type principal et les options de subvention.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-permissions.png)
   +  Dans la section **Principaux**, choisissez un type de principal, puis spécifiez les principaux auxquels octroyer des autorisations. 
     + **Utilisateurs et rôles IAM** : choisissez un ou plusieurs utilisateurs ou rôles dans la liste des utilisateurs et des rôles IAM.
     + **Utilisateurs et groupes SAML** : pour le SAML et Amazon Quick les utilisateurs et groupes, entrez un ou plusieurs Amazon Resource Names (ARNs) pour les utilisateurs ou les groupes fédérés via SAML, ou pour les utilisateurs ou groupes ARNs Amazon Quick. Appuyez sur **Entrée** après chaque ARN. 
   +  Dans la section **Autorisations**, sélectionnez les autorisations et les autorisations octroyables.

     Sous **Autorisations du catalogue**, sélectionnez une ou plusieurs autorisations à octroyer.

     Choisissez **Super utilisateur** pour octroyer des autorisations administratives illimitées sur toutes les ressources du catalogue.

      Sous **Autorisations pouvant être accordées**, sélectionnez les autorisations que le bénéficiaire de la subvention peut accorder aux autres principaux de son compte. AWS Cette option n’est pas prise en charge lorsque vous octroyez des autorisations à un principal IAM à partir d’un compte externe. 

1. Choisissez **Next** pour consulter les informations et créer le catalogue. La liste **des catalogues** présente le nouveau catalogue fédéré.

   La liste **des emplacements des données** indique la connexion fédérée récemment enregistrée.  
![\[La liste des emplacements de données avec les connexions fédérées.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/federated_data_lake_location.png)

------
#### [ AWS CLI ]

**Pour créer un catalogue fédéré à partir d'une source de données externe et configurer des autorisations**

1.  L'exemple suivant montre comment créer une AWS Glue connexion. 

   ```
   aws glue create-connection 
     --connection-input \
         '{
            "Name": "DynamoDB connection",
            "ConnectionType": "DYNAMODB",
            "Description": "A connection created for DynamoDB",
            "ConnectionProperties": {},
            "AthenaProperties": "spill_prefix": "your_spill_prefix",
            "lambda_function_arn": "Lambda_function_arn",
            "spill_bucket": "Your_Bucket_name",
            "AuthenticationConfiguration": {}
         }'
   ```

1.  L'exemple suivant montre comment enregistrer une AWS Glue connexion avec Lake Formation. 

   ```
   aws lakeformation register-resource 
     --cli-input-json \
       {"ResourceArn":"arn:aws:glue:us-east-1:123456789012:connection/dynamo","RoleArn":"arn:aws:iam::123456789012:role/AdminTelemetry","WithFederation":true}
   ```

1.  L'exemple suivant montre comment créer un catalogue fédéré. 

   ```
   aws glue create-catalog 
    --cli-input-json \
         '{
          "Name":"ddbcatalog",
          "CatalogInput":{"CatalogProperties":{"DataLakeAccessProperties":{"DataTransferRole":"arn:aws:iam::123456789012:role/role name"}},
          "CreateDatabaseDefaultPermissions":[],
          "CreateTableDefaultPermissions":[],
          "FederatedCatalog":{"ConnectionName":"dynamo","Identifier":"dynamo"}
            }
          }'
   ```

------

# Affichage des objets du catalogue
<a name="view-fed-glue-connection-catalog"></a>

Pour chaque source de données disponible, AWS Glue crée un catalogue correspondant dans le AWS Glue Data Catalog. Après avoir créé un catalogue, vous pouvez afficher les bases de données et les tables du catalogue à l'aide de la console Lake Formation ou AWS CLI. Dans 

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

1. Choisissez **Catalogues** sous Catalogue de données. La page des catalogues affiche les catalogues pour lesquels vous avez des autorisations.  
![\[Consultez les catalogues.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/view-catalogs.png)

1. Choisissez un catalogue dans la liste pour afficher les bases de données et les tables qu'il contient. La liste contient les bases de données de votre compte et les liens vers les ressources, qui sont des liens vers des bases de données partagées et des tables dans des comptes externes, et sont utilisés pour l'accès entre comptes aux données du lac de données.  
![\[Afficher les catalogues/bases de données.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-database-view.png)

1. Choisissez l'option **Tables** sous **Afficher** pour afficher et gérer les tables de la base de données. 

****AWS CLI exemples de visualisation de catalogues et de bases de données****  
L'exemple suivant montre comment afficher un catalogue à l'aide de AWS CLI 

```
aws glue get-catalog \
--catalog-id 123456789012:dynamodbcatalog
```

L'exemple suivant montre comment demander tous les catalogues du compte.

```
aws glue get-catalogs \
 --recursive
```

L'exemple de demande suivant montre comment obtenir les bases de données dans le catalogue.

```
aws glue get-database \
--catalog-id 123456789012:dynamodbcatalog
--database-name database name
```

# Supprimer un catalogue fédéré
<a name="delete-glue-fed-catalog"></a>

 Vous pouvez supprimer les catalogues fédérés que vous avez créés à l' AWS Glue Data Catalog aide de l'`glue:DeleteCatalog`opération ou de la console. AWS Lake Formation 

**Pour supprimer un catalogue fédéré (console)**

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

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

1. Choisissez le catalogue que vous souhaitez supprimer dans la liste des catalogues.

1. Choisissez **Supprimer** des **actions**. 

1. Choisissez **Supprimer** pour confirmer et le catalogue fédéré sera supprimé du catalogue de données.  
![\[Confirmation de suppression du catalogue.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/delete-fed-catalog.png)

**Pour supprimer un catalogue fédéré (CLI)**
+ 

  ```
  aws glue delete-catalog 
    --catalog-id 123456789012:catalog name
  ```

# Interrogation de catalogues fédérés
<a name="query-glue-fed-catalog"></a>

Une fois que vous avez accordé des autorisations aux autres principaux, ils peuvent se connecter et commencer à interroger les tables des catalogues fédérés à l'aide d'Athena.

Pour créer et supprimer des tables dans la base de données fédérée, le principal doit disposer des `Drop` autorisations Lake Formation`Create table`.

 Pour plus d'informations sur l'octroi d'autorisations au catalogue de données, consultez[Octroi d'autorisations sur les ressources du catalogue de données](granting-catalog-permissions.md). 

Pour plus d'informations sur l'interrogation du catalogue de données Amazon Athena, consultez la section [Interrogation depuis le guide AWS Glue Data Catalog de](https://docs.aws.amazon.com/athena/latest/ug/gdc-register.html) l' Amazon Athena utilisateur d'Amazon Athena. 

# Ressources supplémentaires
<a name="additional-resources-fed-connection"></a>

 Dans ce billet de blog, nous expliquons comment les analystes de données peuvent désormais accéder et interroger en toute sécurité les données stockées en dehors des lacs de données S3, y compris les entrepôts de données et les Amazon DynamoDB bases de données Amazon Redshift, le tout via une expérience unique et unifiée. Les administrateurs peuvent désormais appliquer des contrôles d'accès à différents niveaux de granularité pour garantir la protection des données sensibles tout en élargissant l'accès aux données. Cela permet aux entreprises d'accélérer les initiatives relatives aux données tout en préservant la sécurité et la conformité, ce qui permet de prendre des décisions plus rapides et axées sur les données. 
+ [Cataloguez et gérez les requêtes fédérées Amazon Athena avec Amazon Lakehouse SageMaker ](https://aws.amazon.com/blogs/big-data/catalog-and-govern-amazon-athena-federated-queries-with-amazon-sagemaker-lakehouse/)

# Intégration d'Amazon S3 Tables avec AWS Glue Data Catalog et AWS Lake Formation
<a name="create-s3-tables-catalog"></a>

[Les tables Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) fournissent un stockage S3 spécifiquement optimisé pour les charges de travail d'analyse, améliorant ainsi les performances des requêtes tout en réduisant les coûts. Les données figurant dans S3 Tables sont stockées dans un nouveau type de compartiment : un *compartiment de tables*, qui stocke les tables en tant que sous-ressources. Les tables S3 prennent en charge la norme Apache Iceberg, qui vous permet d'interroger facilement des données tabulaires dans des compartiments de tables Amazon S3 à l'aide de moteurs de requête populaires tels qu'Apache Spark.

Vous pouvez intégrer les tables Amazon S3 à AWS Glue Data Catalog l'aide de contrôles d'accès IAM ou de subventions IAM et Lake Formation :
+ **Contrôle d'accès IAM** : utilise des politiques IAM pour contrôler l'accès aux tables S3 et au catalogue de données. Dans cette approche de contrôle d'accès, vous avez besoin d'autorisations IAM sur les ressources des tables S3 et sur les objets du catalogue de données pour accéder aux ressources.
+ **Contrôle d'accès à Lake Formation** : utilise AWS Lake Formation des autorisations en plus des autorisations AWS Glue IAM pour contrôler l'accès aux tables S3 via le catalogue de données. Dans ce mode, les principaux ont besoin d'autorisations IAM pour interagir avec le catalogue de données, et les subventions de Lake Formation déterminent les ressources du catalogue (bases de données, tables, colonnes, lignes) auxquelles le principal peut accéder. Ce mode prend en charge à la fois un contrôle d'accès grossier (autorisations au niveau de la base de données et au niveau de la table) et un contrôle d'accès détaillé (sécurité au niveau des colonnes et au niveau des lignes). Lorsqu'un rôle enregistré est configuré et que la vente d'informations d'identification est activée, les autorisations IAM de S3 Tables ne sont pas requises pour le principal, car Lake Formation vend les informations d'identification au nom du principal en utilisant le rôle enregistré. Le contrôle d'accès à Lake Formation prend également en charge la vente d'informations d'identification pour les moteurs d'analyse tiers.

Cette section fournit des conseils pour configurer l'intégration avec AWS Lake Formation pour les scénarios suivants :
+ **Scénario A** : vous avez intégré les tables S3 et le catalogue de données à l'aide des contrôles d'accès IAM et vous prévoyez maintenant de les utiliser AWS Lake Formation. Pour en savoir plus, consultez [Modification des contrôles d'accès pour l'intégration des tables S3](manage-s3tables-catalog-integration.md).
+ **Scénario B** : Vous prévoyez d'intégrer les tables S3 et le catalogue de données à l'aide de votre compte AWS Lake Formation et de votre région, mais vous ne les avez pas intégrés à votre compte et à votre région aujourd'hui. Commencez par la [Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md) section et suivez[Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md).
+ **Scénario C** : Vous avez intégré les tables S3 et le catalogue de données à l'aide d'IAM AWS Lake Formation et vous prévoyez maintenant d'utiliser IAM. Pour en savoir plus, consultez [Modification des contrôles d'accès pour l'intégration des tables S3](manage-s3tables-catalog-integration.md).

Assurez-vous de suivre les étapes décrites dans la [section Intégration des tables S3 aux services d' AWS analyse](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) afin de disposer des autorisations appropriées pour accéder aux AWS Glue Data Catalog ressources de vos tables et pour utiliser les services d' AWS analyse.

**Topics**
+ [Comment fonctionne l'intégration du catalogue de données et de la Lake Formation](#w2aac13c27c19)
+ [Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md)
+ [Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md)
+ [Création de bases de données et de tables dans le catalogue de tables S3](create-databases-tables-s3-catalog.md)
+ [Enregistrement d'un compartiment de table Amazon S3 dans un autre AWS compte](register-cross-account-s3-table-bucket.md)
+ [Octroi d’autorisations](s3-tables-grant-permissions.md)

## Comment fonctionne l'intégration du catalogue de données et de la Lake Formation
<a name="w2aac13c27c19"></a>

Lorsque vous intégrez le catalogue de tables S3 au catalogue de données et à Lake Formation, le AWS Glue service crée un catalogue fédéré unique appelé `s3tablescatalog` dans le catalogue de données par défaut de votre compte, spécifique à votre Région AWS compte. L'intégration mappe toutes les ressources du bucket de tables Amazon S3 de votre compte Région AWS et du catalogue fédéré de la manière suivante :
+ Les compartiments de table Amazon S3 deviennent un catalogue à plusieurs niveaux dans le catalogue de données.
+ L'espace de noms Amazon S3 associé est enregistré en tant que base de données dans le catalogue de données.
+ Les tables Amazon S3 du compartiment de tables deviennent des tables du catalogue de données.

![\[Cartographie d'objets entre les tables S3 et AWS Glue Data Catalog.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/S3Tables-glue-catalog.png)


 Après l'intégration à Lake Formation, vous pouvez créer des tables Apache Iceberg dans le catalogue de compartiments de tables et y accéder via des moteurs AWS d'analyse intégrés tels qu' Amazon Athena Amazon EMR ainsi que des moteurs d'analyse tiers. 

Lorsque vous activez également l'intégration de Lake Formation, cela permet un contrôle d'accès précis. AWS Lake Formation Cette approche de sécurité signifie qu'en plus des autorisations Gestion des identités et des accès AWS (IAM), vous devez accorder à votre principal IAM des autorisations Lake Formation sur vos tables avant de pouvoir travailler avec elles.

Il existe deux principaux types d’autorisations dans AWS Lake Formation :
+ Les autorisations d’accès aux métadonnées contrôlent la capacité de créer, de lire, de mettre à jour et de supprimer des bases de données et des tables de métadonnées dans le catalogue de données.
+ Les autorisations d’accès aux données sous-jacentes contrôlent la capacité à lire et à écrire des données dans les emplacements Amazon S3 sous-jacents vers lesquels pointent les ressources du catalogue de données.

Lake Formation utilise une combinaison de son propre modèle d’autorisations et du modèle d’autorisations IAM pour contrôler l’accès aux ressources des catalogues de données et aux données sous-jacentes :
+ Pour qu’une demande d’accès aux ressources du catalogue de données ou aux données sous-jacentes aboutisse, elle doit passer les contrôles d’autorisation par IAM et Lake Formation.
+ Les autorisations IAM contrôlent l'accès à la Formation AWS Glue APIs et aux ressources du lac, tandis que les autorisations Lake Formation contrôlent l'accès aux ressources du catalogue de données, aux sites Amazon S3 et aux données sous-jacentes.

Les autorisations Lake Formation ne s’appliquent que dans la région dans laquelle elles ont été accordées, et un principal doit être autorisé par un administrateur de lac de données ou un autre principal disposant des autorisations nécessaires pour obtenir les autorisations Lake Formation.

# Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation
<a name="s3tables-catalog-prerequisites"></a>

Vous trouverez ci-dessous les conditions requises pour activer l'intégration des tables Amazon S3 avec AWS Glue Data Catalog et AWS Lake Formation.

1.  Lorsque vous activez l'intégration des tables Amazon S3, Lake Formation enregistre automatiquement l'emplacement des tables S3. Pour enregistrer l'emplacement du bucket de table auprès de Lake Formation, vous avez besoin d'un IAM role/user avec `lakeformation:RegisterResource``lakeformation:RegisterResourceWithPrivilegedAccess`, et `lakeformation:CreateCatalog` autorisations. Lorsqu'un utilisateur non administrateur disposant de ces autorisations enregistre l'emplacement d'un catalogue, Lake Formation lui accorde automatiquement l'`DATA_LOCATION_ACCESS`autorisation pour cet emplacement, ce qui permet au principal appelant d'effectuer toutes les opérations de Lake Formation prises en charge sur l'emplacement de données enregistré.

1. <a name="step3-permissions"></a> Lorsque vous activez l'intégration des tables S3, vous devez choisir un rôle IAM pour que Lake Formation fournisse des informations d'identification permettant l'accès aux données. Créez un rôle IAM pour accéder aux données de Lake Formation à vos compartiments de tables S3. Le rôle IAM utilisé lors de l'enregistrement du bucket de table auprès de Lake Formation nécessite les autorisations suivantes : 

------
#### [ JSON ]

****  

   ```
   {
       "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:123456789012:bucket/*"
               ]
           }
       ]
   }
   ```

------

   Pour de plus amples informations, veuillez consulter [Exigences relatives aux rôles utilisés pour enregistrer des sites](registration-role.md).

1.  Ajoutez la politique de confiance suivante au rôle IAM pour permettre au service Lake Formation d'assumer le rôle et de vendre des informations d'identification temporaires aux moteurs d'analyse intégrés. 

   ```
   {
     "Effect": "Allow",
     "Principal": {
       "Service": "lakeformation.amazonaws.com"
     },
     "Action": [
       "sts:AssumeRole",
       "sts:SetSourceIdentity",
       "sts:SetContext"  # add action to trust relationship when using IAM Identity center principals with Lake Formation
     ]
   }
   ```

**Note**  
Le processus d'intégration des services d' AWS analyse a été mis à jour. Si vous avez configuré l’intégration avec la version préliminaire, vous pouvez continuer à utiliser votre intégration actuelle. Cependant, le processus d'intégration mis à jour permet d'améliorer les performances. Pour mettre à jour l'intégration :  
Supprimez d'abord votre catalogue de tables S3 existant dans Lake Formation. Pour supprimer le catalogue, sélectionnez-le dans `s3tablescatalog` la liste des catalogues, puis choisissez **Supprimer** des **actions**.
Ensuite, désenregistrez l'emplacement des données pour. `s3tablescatalog`  
Sur la console Lake Formation, dans la section **Administrations**, choisissez **Data Locations**.
Sélectionnez un emplacement, puis dans le menu **Actions**, choisissez **Supprimer**.
Lorsque vous êtes invité à confirmer, choisissez **Supprimer**.  
Pour obtenir des instructions détaillées sur le désenregistrement d'un emplacement de données, consultez la section. [Annulation de l'enregistrement d'un site Amazon S3](unregister-location.md)
Suivez ensuite les étapes d'intégration mises à jour dans la [Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md) section.

# Activation de l'intégration des tables Amazon S3
<a name="enable-s3-tables-catalog-integration"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html). 

 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. 

## Pour intégrer les tables Amazon S3 au catalogue de données et à Lake Formation (console)
<a name="w2aac13c27c23b7b1"></a>

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

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

1. 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.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/enable-s3-table-integration.png)

1.  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](s3tables-catalog-prerequisites.md#step3-permissions) la section sur les conditions préalables.   
![\[L'écran d'activation de l'intégration S3 avec le rôle IAM.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/enable-s3-table-catalog.png)

1.  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. 

1. 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.

1. Choisissez le catalogue pour afficher les objets du catalogue et accorder des autorisations aux autres principaux.   
![\[Le catalogue de tables S3\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/s3-table-catalog.png)

   Pour créer des catalogues à plusieurs niveaux, consultez la section [Création d'un compartiment de tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) dans le guide de l'utilisateur d'Amazon Simple Storage Service.

## Pour intégrer les tables Amazon S3 au catalogue de données et au Lake Formation (CLI)
<a name="w2aac13c27c23b7b3"></a>

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"
             }
           }
         }
       ]
   }
   ```

1. 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
   ```

1. 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/*"
               ]
           }
       ]
   }
   ```

1. 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
   ```

1. 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"
   }
   ```

1. 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
   ```

1. 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"
      }
   }
   ```

1. 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
   ```

1. Vérifiez que le `s3tablescatalog` catalogue a été ajouté à AWS Glue l'aide de la commande suivante :

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

# Création de bases de données et de tables dans le catalogue de tables S3
<a name="create-databases-tables-s3-catalog"></a>

 Vous pouvez créer des bases de données pour organiser vos tables Apache Iceberg, ainsi que des tables pour définir le schéma et l'emplacement de vos données dans le catalogue de tables S3. 

## Création d'une base de données (console)
<a name="w2aac13c27c25b5b1"></a>

1.  Ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)et connectez-vous en tant qu'administrateur de lac de données ou créateur de base de données. 

1. Dans le volet de navigation, sélectionnez **Bases de données** sous **Catalogue de données**.

1. Choisissez **Créer une base de données**.

1.  Sur la page **Créer une base** de données, choisissez l'option **Base** de données et entrez les informations suivantes : 
   + **Nom : nom** unique pour la base de données
   + **Catalogue de données** : choisissez le catalogue de tables S3. La base de données résidera dans ce catalogue.
   + **Description** — (Facultatif) Ajoutez une description et un emplacement. 
   + **Contrôle d'accès IAM pour les nouvelles tables** : sélectionnez éventuellement Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données. Pour plus d'informations sur cette option, consultez la section [Modification des paramètres par défaut de votre lac de données](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html). 
   + Choisissez **Créer une base de données**. Vous pouvez voir la base de données créée dans le catalogue des tables S3.

## Créez une base de données à l'aide de AWS CLI
<a name="w2aac13c27c25b5b3"></a>

La commande CLI suivante montre comment créer une base de données dans le catalogue de tables S3.

```
aws glue create-database 
--region us-east-1 \
--catalog-id "123456789012:s3tablescatalog/test" \
--database-input \
 '{ "Name": "testglueclidbcreation" }'
```

## Création d'une table (AWS Management Console)
<a name="w2aac13c27c25b5b5"></a>

 Vous pouvez créer des tables de métadonnées Apache Iceberg dans le catalogue de tables S3 à l'aide de la console Lake Formation ou de l' AWS Glue `CreateTable`API. 

1. Ouvrez la console Lake Formation à l'[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)adresse et connectez-vous en tant qu'administrateur de lac de données ou en tant qu'utilisateur `CreateTable` autorisé.

1. Dans le volet de navigation, sélectionnez **Tables** sous Catalogue de données.

1. Choisissez Créer un tableau.

1. Sur la page **Créer une table**, entrez les détails de la table :  
![\[Le catalogue de tables S3\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/s3-catalog-create-table.png)
   + **Nom** — Entrez un nom unique pour la table.
   + **Catalogue** — Choisissez le catalogue des tables S3 comme catalogue.
   + **Base de données** — Choisissez la base de données dans le catalogue des tables S3.
   +  **Description** — Entrez une description pour le tableau. 
   + **Schéma** — Choisissez Ajouter des colonnes pour ajouter des colonnes et les types de données des colonnes. Vous avez la possibilité de créer une table vide et de mettre à jour le schéma ultérieurement. Iceberg vous permet de faire évoluer le schéma et la partition après avoir créé la table. Vous pouvez utiliser des requêtes Athena pour mettre à jour le schéma de table et des requêtes Spark pour mettre à jour les partitions. 

1. Sélectionnez **Soumettre**.

## Création d'une table (AWS CLI)
<a name="w2aac13c27c25b5b7"></a>

```
aws glue create-table \ 
--database-name "testglueclidbcreation" \ 
--catalog-id "123456789012:s3tablescatalog/test" \ 
--region us-east-1 \ 
--table-input \ 
'{ "Name": "testtablegluecli", "Parameters": { "format": "ICEBERG" }, "StorageDescriptor": { "Columns": [ {"Name": "x", "Type": "int", "Parameters": {"required": "true"}} ] } }'
```

# Enregistrement d'un compartiment de table Amazon S3 dans un autre AWS compte
<a name="register-cross-account-s3-table-bucket"></a>

Vous pouvez enregistrer des compartiments de table Amazon S3 individuels (format ARN :`arn:aws:s3tables:us-east-1:account-id:bucket/bucket-name`) à partir d'un AWS compte auprès de Lake Formation sur un autre compte. Par exemple, vous pouvez enregistrer un seau de tables depuis le compte A dans Lake Formation du compte B.

## Conditions préalables
<a name="w2aac13c27c27b5"></a>

Avant de commencer l'enregistrement du bucket entre comptes :
+ Créez un compartiment de table dans le compte A.
+ Créez un rôle IAM dans le compte B avec les autorisations appropriées pour l'enregistrement du bucket.

  Pour plus d'informations sur les autorisations requises pour enregistrer un bucket de table auprès de Lake Formation, consultez[Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md).
+ Enregistrez le compartiment de tables dans le compte sur lequel vous allez créer le catalogue de tables S3.
+  Pour l'accès entre comptes, le rôle spécifié lors de l'enregistrement du compartiment de table doit être un rôle intégré au compte avec les autorisations appropriées pour accéder au compartiment entre comptes. Le rôle nécessite les actions IAM S3 Tables nécessaires pour accéder aux ressources du bucket.

## Enregistrement d'un bucket de table entre comptes
<a name="w2aac13c27c27b7"></a>

Dans les procédures suivantes, le compte A est le compte propriétaire de la ressource, et le compte B est l'endroit où le bucket de table sera enregistré pour gérer les autorisations d'accès.

1. Connectez-vous AWS Management Console au compte A.

   Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1.  Créez un compartiment de tables. Pour plus d'informations, consultez la section [Création d'un compartiment de table](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) dans le guide de l'utilisateur Amazon S3. 

1. Enregistrez le bucket de table dans le compte B.

   Utilisez le AWS CLI pour enregistrer le seau de table du compte A avec Lake Formation dans le compte B.

   ```
   aws lakeformation register-resource \
   --resource-arn 'arn:aws:s3tables:us-east-1:account-A-id:bucket/single-bucket-name' \
   --role-arn arn:aws:iam::account-B-id:role/role-name \
   --region us-east-1
   ```

   Remplacez account-A-id, single-bucket-name account-B-id, et role-name par vos valeurs spécifiques.

1. Créez ensuite un catalogue pour le compartiment de table dans le compte B.

   Créez un catalogue à l'aide du AWS CLI.

   ```
   aws glue create-catalog --region us-east-1 \
   --cli-input-json \
   '{
      "Name": "catalog-name",
      "CatalogInput" : {
         "FederatedCatalog": {
            "Identifier": "arn:aws:s3tables:us-east-1:account A:bucket/single-bucket-name",
            "ConnectionName": "aws:s3tables"
         },
         "CreateDatabaseDefaultPermissions": [],
         "CreateTableDefaultPermissions": []      
      }
   }'
   ```

   Remplacez catalog-name et bucket-name par vos valeurs spécifiques. account-A-id

    L'exemple de CLI suivant montre comment afficher les détails du catalogue. 

   ```
    aws glue get-catalog \
     --catalog-id account-id:catalog-name \
     --region us-east-1
   ```

1. Ensuite, créez des bases de données et des tables dans le catalogue nouvellement créé dans le compte B.

   Créez une base de données.

   ```
   aws glue create-database \
     --region us-east-1 \
     --catalog-id "account-B-id:catalog-name" \
     --database-input \
   '{
     "Name": "database-name"
   }'
   ```

   Créer une table.

   ```
   aws glue create-table \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name\
     --region us-east-1 \
     --table-input \
     '{
           "Name": "table-name",
           "Parameters": {
               "format": "ICEBERG"
           },
           "StorageDescriptor": {
              "Columns": [
           {"Name": "x", "Type": "int", "Parameters": {"required": "true"}}
             ]
           }
   }'
   ```

   Remplacez database-name account-B-id, catalog-name et table-name par vos valeurs spécifiques.

1. Les exemples suivants montrent comment afficher les objets du catalogue.

   Afficher les détails de la base de données.

   ```
   aws glue get-database \
     --name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Afficher les détails du tableau.

   ```
   aws glue get-table \
     --name table-name \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Remplacez database-name account-B-id, catalog-name et table-name par vos valeurs spécifiques.

# Octroi d’autorisations
<a name="s3-tables-grant-permissions"></a>

 Après avoir intégré vos tables S3 AWS Lake Formation, vous pouvez accorder des autorisations sur le catalogue des tables S3 et les objets du catalogue (compartiments de tables, bases de données, tables) à d'autres rôles IAM et utilisateurs de votre compte. Les autorisations de Lake Formation vous permettent de définir des contrôles d'accès au niveau de la granularité au niveau des tables, des colonnes et des lignes pour les utilisateurs de moteurs d'analyse intégrés tels qu'Amazon Redshift Spectrum et Athena. 

 Vous pouvez accorder des autorisations en utilisant la méthode des ressources nommées ou la méthode de contrôle d'accès basé sur les balises Lake Formation (LF-TBAC). Avant d'accorder des autorisations à l'aide de balises LF et d'expressions de balises LF, vous devez les définir et les affecter aux objets du catalogue de données. 

Pour de plus amples informations, veuillez consulter [Gestion des balises LF pour le contrôle d'accès aux métadonnées](managing-tags.md).

Vous pouvez partager des bases de données et des tables avec AWS des comptes externes en accordant des autorisations à Lake Formation aux comptes externes. Les utilisateurs peuvent ensuite exécuter des requêtes et des tâches qui joignent et interrogent des tables sur plusieurs comptes. Lorsque vous partagez une ressource de catalogue avec un autre compte, les principaux titulaires de ce compte peuvent utiliser cette ressource comme si elle figurait dans leur catalogue de données. 

Lorsque vous partagez des bases de données et des tables avec des comptes externes, l'autorisation de **super utilisateur** n'est pas disponible. 

 Pour obtenir des instructions détaillées sur l'octroi d'autorisations, consultez la [Gestion des autorisations relatives à Lake Formation](managing-permissions.md) section. 

## AWS CLI exemple d'octroi d'autorisations sur une table Amazon S3
<a name="w2aac13c27c29c15"></a>

```
aws lakeformation grant-permissions \
--cli-input-json \
'{
    "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::111122223333:role/DataAnalystRole"
    },
    "Resource": {
        "Table": {
            "CatalogId":"111122223333:s3tablescatalog/amzn-s3-demo-bucket1",
            "DatabaseName":"S3 table bucket namespace <example_namespace>",
            "Name":"S3 table bucket table name <example_table>"
        }
    },
    "Permissions": [
        "SELECT"
    ]
}'
```

 Les paramètres à inclure dans la commande sont les suivants : 
+ DataLakePrincipalIdentifier — ARN d'utilisateur, de rôle ou de groupe IAM pour accorder des autorisations
+ CatalogId — Identifiant de AWS compte à 12 chiffres auquel appartient le catalogue de données
+ DatabaseName — Nom de l'espace de nom du compartiment de table Amazon S3
+ Nom : nom de la table de compartiment de table Amazon S3
+ Autorisations : autorisations à accorder. Les options incluent : SELECT, INSERT, DELETE, DESCRIBE, ALTER, DROP, ALLL et SUPER

# Accès aux tables Amazon S3 partagées
<a name="s3-tables-cross-account-sharing"></a>

 Après avoir accordé des autorisations entre comptes sur une base de données ou une table du catalogue de tables S3, pour accéder aux ressources, vous devez créer des liens de ressources vers les bases de données et les tables partagées. 

1.  Dans le compte de destination (le compte qui reçoit les ressources partagées), créez un lien vers les ressources de base de données. Pour obtenir des instructions complètes, consultez [Création d'un lien de ressource vers une base de données de catalogue de données partagée](create-resource-link-database.md). 

   Exemple de CLI pour créer un lien vers une ressource de base de données

   ```
   aws glue create-database 
   --region us-east-1 
   --catalog-id "111122223333" 
   --database-input \
   '{
     "Name": "s3table_resourcelink",
     "TargetDatabase": {
       "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
       "DatabaseName": "s3_table_ns"
     },
     "CreateTableDefaultPermissions": []
   }'
   ```

1.  Accordez une autorisation entre comptes sur la table. 

   Exemple de CLI pour l'octroi d'autorisations entre comptes

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:role/S3TablesTestExecRole"
       },
       "Resource": {
           "Table": {
               "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
               "DatabaseName": "s3_table_ns",
               "Name": "test_s3_iceberg_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

1.  `DESCRIBE`Autorisation de Grant Lake Formation sur le lien vers la ressource. 

    Exemple de CLI pour accorder l'autorisation de description sur le lien de ressource. 

   ```
   aws lakeformation grant-permissions \
       --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/S3TablesTestExecRole
       --resource Database='{CatalogId=111122223333;, Name=s3table_resourcelink}' \
       --permissions DESCRIBE
   ```

# Modification des contrôles d'accès pour l'intégration des tables S3
<a name="manage-s3tables-catalog-integration"></a>

Après avoir intégré les tables Amazon S3 au AWS Glue Data Catalog, vous pouvez modifier la façon dont l'accès aux ressources de votre catalogue est contrôlé. Cette section explique comment modifier le contrôle d'accès en fonction du modèle de contrôle d'accès actuel et souhaité. L'activation de Lake Formation vous permet d'utiliser des autorisations détaillées telles que la sécurité au niveau des colonnes et au niveau des lignes grâce aux subventions de Lake Formation, et permet à Lake Formation de vendre des informations d'identification temporaires au nom des principaux via un rôle enregistré. Le passage du contrôle d'accès AWS Lake Formation à IAM ramène le contrôle d'accès aux politiques IAM standard, ce qui peut être approprié si vos charges de travail ne nécessitent pas un accès précis et si vous préférez gérer les autorisations entièrement via IAM. Les deux voies de migration impliquent la mise à jour des valeurs par défaut du catalogue de données, l'ajustement des enregistrements des ressources auprès de Lake Formation et la coordination des autorisations accordées pour éviter les interruptions d'accès pendant la transition.

**Topics**
+ [Activez Lake Formation grâce à l'intégration des tables S3 au catalogue de données](change-access-iam-to-lf.md)
+ [Passer du contrôle d'accès AWS Lake Formation à IAM](change-access-lf-to-iam.md)

# Activez Lake Formation grâce à l'intégration des tables S3 au catalogue de données
<a name="change-access-iam-to-lf"></a>

Cette section décrit le flux de travail permettant de migrer le contrôle d'accès des privilèges IAM vers IAM avec AWS Lake Formation des autorisations pour les tables Amazon S3 intégrées au. AWS Glue Data Catalog

**Important**  
 AWS Lake Formation L'activation du contrôle d'accès révoquera tous les accès existants basés sur IAM à vos ressources S3 Tables. Une fois l'étape 1 terminée, les utilisateurs et les rôles qui avaient précédemment accédé aux données via des autorisations IAM en perdront immédiatement l'accès. Vous devez accorder les autorisations de Lake Formation à l'étape 2 avant que les utilisateurs puissent à nouveau interroger des données. Planifiez cette migration pendant une période de maintenance et coordonnez-la avec votre équipe chargée des données.

## Conditions préalables
<a name="w2aac13c29b7b7"></a>

Pour read/write accéder aux tables S3, en plus des autorisations Lake Formation, les directeurs doivent également disposer de l'autorisation `lakeformation:GetDataAccess` IAM. Avec cette autorisation, Lake Formation accède à la demande d'informations d'identification temporaires pour accéder aux données.

## En utilisant AWS CLI
<a name="w2aac13c29b7b9"></a>

1. **Étape 1 : enregistrer un bucket auprès de Lake Formation à l'aide du rôle IAM**

   Enregistrez la ressource S3 Tables auprès de Lake Formation.
**Note**  
Si vous avez déjà un rôle, assurez-vous que l'accès hybride est faux.

   ```
   aws lakeformation register-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*" \
     --role-arn "arn:aws:iam::AWSAccountID:role/service-role/LFAccessRole" \
     --with-federation
   ```

1. **Étape 2 : Mettre à jour le AWS Glue catalogue pour activer le contrôle d'accès à Lake Formation**

   Mettez à jour le catalogue avec un `CreateDatabaseDefaultPermissions` champ vide et `CreateTableDefaultPermissions` (défini sur`[]`) et défini `OverwriteChildResourcePermissionsWithDefault` sur`Accept`. Cela supprime l'accès basé sur l'IAM à toutes les ressources enfants existantes et permet de gérer le catalogue et ses objets à l'aide des subventions de Lake Formation.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [],
       "CreateTableDefaultPermissions": [],
       "OverwriteChildResourcePermissionsWithDefault": "Accept",
       "AllowFullTableExternalDataAccess": "True"
     }'
   ```

1. **Étape 3 : Accordez les autorisations de Lake Formation à votre équipe chargée des données**

   Accordez des autorisations de Lake Formation aux principaux (rôles, utilisateurs ou groupes) qui ont besoin d'un accès. Par exemple, pour accorder à un rôle un accès en lecture complète au tableau :

   ```
   aws lakeformation grant-permissions \
     --principal DataLakePrincipalIdentifier=arn:aws:iam::AWSAccountID:role/DataTeamRole \
     --resource '{
       "Table": {
           "CatalogId": "AWSAccountID",
           "DatabaseName": "s3tablescatalog/table-bucket-name/namespace",
           "TableWildcard": {}
       }
     }' \
     --permissions "SELECT" "DESCRIBE"
   ```

   Répétez l'opération pour chaque combinaison principale et ressource selon les besoins.

# Passer du contrôle d'accès AWS Lake Formation à IAM
<a name="change-access-lf-to-iam"></a>

Cette section décrit le flux de travail permettant de passer du contrôle d'accès AWS Lake Formation des autorisations aux privilèges IAM pour les tables Amazon S3 intégrées au AWS Glue Data Catalog.

**Important**  
La modification du contrôle d'accès AWS Lake Formation des autorisations à IAM révoquera tous les accès existants basés sur Lake Formation à vos ressources S3 Tables. Une fois l'étape 2 terminée, les utilisateurs et les rôles qui accédaient auparavant aux données par le biais des subventions de Lake Formation perdront immédiatement leur accès. Vous devez accorder l'accès IAM à l'étape 1 avant de mettre à jour le catalogue. Planifiez cette migration pendant une période de maintenance et coordonnez-la avec votre équipe chargée des données.

**Important**  
Les contrôles d'accès précis, tels que l'accès au niveau des colonnes et les filtres de cellules de données, avec les objets du catalogue de données sont disponibles uniquement en cas d'utilisation. AWS Lake Formation Avant de procéder à la migration des contrôles d'accès AWS Lake Formation vers IAM, vérifiez vos autorisations Lake Formation existantes à l'aide de politiques IAM équivalentes `aws lakeformation list-permissions` et déterminez si des politiques IAM équivalentes peuvent fournir l'accès dont vos utilisateurs ont besoin. Tout directeur qui s'est appuyé sur des subventions détaillées de Lake Formation aura besoin d'un accès IAM complet au niveau de la table après la migration du contrôle d'accès.

## Conditions préalables
<a name="w2aac13c29b9b9"></a>

Avant de commencer, assurez-vous de ce qui suit :
+ Vous avez identifié toutes les subventions de Lake Formation actuellement en vigueur pour les ressources en cours de migration. Courez `aws lakeformation list-permissions --resource-type TABLE` pour les examiner.
+ Vous avez préparé des politiques IAM qui fournissent un accès équivalent à tous les principaux concernés.
+ Le rôle IAM enregistré auprès de Lake Formation existe toujours `lakeformation:GetDataAccess` (nécessaire pendant la période de transition hybride).

## En utilisant AWS CLI
<a name="w2aac13c29b9c11"></a>

1. **Étape 1 : octroyer des autorisations IAM aux principaux**

   Associez des politiques IAM aux utilisateurs ou aux rôles qui ont besoin d'un accès. La politique doit inclure à la fois les autorisations AWS Glue relatives aux métadonnées et les autorisations relatives aux données des tables S3.
**Note**  
L'exemple de politique suivant fournit uniquement un accès en lecture.

   ```
   aws iam put-user-policy \
     --user-name GlueIAMAccessUser \
     --policy-name S3TablesIAMAccessPolicy \
     --policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "GlueMetadataAccess",
               "Effect": "Allow",
               "Action": [
                   "glue:GetCatalog",
                   "glue:GetDatabase",
                   "glue:GetTable"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:AWSAccountID:catalog/s3tablescatalog",
                   "arn:aws:glue:us-east-1:AWSAccountID:database/s3tablescatalog/table-bucket-name/namespace",
                   "arn:aws:glue:us-east-1:AWSAccountID:table/s3tablescatalog/table-bucket-name/namespace/*"
               ]
           },
           {
               "Sid": "S3TablesDataAccess",
               "Effect": "Allow",
               "Action": [
                   "s3tables:GetTableBucket",
                   "s3tables:GetTable",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name",
                   "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name/table/*"
               ]
           }
       ]
     }'
   ```

   Vérifiez que tous les utilisateurs et rôles concernés peuvent accéder aux tables attendues à l'aide de leurs informations d'identification IAM avant de continuer.

1. **Étape 2 : mettre à jour le catalogue pour restaurer les autorisations par défaut d'IAM**

   Mettez à jour le catalogue en conséquence `CreateDatabaseDefaultPermissions` et `CreateTableDefaultPermissions` `ALL` accordez-le à`IAM_ALLOWED_PRINCIPALS`. Définissez cette `OverwriteChildResourcePermissionsWithDefault` option pour `Accept` que la modification se propage à toutes les ressources enfants existantes, et pas seulement à celles qui viennent d'être créées.

   ```
   aws glue update-catalog \
     --catalog-id "s3tablescatalog" \
     --catalog-input '{
       "FederatedCatalog": {
           "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*",
           "ConnectionName": "aws:s3tables"
       },
       "CreateDatabaseDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "CreateTableDefaultPermissions": [{
           "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"},
           "Permissions": ["ALL"]
       }],
       "OverwriteChildResourcePermissionsWithDefault": "Accept"
     }'
   ```

1. **Étape 3 : Désenregistrer la ressource de Lake Formation**

   Une fois que vous avez confirmé que tous les accès fonctionnent conformément aux politiques IAM et qu'aucun principe ne dépend des subventions de Lake Formation, vous pouvez annuler l'enregistrement de la ressource auprès de Lake Formation pour terminer la migration.

   ```
   aws lakeformation deregister-resource \
     --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*"
   ```
**Note**  
Après avoir annulé l'enregistrement de la ressource, supprimez `lakeformation:GetDataAccess` de l'IAM les principaux qui n'en ont plus besoin.

Aucune `revoke-permissions` étape n'est requise.

# Création d'un catalogue géré par Amazon Redshift dans AWS Glue Data Catalog
<a name="create-rms-catalog"></a>

 Vous n'avez peut-être pas de cluster de producteurs Amazon Redshift ou de partage de données Amazon Redshift disponibles aujourd'hui, mais vous souhaitez créer et gérer des tables Amazon Redshift à l'aide du. AWS Glue Data Catalog Vous pouvez commencer par créer un catalogue AWS Glue géré à l'aide de l'`glue:CreateCatalog`API ou de la AWS Lake Formation console en définissant le type de catalogue `Catalog source` comme **Redshift**. `Managed` Cette étape permet d'effectuer les opérations suivantes :
+ Crée un catalogue dans le catalogue de données
+ Enregistre le catalogue en tant que localisation des données de Lake Formation
+ crée un groupe de travail sans serveur géré par Amazon Redshift
+ Lie le groupe de travail sans serveur Amazon Redshift et le catalogue de données à l'aide d'un objet de partage de données

**Pour créer un catalogue géré et configurer des autorisations (console)**

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

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

1. Sélectionnez l'option **Créer un catalogue**. 

1. Sur la **page de détails du catalogue**, entrez les informations suivantes : 
   + **Nom** : nom unique pour votre catalogue géré. Le nom ne peut pas être modifié et doit être en minuscules. Le nom peut comporter un maximum de 255 caractères. compte. 
   + **Type** — Choisissez `Managed catalog` comme type de catalogue.
   + **Stockage** — Choisissez `Redshift` le stockage.
   + **Description** — Entrez une description pour le catalogue créé à partir de la source de données.

1. Vous pouvez utiliser les applications Apache Spark exécutées sur Amazon EMR sur Amazon EC2 pour accéder aux bases de données Amazon Redshift dans le. AWS Glue Data Catalog

   Pour permettre à Apache Spark de lire et d'écrire sur le stockage géré Amazon Redshift, AWS Glue crée un cluster Amazon Redshift géré avec les ressources de calcul et de stockage nécessaires pour effectuer des opérations de lecture et d'écriture sans impact sur les charges de travail de l'entrepôt de données Amazon Redshift. Vous devez également fournir un rôle IAM avec les autorisations requises pour transférer des données vers et depuis le compartiment Amazon S3. Pour connaître les autorisations requises pour le rôle de transfert de données, consultez l'étape 5 de la [Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md) section. 

1. Par défaut, les données du cluster Amazon Redshift sont chiffrées à l'aide d'une clé AWS gérée. Lake Formation propose une option permettant de créer votre clé KMS personnalisée pour le chiffrement. Si vous utilisez une clé gérée par le client, vous devez ajouter des politiques clés spécifiques à la clé. 

1.  Choisissez l'option Personnaliser les paramètres de chiffrement si vous utilisez une clé gérée par le client pour chiffrer les données du stockage géré Amazon Redshift. Pour utiliser une clé personnalisée, vous devez ajouter une stratégie de clé gérée personnalisée supplémentaire à votre clé KMS. Pour de plus amples informations, veuillez consulter [Conditions préalables à la gestion des espaces de noms Amazon Redshift dans AWS Glue Data Catalog](redshift-ns-prereqs.md).

1. **Options de chiffrement** — Choisissez l'option **Personnaliser les paramètres de chiffrement** si vous souhaitez utiliser une clé personnalisée pour chiffrer le catalogue. Pour utiliser une clé personnalisée, vous devez ajouter une stratégie de clé gérée personnalisée supplémentaire à votre clé KMS. 

1. Choisissez **Next** pour accorder des autorisations aux autres principaux. 

1. Sur la page **Accorder des autorisations**, choisissez **Ajouter des autorisations**.

1.  Sur l'écran **Ajouter des autorisations**, choisissez les principes et les types d'autorisations à accorder.   
![\[La page des autorisations du catalogue avec le type principal et les options de subvention.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/catalog-permissions.png)
   +  Dans la section **Principaux**, choisissez un type de principal, puis spécifiez les principaux auxquels octroyer des autorisations. 
     + **Utilisateurs et rôles IAM** : choisissez un ou plusieurs utilisateurs ou rôles dans la liste des utilisateurs et des rôles IAM.
     + **Utilisateurs et groupes SAML** : pour le SAML et Amazon Quick les utilisateurs et groupes, entrez un ou plusieurs Amazon Resource Names (ARNs) pour les utilisateurs ou les groupes fédérés via SAML, ou pour les utilisateurs ou groupes ARNs Amazon Quick. Appuyez sur **Entrée** après chaque ARN.

       Pour plus d'informations sur la façon de créer les ARNs, voir les AWS CLI commandes AWS CLI d'octroi et de révocation. 
   +  Dans la section **Autorisations**, sélectionnez les autorisations et les autorisations octroyables.

     Sous **Autorisations du catalogue**, sélectionnez une ou plusieurs autorisations à octroyer.

     Choisissez **Super utilisateur** pour octroyer des autorisations administratives illimitées sur toutes les ressources du catalogue.

      Sous **Autorisations pouvant être accordées**, sélectionnez les autorisations que le bénéficiaire de la subvention peut accorder aux autres principaux de son compte. AWS Cette option n’est pas prise en charge lorsque vous octroyez des autorisations à un principal IAM à partir d’un compte externe. 

1. Choisissez **Next** pour consulter les informations et créer le catalogue. La liste **des catalogues** affiche le nouveau catalogue géré.

**Pour créer un catalogue fédéré (CLI)**
+  L'exemple suivant montre comment créer un catalogue fédéré. 

  ```
  aws glue create-catalog --cli-input-json file://input.json
  
  {
      "Name": "CatalogName", 
      "CatalogInput": {
        "Description": "Redshift published Catalog",
        "CreateDatabaseDefaultPermissions" : [],
        "CreateTableDefaultPermissions": [],
        "CatalogProperties": {
          "DataLakeAccessProperties" : {
            "DataLakeAccess" : "true",
            "DataTransferRole" : "DTR arn",
            "KMSKey": "kms key arn",  // Optional
            "CatalogType": "aws:redshift"
          }  
        }
      }
  }
  ```

  Réponse de Glue Get-Catalog 

  ```
  aws glue get-catalog \
    --catalog-id account-id:catalog-name \
    --region us-east-1
  
  Response:
  {
      "Catalog": {
          "Name": "CatalogName", 
          "Description": "Glue Catalog for Redshift z-etl use case",
          "CreateDatabaseDefaultPermissions" : [],
          "CreateTableDefaultPermissions": [],
           "CatalogProperties": {
            "DataLakeAccessProperties" : {
              "DataLakeAccess": "true",
              "DataTransferRole": "DTR arn",
              "KMSKey": "kms key arn",
              "ManagedWorkgroupName": "MWG name",
              "ManagedWorkgroupStatus": "MWG status",
              "RedshiftDatabaseName": "RS db name",
              "NamespaceArn": "namespace key arn",
              "CatalogType": "aws:redshift"
           }
         }
      }
  ```

# Gestion des autorisations pour les données dans un partage de données Amazon Redshift
<a name="data-sharing-redshift"></a>

Avec AWS Lake Formation, vous pouvez gérer les données en toute sécurité dans un partage de données d'Amazon Redshift. Amazon Redshift est un service d'entrepôt de données entièrement géré de plusieurs pétaoctets dans le cloud. AWS Grâce à la fonctionnalité de partage de données, Amazon Redshift vous permet de partager des données entre différentes entités. Comptes AWS Pour plus d'informations sur le partage de données Amazon Redshift, consultez [Présentation du partage de données dans Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/data_sharing_intro.html). 

Dans Amazon Redshift, l'administrateur du cluster de producteurs crée un partage de données et le partage avec l'administrateur du lac de données. Pour step-by-step obtenir des instructions sur la création d'un administrateur de lac de données, consultez[Création d'un administrateur de lac de données](initial-lf-config.md#create-data-lake-admin). 

Une fois que vous (administrateur du lac de données) avez accepté le partage de données, vous devez créer une AWS Glue Data Catalog base de données pour le partage de données spécifique. Cela vous permet de contrôler l'accès à celui-ci à l'aide des autorisations de Lake Formation. Lake Formation fait correspondre chaque partage de données à une base de données du catalogue de données correspondante. Elles apparaissent sous forme de bases de données fédérées dans le catalogue de données. 

Une base de données est qualifiée de *base de données fédérée* lorsqu'elle pointe vers une entité extérieure au catalogue de données. Les tables et les vues du partage de données Amazon Redshift sont répertoriées sous forme de tables individuelles dans le catalogue de données. Vous pouvez partager la base de données fédérée avec des principaux IAM et des utilisateurs SAML sélectionnés au sein du même compte ou d'un autre compte avec Lake Formation. Vous pouvez également inclure des expressions de filtre de ligne et de colonne pour restreindre l'accès à certaines données. Pour de plus amples informations, veuillez consulter [Filtrage des données et sécurité au niveau des cellules dans Lake Formation](data-filtering.md). 

 Pour permettre aux utilisateurs d'accéder à un partage de données Amazon Redshift, vous devez effectuer les opérations suivantes :

1. Mettez à jour **les paramètres du catalogue de données** pour activer les autorisations de Lake Formation. 

1. Acceptez l'invitation de partage de données envoyée par l'administrateur du cluster de producteurs Amazon Redshift et enregistrez le partage de données dans Lake Formation.

   Une fois cette étape terminée, vous pouvez gérer le partage de données dans le Lake Formation Data Catalog. 

1. Créez une base de données fédérée et définissez les autorisations sur cette base de données. 

1. Accordez des autorisations aux utilisateurs sur les bases de données et les tables. Vous pouvez partager l'intégralité de la base de données ou un sous-ensemble de tables avec des utilisateurs du même compte ou d'un autre compte. 

Pour connaître les limitations, veuillez consulter [Limites du partage de données Amazon Redshift](notes-rs-datashare.md).

**Topics**
+ [Conditions préalables à la configuration des autorisations sur les partages de données Amazon Redshift](redshift-ds-prereqs.md)
+ [Configuration des autorisations pour les partages de données Amazon Redshift](setup-ds-perms.md)
+ [Interrogation de bases de données fédérées](qerying-fed-db.md)

# Conditions préalables à la configuration des autorisations sur les partages de données Amazon Redshift
<a name="redshift-ds-prereqs"></a>

**Mettre à jour les paramètres par défaut du catalogue de données**  
Pour activer les autorisations Lake Formation pour les ressources du catalogue de données, nous vous recommandons de désactiver les **paramètres par défaut du catalogue de données** dans Lake Formation. Pour de plus amples informations, veuillez consulter [Modifier le modèle d'autorisation par défaut ou utiliser le mode d'accès hybride](initial-lf-config.md#setup-change-cat-settings).

**Mettre à jour les autorisations**  
 Outre les autorisations d'administrateur du lac de données (`AWSLakeFormationDataAdmin`), les autorisations suivantes sont également requises pour accepter un partage de données Amazon Redshift dans Lake Formation :
+ `glue:PassConnection on aws:redshift`
+ `redshift:AssociateDataShareConsumer`
+ `redshift:DescribeDataSharesForConsumer`
+ `redshift:DescribeDataShares`

L'utilisateur IAM administrateur du lac de données dispose implicitement des autorisations suivantes.
+ accès\$1location\$1aux données
+ créer\$1une base de données 
+ Formation lacustre : Enregistrer une ressource

# Configuration des autorisations pour les partages de données Amazon Redshift
<a name="setup-ds-perms"></a>

 Cette rubrique décrit les étapes à suivre pour accepter une invitation de partage de données, créer une base de données fédérée et accorder des autorisations. Vous pouvez utiliser la console Lake Formation ou le AWS Command Line Interface (AWS CLI). Les exemples présentés dans cette rubrique montrent le cluster de producteurs, le catalogue de données et le consommateur de données dans le même compte.

Pour en savoir plus sur les fonctionnalités multicomptes de Lake Formation, voir[Partage de données entre comptes dans Lake Formation](cross-account-permissions.md).

**Pour configurer des autorisations pour un partage de données**

1. Passez en revue une invitation de partage de données et acceptez-la.

------
#### [ Console ]

   1.  Connectez-vous à la console Lake Formation en tant qu'administrateur de lac de données à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Accédez à la page **Partage de données**. 

   1. Vérifiez les partages de données auxquels vous êtes autorisé à accéder. La colonne **État** indique votre statut de participation actuel au partage de données. Le statut **En attente** indique que vous avez été ajouté à un partage de données, mais que vous ne l'avez pas encore accepté ou que vous avez rejeté l'invitation. 

   1.  **Pour répondre à une invitation de partage de données, sélectionnez le nom du partage de données et choisissez Vérifier l'invitation.** Dans **Accepter ou rejeter le partage de données, passez en revue les** détails de l'invitation. Choisissez **Accepter** pour accepter l'invitation ou **Refuser** pour refuser l'invitation. Vous n'avez pas accès au partage de données si vous rejetez l'invitation.

------
#### [ AWS CLI ]

   Les exemples suivants montrent comment afficher, accepter et enregistrer l'invitation. Remplacez l' Compte AWS identifiant par un Compte AWS identifiant valide. Remplacez le `data-share-arn` par le véritable Amazon Resource Name (ARN) qui fait référence au partage de données.

   1. Afficher une invitation en attente.

      ```
      aws redshift describe-data-shares \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
      ```

   1. Acceptez un partage de données.

      ```
       aws redshift associate-data-share-consumer \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
       --consumer-arn 'arn:aws:glue:us-east-1:111122223333:catalog
      ```

   1. Enregistrez le partage de données dans le compte Lake Formation. Utilisez l'opération [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)API pour enregistrer le partage de données dans Lake Formation. `DataShareArn`est le paramètre d'entrée pour`ResourceArn`.
**Note**  
Il s'agit d'une étape obligatoire.

      ```
      aws lakeformation register-resource \
       --resource-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds'
      ```

------

1. Créez une base de données.

    Après avoir accepté une invitation de partage de données, vous devez créer une base de données qui pointe vers la base de données Amazon Redshift associée au partage de données. Vous devez être administrateur de data lake pour créer une base de données. 

------
#### [ Console ]

   1.  Sélectionnez le partage de données dans le volet **Invitations** et choisissez **Définir les détails de la base de données**. 

   1.  Dans **Définir les détails de la base** de données, entrez un nom et un identifiant uniques pour le partage de données. Vous utilisez cet identifiant pour mapper le partage de données en interne dans la hiérarchie des métadonnées (DBName.Schema.Table). 

   1.  Choisissez **Next** pour accorder des autorisations à d'autres utilisateurs sur la base de données et les tables partagées. 

------
#### [ AWS CLI ]

    Utilisez l'exemple de code suivant pour créer une base de données qui pointe vers la base de données Amazon Redshift partagée avec Lake Formation à l'aide du. AWS CLI

   ```
   aws glue create-database --cli-input-json \
   
   '{
    "CatalogId": "111122223333",
    "DatabaseInput": {
     "Name": "tahoedb",
     "FederatedDatabase": {
          "Identifier": "arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds",
          "ConnectionName": "aws:redshift"
      }
    }
    }'
   ```

------

1. Octroyez les autorisations.

    Après avoir créé la base de données, vous pouvez accorder des autorisations aux utilisateurs de votre compte ou à Comptes AWS des organisations externes. Vous ne pourrez pas accorder d'autorisations d'écriture (insertion, suppression) et de métadonnées (modification, suppression, création) sur la base de données fédérée mappée à un partage de données Amazon Redshift. Pour plus d'informations sur l'octroi d'autorisations, consultez[Gestion des autorisations relatives à Lake Formation](managing-permissions.md).
**Note**  
En tant qu'administrateur de data lake, vous pouvez uniquement consulter les tables des bases de données fédérées. Pour effectuer toute autre action, vous devez vous accorder davantage d'autorisations sur ces tables.

------
#### [ Console ]

   1. Sur l'écran **Accorder des autorisations**, sélectionnez les utilisateurs auxquels vous souhaitez accorder des autorisations.

   1. Choisissez **Accorder**. 

------
#### [ AWS CLI ]

   Utilisez les exemples suivants pour accorder des autorisations de base de données et de table à l'aide de AWS CLI :

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
      "Principal": {
              "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
      },
      "Resource": {
             "Database": {
                   "CatalogId": "111122223333",
                    "Name": "tahoedb"
              }
       },
       "Permissions": [
                "DESCRIBE"
        ],
       "PermissionsWithGrantOption": [
                            
        ]
    }
   ```

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
                      "Principal": {
                             "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
                      },
                     "Resource": {
                            "Table": {
                                 "CatalogId": "111122223333",
                                 "DatabaseName": "tahoedb",
                                 "Name": "public.customer"
                          }
                     },
                    "Permissions": [
                           "SELECT"
                     ],
                    "PermissionsWithGrantOption": [
                            "SELECT"
                      ]
    }
   ```

------

# Interrogation de bases de données fédérées
<a name="qerying-fed-db"></a>

 Après avoir accordé les autorisations, les utilisateurs peuvent se connecter et commencer à interroger la base de données fédérée à l'aide d'Amazon Redshift. Les utilisateurs peuvent désormais utiliser le nom de la base de données locale pour faire référence au partage de données Amazon Redshift dans les requêtes SQL. Dans Amazon Redshift, la table client du schéma public partagé via le partage de données sera associée à une table correspondante créée comme `public.customer` dans le catalogue de données.

1. Avant d'interroger la base de données fédérée à l'aide d'Amazon Redshift, l'administrateur du cluster crée une base de données à partir de la base de données du catalogue de données à l'aide de la commande suivante : 

   ```
   CREATE DATABASE sharedcustomerdb FROM ARN 'arn:aws:glue:<region>:111122223333:database/tahoedb' WITH DATA CATALOG SCHEMA tahoedb
   ```

1.  L'administrateur du cluster accorde des autorisations d'utilisation sur la base de données.

   ```
   GRANT USAGE ON DATABASE sharedcustomerdb TO IAM:user;
   ```

1.  Vous (l'utilisateur fédéré) pouvez désormais vous connecter aux outils SQL pour interroger la table. 

   ```
   Select * from sharedcustomerdb.public.customer limit 10;
   ```

 Pour plus d'informations, consultez la section [Requête AWS Glue Data Catalog dans](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-glue.html) le guide de gestion Amazon Redshift. 

# Gestion des autorisations sur les ensembles de données qui utilisent des métastores externes
<a name="data-sharing-hms"></a>

Grâce à la fédération des AWS Glue Data Catalog métadonnées (fédération du catalogue de données), vous pouvez connecter le catalogue de données à des métastores externes qui stockent les métadonnées de vos données Amazon S3 et gérer en toute sécurité les autorisations d'accès aux données à l'aide de. AWS Lake Formation Il n'est pas nécessaire de migrer les métadonnées du métastore externe vers le catalogue de données.

Le catalogue de données fournit un référentiel de métadonnées centralisé qui facilite la gestion et la découverte de données sur des systèmes disparates. Lorsque votre organisation gère les données du catalogue de données, vous pouvez les utiliser AWS Lake Formation pour contrôler l'accès à vos ensembles de données dans Amazon S3.

**Note**  
Actuellement, nous prenons uniquement en charge la fédération de métastores Apache Hive (version 3 et supérieure).

Pour configurer la fédération de catalogues de données, nous fournissons une application AWS Serverless Application Model (AWS SAM) appelée [GlueDataCatalogFederation- HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) dans le AWS Serverless Application Repository. 

L'implémentation de référence est fournie GitHub sous forme de projet open source sur [AWS Glue Data Catalog Federation - Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-federation).

L' AWS SAM application crée et déploie les ressources suivantes qui sont nécessaires pour connecter le catalogue de données au métastore Hive :
+ **Une AWS Lambda fonction** : héberge l'implémentation du service de fédération qui communique entre le catalogue de données et le métastore Hive. AWS Glue invoque cette fonction Lambda pour récupérer des objets de métadonnées depuis le métastore Hive.
+ **Amazon API Gateway**— Le point de connexion de votre métastore Hive qui agit comme un proxy pour acheminer toutes les invocations vers la fonction Lambda. 
+ Rôle **IAM : rôle** doté des autorisations nécessaires pour créer la connexion entre le catalogue de données et le métastore Hive.
+ **AWS Glue connection** — Amazon API Gateway Type de AWS Glue connexion qui stocke le Amazon API Gateway point de terminaison et un rôle IAM pour l'appeler. 

Lorsque vous interrogez des tables, le AWS Glue service effectue un appel d'exécution vers le métastore Hive et récupère les métadonnées. La fonction Lambda agit comme un traducteur entre le métastore Hive et le catalogue de données. 

Après avoir établi la connexion, afin de synchroniser les métadonnées du métastore Hive avec le catalogue de données, vous devez créer une base de données *fédérée dans le catalogue de données à l'aide des détails de connexion du métastore Hive, et mapper cette base* de données à la base de données Hive. Une base de données est qualifiée de base de données fédérée lorsqu'elle pointe vers une entité extérieure au catalogue de données.

Vous pouvez appliquer les autorisations de Lake Formation à l'aide du contrôle d'accès basé sur des balises et de la méthode des ressources nommées sur la base de données fédérée Comptes AWS AWS Organizations, et les partager entre plusieurs unités organisationnelles ()OUs. Vous pouvez également partager la base de données fédérée directement avec les principaux IAM depuis un autre compte.

 Vous pouvez définir des autorisations détaillées au niveau des colonnes, des lignes et des cellules à l'aide des filtres de données Lake Formation sur les tables Hive externes. Vous pouvez utiliser Amazon Athena, Amazon Redshift ou Amazon EMR pour interroger les tables Hive externes gérées par Lake Formation.

Pour plus d'informations sur le partage de données entre comptes et le filtrage des données, voir :
+ [Partage de données entre comptes dans Lake Formation](cross-account-permissions.md)
+ [Filtrage des données et sécurité au niveau des cellules dans Lake Formation](data-filtering.md)

**Étapes générales de fédération des métadonnées du catalogue de données**

1. Vous créez des utilisateurs et des rôles IAM dotés des autorisations appropriées pour déployer l' AWS SAM application et créer des bases de données fédérées.

1. Vous enregistrez l'emplacement des données Amazon S3 auprès de Lake Formation en sélectionnant l'`Enable Data Catalog federation`option pour les ensembles de données qui utilisent un métastore Hive externe. 

1. Vous configurez les paramètres de l' AWS SAM application (nom de AWS Glue connexion, URL du métastore Hive et paramètres de la fonction Lambda) et déployez l'application. AWS SAM 

1. L' AWS SAM application déploie les ressources nécessaires pour connecter le métastore Hive externe au catalogue de données. 

1. Pour appliquer les autorisations Lake Formation à la base de données et aux tables Hive, vous créez une base de données dans le catalogue de données à l'aide des détails de connexion au métastore Hive, et vous mappez cette base de données à la base de données Hive.

1. Accordez des autorisations sur les bases de données fédérées aux principaux de votre compte ou d'un autre compte. 

**Note**  
Vous pouvez connecter le catalogue de données à un mestastore Hive externe, créer des bases de données fédérées et exécuter des requêtes et des scripts ETL sur des bases de données et des tables Hive sans appliquer les autorisations de Lake Formation. Pour les données source dans Amazon S3 qui ne sont pas enregistrées auprès de Lake Formation, l'accès est déterminé par les politiques d'autorisation IAM pour Amazon S3 et AWS Glue les actions. 

Pour connaître les limitations, veuillez consulter [Considérations et limites relatives au partage des données du magasin de métadonnées Hive](notes-hms.md).

**Topics**
+ [Flux de travail](#hms-workflow)
+ [Conditions préalables à la connexion du catalogue de données au métastore Hive](hms-prerequisites.md)
+ [Connexion du catalogue de données à un métastore Hive externe](hms-setup.md)
+ [Ressources supplémentaires](additional-resources-hms.md)

## Flux de travail
<a name="hms-workflow"></a>

Le schéma suivant montre le flux de travail pour connecter le AWS Glue Data Catalog à un métastore Hive externe.

![\[Workflow diagram showing Hive metastore connection to AWS Glue Data Catalog with numbered steps.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/hms-workflow.png)


1. Un directeur soumet une requête à l'aide d'un service intégré tel qu'Athena ou Redshift Spectrum.

1. Le service intégré appelle le catalogue de données pour obtenir les métadonnées, qui à son tour appelle le point de terminaison du métastore Hive disponible derrière Amazon API Gateway, et reçoit les réponses aux demandes de métadonnées.

1. Le service intégré envoie la demande à Lake Formation pour vérifier les informations de la table et les informations d'identification pour accéder à la table.

1.  Lake Formation autorise la demande et fournit des informations d'identification temporaires à l'application intégrée, qui permet l'accès aux données. 

1. À l'aide des informations d'identification temporaires reçues de Lake Formation, le service intégré lit les données d'Amazon S3 et partage les résultats avec le principal.

# Conditions préalables à la connexion du catalogue de données au métastore Hive
<a name="hms-prerequisites"></a>

Pour connecter le AWS Glue Data Catalog à un métastore Apache Hive externe et configurer les autorisations d'accès aux données, vous devez remplir les conditions suivantes :
**Note**  
Nous recommandons qu'un administrateur de Lake Formation déploie l' AWS SAM application, et seul un utilisateur privilégié utilise la connexion au métastore Hive pour créer les bases de données fédérées correspondantes.

1. 

**Création des rôles IAM.**

**Pour déployer l' AWS SAM application**
   + Créez un rôle doté des autorisations nécessaires pour déployer les ressources (fonction Lambda Amazon API Gateway, rôle IAM et AWS Glue connexion) requises pour créer une connexion au métastore Hive.

**Pour créer des bases de données fédérées**

   Les autorisations suivantes sont requises pour les ressources :
   + `glue:CreateDatabase on resource arn:aws:glue:region:account-id:database/gluedatabasename`
   + `glue:PassConnection on resource arn:aws:glue:region:account-id:connection/hms_connection`

1. 

**Enregistrez le site Amazon S3 auprès de Lake Formation.**

   Pour utiliser Lake Formation afin de gérer et de sécuriser les données de votre lac de données, vous devez enregistrer l'emplacement Amazon S3 contenant les données des tables du métastore Hive auprès de Lake Formation. Lake Formation peut ainsi vendre des informations d'identification à des services AWS d'analyse tels qu'Athena, Redshift Spectrum et Amazon EMR.

   Pour plus d'informations sur l'enregistrement d'un site Amazon S3, consultez[Ajouter un emplacement Amazon S3 à votre lac de données](register-data-lake.md).

   Lorsque vous enregistrez l'emplacement Amazon S3, cochez la **case Enable Data Catalog Federation** pour autoriser Lake Formation à assumer un rôle d'accès aux tables d'une base de données fédérée.  
![\[Register location form for AWS Lake Formation with Amazon S3 path and IAM role options.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/hms-register-s3.png)

   Pour plus d'informations sur l'enregistrement d'un emplacement de données auprès de Lake Formation, consultez[Configurer un emplacement Amazon S3 pour votre lac de données](initial-lf-config.md#register-s3-location).

1. 

**Utilisez la bonne version d'Amazon EMR.**

   Pour utiliser Amazon EMR avec les bases de données de métastore Hive fédérées, vous devez disposer de la version 3.x ou supérieure de Hive et de la version 6.x ou supérieure d'Amazon EMR.

# Connexion du catalogue de données à un métastore Hive externe
<a name="hms-setup"></a>

[Pour le connecter AWS Glue Data Catalog à un métastore Hive, vous devez déployer une AWS SAM application appelée -. GlueDataCatalogFederation HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) Il crée les ressources nécessaires pour connecter le métastore Hive externe au catalogue de données. Vous pouvez accéder à l' AWS SAM application dans le AWS Serverless Application Repository.

L' AWS SAM application crée la connexion pour le métastore Hive derrière Amazon API Gateway à l'aide d'une fonction Lambda. L' AWS SAM application utilise un identifiant de ressource uniforme (URI) comme entrée par l'utilisateur et connecte le métastore Hive externe au catalogue de données. Lorsqu'un utilisateur exécute une requête sur des tables Hive, le catalogue de données appelle le point de terminaison API Gateway. Le point de terminaison invoque la fonction Lambda pour récupérer les métadonnées des tables Hive.

**Pour connecter le catalogue de données au métastore Hive et configurer les autorisations**

1. 

**Déployez AWS SAM l'application.**

   1. Connectez-vous au AWS Management Console et ouvrez le AWS Serverless Application Repository.

   1. Dans le volet de navigation, choisissez **Applications**.

   1. Choisissez **Applications publiques**.

   1. Sélectionnez l'option **Show apps that create custom IAM roles or resource policies** (Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés). 

   1. Dans le champ de recherche, entrez le nom **GlueDataCatalogFederation- HiveMetastore**. 

   1. Choisissez l'HiveMetastoreapplication **GlueDataCatalogFederation-**.

   1. Sous **Paramètres de l'application**, entrez les paramètres minimaux requis suivants pour votre fonction Lambda :
      + **Nom de l'application** : nom de votre AWS SAM application.
      + **GlueConnectionName**- Un nom pour la connexion.
      + **HiveMetastoreURIs**- L'URI de votre hôte de métastore Hive.
      + **LambdaMemory**- La quantité de mémoire Lambda en Mo comprise entre 128 et 10240. La valeur par défaut est 1024.
      + **LambdaTimeout**- Durée maximale d'invocation Lambda en secondes. La valeur par défaut est 30.
      + **VPCSecurityGroupIds**et **VPCSubnetidentifiants** : informations relatives au VPC sur lequel se trouve le métastore Hive.

   1. Sélectionnez **I acknowledge that this app creates custom IAM roles and resource policies** (Je reconnais que cette application crée des politiques de ressources et rôles IAM personnalisés). Pour de plus amples informations, veuillez cliquer sur le lien **Info**.

   1. En bas à droite de la section **Application settings** (Paramètres de l'application), choisissez **Deploy** (Déployer). Lorsque le déploiement est terminé, la fonction Lambda apparaît dans la section **Resources** (Ressources) dans la console Lambda.

    L'application est déployée sur Lambda. Son nom est précédé de **serverlessrepo-** pour indiquer que l'application a été déployée à partir du. AWS Serverless Application Repository La sélection de l'application vous amène à la page **Ressources** où chacune des ressources de l'application qui ont été déployées est répertoriée. Les ressources incluent la fonction Lambda qui permet la communication entre le catalogue de données et le métastore Hive, la AWS Glue connexion et d'autres ressources nécessaires à la fédération de bases de données. 

1. 

**Créez une base de données fédérée dans le catalogue de données.**

   Après avoir créé une connexion au métastore Hive, vous pouvez créer des bases de données fédérées dans le catalogue de données qui pointent vers les bases de données du métastore Hive externes. Vous devez créer une base de données correspondante dans le catalogue de données pour chaque base de données de métastore Hive que vous connectez au catalogue de données. 

------
#### [ Lake Formation console ]

   1. Sur la page **Partage de données**, choisissez l'onglet **Bases de données partagées**, puis sélectionnez **Créer une base de données**.

   1. Pour **Nom de la connexion**, choisissez le nom de votre connexion au métastore Hive dans le menu déroulant.

   1. Entrez un nom de base de données unique et l'identifiant de source de fédération pour la base de données. Il s'agit du nom que vous utilisez dans vos instructions SQL lorsque vous interrogez des tables. Le nom peut comporter un maximum de 255 caractères et doit être unique au sein de votre compte. 

   1. Choisissez **Créer une base de données**.

------
#### [ AWS CLI ]

   ```
   aws glue create-database \
   '{
    "CatalogId": "<111122223333>",
     "database-input": {
       "Name":"<fed_glue_db>",
       "FederatedDatabase":{
           "Identifier":"<hive_db_on_emr>",
           "ConnectionName":"<hms_connection>"
        }
      }
    }'
   ```

------

1. 

**Affichez les tables de la base de données fédérée.**

   Après avoir créé la base de données fédérée, vous pouvez consulter la liste des tables de votre métastore Hive à l'aide de la console Lake Formation ou du. AWS CLI

------
#### [ Lake Formation console ]

   1. Sélectionnez le nom de la base de données dans l'onglet **Bases de données partagées**.

   1. Sur la page **Bases** de données, choisissez **Afficher les tables**.

------
#### [ AWS CLI ]

   Les exemples suivants montrent comment récupérer la définition de connexion, le nom de la base de données et certaines ou toutes les tables de la base de données. Remplacez l'ID du catalogue de données par l' Compte AWS ID valide que vous avez utilisé pour créer la base de données. Remplacez `hms_connection` par le nom de la connexion.

   ```
   aws glue get-connection \
   --name <hms_connection>  \       
   --catalog-id 111122223333
   ```

   ```
   aws glue get-database \
   --name <fed_glu_db> \             
   --catalog-id 111122223333
   ```

   ```
   aws glue get-tables \
   --database-name <fed_glue_db> \
   --catalog-id 111122223333
   ```

   ```
   aws glue get-table \
   --database-name <fed_glue_db> \
   --name <hive_table_name> \
   --catalog-id 111122223333
   ```

------

1. 

**Octroyez les autorisations.**

    Après avoir créé la base de données, vous pouvez accorder des autorisations à d'autres utilisateurs et rôles IAM dans votre compte ou à Comptes AWS des organisations externes. Vous ne pourrez pas accorder d'autorisations d'écriture (insertion, suppression) et de métadonnées (modification, suppression, création) sur les bases de données fédérées. Pour plus d'informations sur l'octroi d'autorisations, consultez[Gestion des autorisations relatives à Lake Formation](managing-permissions.md). 

1. 

**Interrogez les bases de données fédérées.**

   Après avoir accordé les autorisations, les utilisateurs peuvent se connecter et commencer à interroger la base de données fédérée à l'aide d'Athena et d'Amazon Redshift. Les utilisateurs peuvent désormais utiliser le nom de la base de données locale pour faire référence à la base de données Hive dans les requêtes SQL.

   **Exemple de syntaxe Amazon Athena de requête**

   `fed_glue_db`Remplacez-le par le nom de base de données locale que vous avez créé précédemment.

    `Select * from fed_glue_db.customers limit 10;`

# Ressources supplémentaires
<a name="additional-resources-hms"></a>

Le billet de blog suivant contient des instructions détaillées pour configurer les autorisations de Lake Formation sur une base de données et des tables de métastore Hive, et pour les interroger à l'aide d'Athena. Nous illustrons également un cas d'utilisation du partage entre comptes, dans lequel un responsable de Lake Formation inscrit sur le compte producteur A partage une base de données Hive fédérée et des tables en utilisant le tag LF sur le compte client B. 
+ [Interrogez votre métastore Apache Hive avec des autorisations AWS Lake Formation](https://aws.amazon.com/blogs/big-data/query-your-apache-hive-metastore-with-aws-lake-formation-permissions/)