

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.

# Utilisation de l'intégration de l'application Lake Formation
<a name="using-cred-vending"></a>

Lake Formation permet à des services tiers de s'intégrer à Lake Formation et d'obtenir un accès temporaire aux données Amazon S3 pour le compte de leurs utilisateurs en utilisant [GetTemporaryGlueTableCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGlueTableCredentials.html)et en effectuant [GetTemporaryGluePartitionCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGluePartitionCredentials.html)des opérations. Cela permet aux services tiers d'utiliser la même fonctionnalité d'autorisation et de vente d'informations d'identification que les autres services d' AWS analyse. Cette section décrit comment utiliser ces opérations d'API pour intégrer un moteur de requête tiers àLake Formation.

 Ces opérations d'API sont désactivées par défaut. Il existe deux options pour autoriser Lake Formation à intégrer des applications :
+ Configurer les balises de session IAM qui sont validées chaque fois que les opérations de l'API d'intégration de l'application sont appelées

  Pour de plus amples informations, veuillez consulter [Activation des autorisations permettant à un moteur de requête tiers d'appeler des opérations d'API d'intégration d'applications](permitting-third-party-call.md).
+ Activez l'option qui **permet aux moteurs externes d'accéder aux données des emplacements Amazon S3 avec un accès complet aux tables**

  Cette option permet aux moteurs de requête et aux applications d'obtenir des informations d'identification sans balises de session IAM si l'utilisateur dispose d'un accès complet à la table. Il fournit des avantages en termes de performances aux moteurs de requêtes et aux applications, tout en simplifiant l'accès aux données. Amazon EMR sur Amazon EC2 est en mesure de tirer parti de ce paramètre. 

  Pour de plus amples informations, veuillez consulter [Intégration des applications pour un accès complet aux tables](full-table-credential-vending.md).

**Topics**
+ [Comment fonctionne l'intégration de l'application Lake Formation](how-vending-works.md)
+ [Rôles et responsabilités dans l'intégration de l'application Lake Formation](roles-and-responsibilities.md)
+ [Lake Formationflux de travail pour les opérations d'API d'intégration d'applications](api-overview.md)
+ [Enregistrement d'un moteur de requête tiers](register-query-engine.md)
+ [Activation des autorisations permettant à un moteur de requête tiers d'appeler des opérations d'API d'intégration d'applications](permitting-third-party-call.md)
+ [Intégration des applications pour un accès complet aux tables](full-table-credential-vending.md)

# Comment fonctionne l'intégration de l'application Lake Formation
<a name="how-vending-works"></a>

Cette section décrit comment utiliser les opérations de l'API d'intégration d'applications pour intégrer une application tierce (moteur de requête) àLake Formation.

![\[Lake Formation data access workflow with user authentication and service integration.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/credential-vending-new.png)


1. L'Lake Formationadministrateur exécute les activités suivantes :
   + Enregistre un site Amazon S3 auprès de Lake Formation en fournissant un rôle IAM (utilisé pour les informations d'identification automatiques) doté des autorisations appropriées pour accéder aux données du site Amazon S3
   + Enregistre une application tierce pour pouvoir appeler les opérations de l'API de vente d'informations d'identification de Lake Formation. Consultez [Enregistrement d'un moteur de requête tiers](register-query-engine.md)
   + Accorde aux utilisateurs des autorisations d'accès aux bases de données et aux tables

     Par exemple, si vous souhaitez publier un ensemble de données de sessions utilisateur comprenant des colonnes contenant des informations personnelles identifiables (PII), pour restreindre l'accès, vous devez attribuer à ces colonnes une balise [LF-TBAC](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html.html) nommée « classification » avec la valeur « sensible ». Vous définissez ensuite une autorisation qui permet à un analyste commercial d'accéder aux données des sessions utilisateur, mais vous excluez les colonnes étiquetées avec *classification = sensitive*. 

1. Un principal (utilisateur) soumet une requête à un service intégré.

1. L'application intégrée envoie la demande à Lake Formation pour demander les informations de la table et les informations d'identification pour accéder à la table. 

1. Si le principal demandeur est autorisé à accéder à la table, Lake Formation renvoie les informations d'identification à l'application intégrée, qui autorise l'accès aux données.
**Note**  
Lake Formation n'accède pas aux données sous-jacentes lors de la vente d'informations d'identification.

1. Le service intégré lit les données d'Amazon S3, filtre les colonnes en fonction des politiques reçues et renvoie les résultats au principal.

**Important**  
Lake Formationles opérations de l'API de vente d'informations d'identification permettent une **application distribuée avec un modèle de refus explicite en cas d'échec (fermeture en cas d'échec**). Cela introduit un modèle de sécurité tripartite entre les clients, les services tiers et Lake Formation. Les services intégrés sont fiables pour appliquer correctement Lake Formation les autorisations (application distribuée). 

Le service intégré est chargé de filtrer les données lues depuis Amazon S3 en fonction des politiques renvoyées Lake Formation avant que les données filtrées ne soient renvoyées à l'utilisateur. Les services intégrés suivent un modèle de fermeture automatique, ce qui signifie qu'ils doivent échouer à la requête s'ils ne sont pas en mesure d'appliquer les autorisations requisesLake Formation. 

# Rôles et responsabilités dans l'intégration de l'application Lake Formation
<a name="roles-and-responsibilities"></a>

Vous trouverez ci-dessous les rôles et les responsabilités associées pour permettre l'intégration d'applications tierces avec AWS Lake Formation.


****  

| Role | Responsabilité | 
| --- | --- | 
| Le client |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/roles-and-responsibilities.html)  | 
| Le tiers |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/roles-and-responsibilities.html)  | 
| AWS Lake Formation |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/roles-and-responsibilities.html)  | 

# Lake Formationflux de travail pour les opérations d'API d'intégration d'applications
<a name="api-overview"></a>

Le flux de travail pour les opérations d'API d'intégration d'applications est le suivant :

1. Un utilisateur soumet une requête ou une demande de données à l'aide d'un moteur de requête tiers intégré. Le moteur de requête assume un rôle IAM qui représente l'utilisateur ou un groupe d'utilisateurs et récupère des informations d'identification fiables à utiliser lors de l'appel des opérations de l'API d'intégration de l'application.

1.  Le moteur de requête appelle`GetUnfilteredTableMetadata`, et s'il s'agit d'une table partitionnée, le moteur de requête appelle `GetUnfilteredPartitionsMetadata` pour récupérer les métadonnées et les informations de politique à partir du catalogue de données.

1.  Lake Formation autorise la demande. Si l'utilisateur ne dispose pas des autorisations appropriées sur la table, il *AccessDeniedException*est renvoyé. 

1. Dans le cadre de la demande, le moteur de requête envoie le filtrage qu'il prend en charge. *Deux indicateurs peuvent être envoyés dans un tableau : *COLUMN\$1PERMISSIONS et CELL\$1FILTER\$1PERMISSION*.* Si le moteur de requête ne prend en charge aucune de ces fonctionnalités et qu'une politique existe sur la table pour la fonctionnalité, un *PermissionTypeMismatchException*est émis et la requête échoue. Cela permet d'éviter les fuites de données.

1. La réponse renvoyée contient les éléments suivants :
   + Le schéma complet de la table afin que les moteurs de requête puissent l'utiliser pour analyser les données stockées.
   + Liste des colonnes autorisées auxquelles l'utilisateur a accès. Si la liste des colonnes autorisées est vide, cela indique que l'utilisateur dispose d'`DESCRIBE`autorisations, mais pas d'`SELECT`autorisations, et la requête échoue.
   + Un drapeau`IsRegisteredWithLakeFormation`, qui indique si Lake Formation peut fournir des informations d'identification à ces données de ressources. Si le résultat est faux, les informations d'identification des clients doivent être utilisées pour accéder à Amazon S3. 
   +  Une liste indiquant, le `CellFilters` cas échéant, à appliquer aux lignes de données. Cette liste contient des colonnes et une expression permettant d'évaluer chaque ligne. Ce champ ne doit être renseigné que si *CELL\$1FILTER\$1PERMISSION* est envoyé dans le cadre de la demande et s'il existe un filtre de données dans la table pour l'utilisateur appelant.

1. Une fois les métadonnées récupérées, le moteur de requête appelle `GetTemporaryGlueTableCredentials` ou `GetTemporaryGluePartitionCredentials` pour obtenir des AWS informations d'identification afin de récupérer les données depuis l'emplacement Amazon S3. 

1. Le moteur de requête lit les objets pertinents depuis Amazon S3, filtre les données en fonction des politiques reçues à l'étape 2 et renvoie les résultats à l'utilisateur. 

Les opérations de l'API d'intégration d'applications Lake Formation contiennent du contenu supplémentaire pour configurer l'intégration avec des moteurs de requêtes tiers. Vous pouvez consulter les détails des opérations dans la section [Opérations de l'API Credential vending](aws-lake-formation-api-credential-vending.md).

 `QuerySessionContext`Il s'agit d'une structure à laquelle les moteurs de requêtes peuvent également envoyer des informations Lake Formation pour ces opérations d'API d'intégration d'applications. Il permet Lake Formation de stocker et d'utiliser un contexte supplémentaire pour une requête donnée. Voici un exemple de la façon dont [QuerySessionContext](https://docs.aws.amazon.com/glue/latest/webapi/API_QuerySessionContext.html)il convient de l'utiliser :

1. Le moteur de requête effectue un `GetInternalUnfilteredMetadata` appel en transmettant une structure QSC contenant un identifiant de requête unique dans la demande :

   ```
   {
       "QuerySessionContext": {
           "QueryId": "your-unique-identifier-here"
       }
   }
   ```

1. L'`GetInternalUnfilteredMetadata`appel aura renvoyé une `QueryAuthorizationId` chaîne dans la réponse. Lors du prochain appel de requête (et de tout appel ultérieur) qui accepte une structure QSC en entrée, le moteur de requête transmet la même structure QSC qui contient désormais également le résultat `QueryAuthorizationId` renvoyé par. Lake Formation Supposons que le prochain appel soit `GetTemporaryGlueTableCredentials` ; la demande contiendra :

   ```
   {
       "QuerySessionContext": {
           "QueryAuthorizationId": "lf-returned-query-authz-id-here",
           "QueryId": "your-unique-identifier-here"
       },
   }
   ```

# Enregistrement d'un moteur de requête tiers
<a name="register-query-engine"></a>

Avant qu'un moteur de requête tiers puisse utiliser les opérations de l'API d'intégration d'applications, vous devez explicitement autoriser le moteur de requêtes à appeler les opérations d'API en votre nom. Cela se fait en quelques étapes :

1. Vous devez spécifier les AWS comptes et les balises de session IAM qui nécessitent une autorisation pour appeler les opérations de l'API d'intégration des applications via la AWS Lake Formation console, l'API/SDK AWS CLI ou l'API/le. 

1. Lorsque le moteur de requête tiers assume le rôle d'exécution dans votre compte, il doit associer une balise de session enregistrée auprès de Lake Formation représentant le moteur tiers. Lake Formationutilise cette balise pour le valider si la demande provient d'un moteur approuvé. Pour plus d'informations sur les balises de session, consultez la section [Balises de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) dans le guide de l'utilisateur IAM.

1. Lorsque vous configurez un rôle d'exécution de moteur de requête tiers, vous devez disposer des autorisations minimales suivantes dans la politique IAM :

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {"Effect": "Allow",
       "Action": [
         "lakeformation:GetDataAccess",      
         "glue:GetTable",
         "glue:GetTables",
         "glue:GetDatabase",
         "glue:GetDatabases",
         "glue:CreateDatabase",
         "glue:GetUserDefinedFunction",
         "glue:GetUserDefinedFunctions",
         "glue:GetPartition",
         "glue:GetPartitions"
       ],
       "Resource": "*"
     }
   }
   ```

------

1. Configurez une politique d'approbation des rôles sur le rôle d'exécution du moteur de requête afin de contrôler avec précision la paire clé-valeur de balise de session qui peut être attachée à ce rôle. Dans l'exemple suivant, ce rôle est uniquement autorisé à associer une clé de balise de session `"LakeFormationAuthorizedCaller"` et une valeur de balise `"engine1"` de session, et aucune autre paire clé-valeur de balise de session n'est autorisée.

   ```
   {
       "Sid": "AllowPassSessionTags",
       "Effect": "Allow",
       "Principal": {
           "AWS": "arn:aws:iam::111122223333:role/query-execution-role"
       },
       "Action": "sts:TagSession",
       "Condition": {
       "StringLike": {
           "aws:RequestTag/LakeFormationAuthorizedCaller": "engine1"        }
       }
   }
   ```

Lorsque `LakeFormationAuthorizedCaller` l'opération STS : AssumeRole API est appelée pour récupérer les informations d'identification à utiliser par le moteur de requête, le tag de session doit être inclus dans la [ AssumeRole demande](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role). Les informations d'identification temporaires renvoyées peuvent être utilisées pour effectuer des demandes d'API d'intégration d'Lake Formationapplications.

Lake Formationles opérations de l'API d'intégration d'applications nécessitent que le principal appelant soit un rôle IAM. Le rôle IAM doit inclure une balise de session avec une valeur prédéterminée enregistrée avecLake Formation. Cette balise permet Lake Formation de vérifier que le rôle utilisé pour appeler les opérations de l'API d'intégration de l'application est autorisé à le faire.

# Activation des autorisations permettant à un moteur de requête tiers d'appeler des opérations d'API d'intégration d'applications
<a name="permitting-third-party-call"></a>

Procédez comme suit pour autoriser un moteur de requête tiers à appeler les opérations de l'API d'intégration d'applications via la AWS Lake Formation console, l'API/SDK AWS CLI ou l'API/le.

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

**Pour enregistrer votre compte pour le filtrage externe des données :**

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

1. Dans le volet de navigation de gauche, développez **Administration**, puis choisissez **Paramètre d'intégration des applications**.

1. Sur la page des **paramètres d'intégration des applications**, choisissez l'option **Autoriser les moteurs externes à filtrer les données dans les sites Amazon S3 enregistrés auprès** deLake Formation.

1. Entrez les balises de session que vous avez créées pour le moteur tiers. Pour plus d'informations sur les balises de session, voir [Transmission de balises de session dans AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) dans le *Guide de Gestion des identités et des accès AWS l'utilisateur*.

1. Entrez le compte IDs pour les utilisateurs qui peuvent utiliser le moteur tiers pour accéder aux informations de métadonnées non filtrées et aux informations d'identification d'accès aux données des ressources du compte courant.

   Vous pouvez également utiliser le champ ID du AWS compte pour configurer l'accès entre comptes.  
![\[La capture d'écran montre la page des paramètres d'intégration des applications pourLake Formation. L'option Autoriser les moteurs externes à filtrer les données dans les sites Amazon S3 enregistrés auprès d'Amazon S3 Lake Formation est sélectionnée. Pour les valeurs des balises de session, la zone de texte est vide, mais six balises sont affichées sous le champ, avec les valeurs « engine1, « engine2 », « engine3 », « session1 », « session2 » et « session3 ». Le dernier champ indique le Compte AWS IDs champ. Le champ de texte est vide, mais trois balises sont affichées en dessous de ce champ avec un compte IDs. Les valeurs de l'identifiant du compte sont supprimées.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/cred-vending-external-data-filtering.png)

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

Utilisez la commande `put-data-lake-settings` CLI pour définir les paramètres suivants.

Trois champs sont à configurer lors de l'utilisation de cette AWS CLI commande :
+ `allow-external-data-filtering `— (booléen) Indique qu'un moteur tiers peut accéder aux informations de métadonnées non filtrées et aux informations d'accès aux données des ressources du compte courant. 
+ `external-data-filtering-allow-list`— (tableau) Liste de comptes IDs pouvant accéder aux informations de métadonnées non filtrées et aux informations d'identification d'accès aux données des ressources du compte courant lors de l'utilisation d'un moteur tiers. Lorsqu'elle AllowExternalDataFiltering est définie sur true, la ExternalDataFilteringAllowList propriété doit inclure au moins un identifiant de compte. Une liste vide n'est pas autorisée.
+ `authorized-sessions-tag-value-list`— (tableau) Liste des valeurs de balises de session autorisées (chaînes). Si un identifiant de rôle IAM a été associé à une paire clé-valeur autorisée, si le tag de session est inclus dans la liste, la session a accès aux informations de métadonnées non filtrées et aux informations d'identification d'accès aux données sur les ressources du compte configuré. La clé de balise de session autorisée est définie comme`*LakeFormationAuthorizedCaller*`.
+ `AllowFullTableExternalDataAccess`- (booléen) S'il faut autoriser un moteur de requête tiers à obtenir des informations d'accès aux données sans balises de session lorsqu'un appelant dispose d'autorisations d'accès complètes aux données. 

Par exemple :

```
aws lakeformation put-data-lake-settings --cli-input-json file://datalakesettings.json

{
  "DataLakeSettings": {
    "DataLakeAdmins": [
      {
        "DataLakePrincipalIdentifier": "arn:aws:iam::111111111111:user/lakeAdmin"
      }
    ],
    "CreateDatabaseDefaultPermissions": [],
    "CreateTableDefaultPermissions": [],
    "TrustedResourceOwners": [],
    "AllowExternalDataFiltering": true,
    "ExternalDataFilteringAllowList": [
        {"DataLakePrincipalIdentifier": "111111111111"}
        ],
    "AuthorizedSessionTagValueList": ["engine1"],
    "AllowFullTableExternalDataAccess": false
    }
    

}
```

------
#### [ API/SDK ]

Utilisez l'opération `PutDataLakeSetting` API pour définir les paramètres suivants. 

Trois champs doivent être configurés lors de l'utilisation de cette opération d'API :
+ `AllowExternalDataFiltering`— (Booléen) Indique si un moteur tiers peut accéder aux informations de métadonnées non filtrées et aux informations d'accès aux données des ressources du compte courant. 
+ `ExternalDataFilteringAllowList`— (tableau) Liste de comptes IDs pouvant accéder à des informations de métadonnées non filtrées et aux informations d'identification d'accès aux données des ressources du compte courant à l'aide d'un moteur tiers. 
+ `AuthorizedSectionsTagValueList`— (tableau) Liste des valeurs de balises autorisées (chaînes). Si un identifiant de rôle IAM a été associé à une balise autorisée, la session a accès aux informations de métadonnées non filtrées et aux informations d'identification d'accès aux données sur les ressources du compte configuré. La clé de balise de session autorisée est définie comme`*LakeFormationAuthorizedCaller*`. 
+  `AllowFullTableExternalDataAccess`- (booléen) S'il faut autoriser un moteur de requête tiers à obtenir des informations d'accès aux données sans balises de session lorsqu'un appelant dispose d'autorisations d'accès complètes aux données. 

Par exemple :

```
//Enable session tag on existing data lake settings
public void sessionTagSetUpForExternalFiltering(AWSLakeFormationClient lakeformation) {
    GetDataLakeSettingsResult getDataLakeSettingsResult = lfClient.getDataLakeSettings(new GetDataLakeSettingsRequest());
    DataLakeSettings dataLakeSettings = getDataLakeSettingsResult.getDataLakeSettings();
    
    //set account level flag to allow external filtering
    dataLakeSettings.setAllowExternalDataFiltering(true);
    
    //set account that are allowed to call credential vending or Glue GetFilteredMetadata API
    List<DataLakePrincipal> allowlist = new ArrayList<>();
    allowlist.add(new DataLakePrincipal().withDataLakePrincipalIdentifier("111111111111"));
    dataLakeSettings.setWhitelistedForExternalDataFiltering(allowlist);
    
    //set registered session tag values
    List<String> registeredTagValues = new ArrayList<>();
    registeredTagValues.add("engine1");
    dataLakeSettings.setAuthorizedSessionTagValueList(registeredTagValues);

    lakeformation.putDataLakeSettings(new PutDataLakeSettingsRequest().withDataLakeSettings(dataLakeSettings));
}
```

------

# Intégration des applications pour un accès complet aux tables
<a name="full-table-credential-vending"></a>

Procédez comme suit pour permettre aux moteurs de requêtes tiers d'accéder aux données sans validation du tag de session IAM : 

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

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

1. Dans le volet de navigation de gauche, développez **Administration**, puis sélectionnez **Paramètres d'intégration des applications**.

1. Sur la page des **paramètres d'intégration des applications**, choisissez l'option **Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec accès complet aux tables**. 

   Lorsque vous activez cette option, Lake Formation renvoie les informations d'identification à l'application demandeuse directement sans validation des balises de session IAM. 

![\[La capture d'écran montre la page des paramètres d'intégration des applications pourLake Formation. L'option Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec un accès complet aux tables est sélectionnée.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/cred-vending-external-full-table.png)


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

Utilisez la commande `put-data-lake-settings` CLI pour définir le `AllowFullTableExternalDataAccess` paramètre.

```
aws lakeformation put-data-lake-settings —cli-input-json file://put-data-lake-settings.json —region ap-northeast-1 
{
    "DataLakeSettings": {
        "DataLakeAdmins": [
            {
                "DataLakePrincipalIdentifier": "arn:aws:iam::111111111111:user/lakeAdmin"
            }
        ],
        "AllowFullTableExternalDataAccess": true
    }
}
```

------