

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.

# Activer la formation de lacs avec des groupes de fonctionnalités
<a name="feature-store-lf-governance"></a>

Lorsque vous activez AWS Lake Formation sur un groupe de fonctionnalités dans Amazon SageMaker Feature Store, vous pouvez renforcer la sécurité au niveau des colonnes, des lignes et des cellules pour les données relatives aux fonctionnalités de votre boutique hors ligne. Au lieu de gérer l'accès par le biais de politiques IAM individuelles sur Amazon S3 et ses AWS Glue ressources, vous utilisez le modèle d'autorisation d'octroi et de révocation de Lake Formation pour contrôler quels utilisateurs et quels rôles peuvent accéder à des fonctionnalités et à des enregistrements spécifiques. Pour plus d'informations sur Lake Formation, consultez le [AWS Lake Formation Developer Guide](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

**Important**  
Le contrôle d'accès à Lake Formation s'applique uniquement au magasin hors ligne. Le magasin hors ligne est soutenu par Amazon S3 et enregistré dans le AWS Glue Data Catalog, régi par Lake Formation. L'accès à la boutique en ligne continue d'être contrôlé par le biais de politiques IAM. Pour configurer Lake Formation, vous utilisez les `LakeFormationConfig` classes `FeatureGroupManager` et du SDK SageMaker AI Python (`sagemaker.mlops.feature_store`). Lake Formation prend en charge le [mode d'accès hybride](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-access-mode.html), qui permet à la fois aux politiques IAM et aux autorisations de Lake Formation de coexister lors d'une migration progressive.

## Conditions préalables
<a name="feature-store-lf-prerequisites"></a>

Avant d'activer Lake Formation, vérifiez que vous disposez des éléments suivants :
+ Un groupe de fonctionnalités d' SageMaker IA avec un magasin hors ligne configuré, ou vous pouvez en créer un nouveau avec un magasin hors ligne dans le cadre de la configuration. Lake Formation nécessite un magasin hors ligne car il régit l'accès via la table du catalogue de AWS Glue données créée par le magasin hors ligne.
+ Un rôle d'exécution IAM doté des autorisations appropriées. L'exemple suivant montre la politique IAM minimale requise. Remplacez les valeurs de l'espace réservé par les vôtres.

  ```
  {
      "Version": "2012-10-17", 		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerFeatureGroupOperations",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:CreateFeatureGroup",
                  "sagemaker:DescribeFeatureGroup"
              ],
              "Resource": "arn:aws:sagemaker:*:*:feature-group/*"
          },
          {
              "Sid": "LakeFormation",
              "Effect": "Allow",
              "Action": [
                  "lakeformation:RegisterResource",
                  "lakeformation:GrantPermissions",
                  "lakeformation:RevokePermissions",
                  "lakeformation:ListPermissions"
              ],
              "Resource": "*"
          },
          {
              "Sid": "GlueCatalogReadAccess",
              "Effect": "Allow",
              "Action": [
                  "glue:GetTable",
                  "glue:GetDatabase"
              ],
              "Resource": [
                  "arn:aws:glue:*:*:catalog",
                  "arn:aws:glue:*:*:database/sagemaker_featurestore",
                  "arn:aws:glue:*:*:table/sagemaker_featurestore/*"
              ]
          },
          {
              "Sid": "GlueCatalogTableCreate",
              "Effect": "Allow",
              "Action": [
                  "glue:CreateTable"
              ],
              "Resource": [
                  "arn:aws:glue:*:*:catalog",
                  "arn:aws:glue:*:*:database/sagemaker_featurestore",
                  "arn:aws:glue:*:*:table/sagemaker_featurestore/*"
              ]
          },
          {
              "Sid": "PassOfflineStoreRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::<account-id>:role/<offline-store-role-name>"
          },
          {
              "Sid": "S3FeatureStoreStorage",
              "Effect": "Allow",
              "Action": [
                  "s3:GetBucketAcl",
                  "s3:GetBucketLocation",
                  "s3:ListBucket"
              ],
              "Resource": "arn:aws:s3:::<offline-store-bucket-name>"
          },
          {
              "Sid": "LakeFormationRegistrationRole",
              "Effect": "Allow",
              "Action": [
                  "iam:GetRole",
                  "iam:GetRolePolicy"
              ],
              "Resource": "arn:aws:iam::<account-id>:role/<registration-role-name>"
          }
      ]
  }
  ```
**Note**  
La `LakeFormationRegistrationRole` déclaration accorde l'autorisation de lire le rôle utilisé pour enregistrer le site Amazon S3 auprès de Lake Formation. Si vous utilisez le rôle lié au service Lake Formation (`use_service_linked_role=True`), définissez la ressource sur. `arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess` Si vous fournissez votre propre rôle d'enregistrement, définissez-le sur l'ARN de ce rôle.
**Note**  
Si le mode d'accès hybride est désactivé sur la `sagemaker_featurestore` base de données, l'appelant doit également disposer de l'`CREATE_TABLE`autorisation Lake Formation sur la base de données. L'administrateur de Lake Formation peut accorder cette autorisation via la console ou l'API Lake Formation.
+ Un administrateur de Lake Formation configuré dans votre compte. Vous devez désigner au moins un utilisateur ou un rôle IAM en tant qu'administrateur de Lake Formation. Pour les instructions de configuration, consultez [Getting Started with Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html) dans la documentation Lake Formation.
+ Le SDK SageMaker AI Python version 3.8.0 ou ultérieure. Installez ou mettez à niveau le `sagemaker` package : `pip install --upgrade sagemaker>=3.8.0`
+ Cross-account configuration (le cas échéant). Si le bucket Amazon S3 de la boutique hors ligne du groupe de fonctionnalités se trouve dans un autre compartiment Compte AWS, une configuration supplémentaire de partage entre comptes Lake Formation est requise, notamment des politiques en matière de AWS Glue ressources, l'acceptation du partage de AWS RAM, des liens vers les ressources et la configuration de la base de données client. Pour plus d'informations, consultez la section [Partage de données entre comptes](https://docs.aws.amazon.com/lake-formation/latest/dg/sharing-catalog-resources.html) dans la documentation de Lake Formation.

## Concepts clés
<a name="feature-store-lf-concepts"></a>

Les concepts suivants sont importants pour comprendre le fonctionnement de Lake Formation avec Feature Store.

### Comparaison du modèle d'autorisation de Lake Formation avec le IAM-only modèle
<a name="feature-store-lf-permission-model"></a>

Par défaut, l'accès aux AWS Glue Data Catalog tables, y compris celles créées par Feature Store, est contrôlé uniquement par le biais des politiques IAM. Lorsque vous activez Lake Formation, l'accès nécessite à la fois des autorisations IAM et des autorisations Lake Formation. Lake Formation utilise un modèle d'octroi et de révocation dans lequel vous accordez explicitement des autorisations, telles que `SELECT` ou`DESCRIBE`, sur des bases de données, des tables ou des colonnes spécifiques aux principaux IAM.

### Mode d'accès hybride
<a name="feature-store-lf-hybrid-access"></a>

Lorsque vous activez Lake Formation, vous choisissez d'utiliser le mode d'accès hybride ou le Formation-only mode Lake :
+ **Mode d'accès hybride** (`hybrid_access_mode_enabled=True`) : les politiques IAM et les autorisations de Lake Formation sont évaluées. Les principaux qui y ont accès par le biais des politiques IAM existantes continuent d'y avoir accès, et vous pouvez également accorder un accès détaillé via Lake Formation. Cela est utile pour une migration progressive.
+ ** Formation-only Mode Lake** (`hybrid_access_mode_enabled=False`) : seules les autorisations Lake Formation sont évaluées. IAM-based L'accès existant à la AWS Glue table est révoqué. Cela fournit le meilleur contrôle d'accès, mais peut interrompre les charges de travail existantes.

**Avertissement**  
Lorsque vous le définissez`hybrid_access_mode_enabled=False`, le SDK révoque l'`IAMAllowedPrincipal`autorisation inscrite sur la AWS Glue table. Tous les jobs, blocs-notes ou pipelines existants qui accèdent à cette table via les seules autorisations IAM en perdent immédiatement l'accès. Vérifiez que vous avez accordé les autorisations nécessaires à Lake Formation à tous les principaux concernés avant de désactiver le mode d'accès hybride.

**Note**  
Vous devez désactiver le mode d'accès hybride pour l'accès entre comptes lorsque le format du tableau est Iceberg.

### Politique de refus S3
<a name="feature-store-lf-s3-deny-policy"></a>

Même après avoir activé Lake Formation sur la AWS Glue Data Catalog table, les utilisateurs ayant un accès direct à Amazon S3 (via des politiques IAM) peuvent contourner Lake Formation en lisant directement les objets Amazon S3 sous-jacents. Pour combler cette lacune, appliquez une politique de compartiment Amazon S3 qui refuse l'accès direct au préfixe du magasin hors ligne à tous les principaux, à l'exception du rôle de service Lake Formation et du rôle d'exécution Feature Store.

**Important**  
Le SDK n'applique pas automatiquement la politique de refus d'Amazon S3. Une fois que vous avez activé Lake Formation, le SDK enregistre une politique de bucket recommandée sous forme de message d'avertissement. Passez en revue cette politique et appliquez-la à votre compartiment Amazon S3 pour appliquer le contrôle d'accès de bout en bout.

## Référence de configuration
<a name="feature-store-lf-configuration"></a>

Utilisez la `LakeFormationConfig` classe pour configurer Lake Formation. Vous transmettez cette configuration `FeatureGroupManager.create()` lors de la création d'un nouveau groupe de fonctionnalités ou vous utilisez les paramètres individuels directement `enable_lake_formation()` pour les groupes de fonctionnalités existants.


| Paramètre | Type | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| enabled | bool | False | Non | Réglez sur True pour activer Lake Formation dans la boutique hors ligne du groupe de fonctionnalités. | 
| use\_service\_linked\_role | bool | True | Non | S'il faut utiliser le rôle lié au service Lake Formation pour enregistrer l'emplacement S3. Défini sur False si vous utilisez un rôle d'enregistrement personnalisé. Vous ne pouvez pas utiliser un rôle lié à un service pour un accès entre comptes ou lorsque vous utilisez des moteurs de requête tiers (tels qu'Apache Spark). Pour les moteurs tiers, vous devez fournir votre propre rôle d'enregistrement viaregistration\_role\_arn. | 
| registration\_role\_arn | str | Aucune | Conditionnel | L'ARN d'un rôle IAM personnalisé pour enregistrer l'emplacement S3 du magasin hors ligne auprès de Lake Formation. Obligatoire quand use\_service\_linked\_role c'est le casFalse. | 
| hybrid\_access\_mode\_enabled | bool | — | Oui | S'il faut le révoquer IAMAllowedPrincipal du AWS Glue tableau. False = Formation-only Autorisations du lac. True= mode hybride (IAM et Lake Formation). Vous devez faire un choix explicite. | 
| acknowledge\_risk | bool | — | Oui | Ça doit être True pour continuer. Il s'agit d'une confirmation de sécurité. Le réglage False déclenche un RuntimeError avant que toute opération ne soit effectuée. | 

### Comprendre la notion de risque
<a name="feature-store-lf-acknowledge-risk"></a>

Le `acknowledge_risk` paramètre est une barrière de sécurité. En le réglant sur`True`, vous reconnaissez ce qui suit :
+ Si `hybrid_access_mode_enabled=False` : les IAM-based tâches, blocs-notes et pipelines existants qui interrogent cette AWS Glue table perdent immédiatement l'accès. Vous devez accorder les autorisations de Lake Formation à ces principaux avant ou peu de temps après l'activation.
+ Si les autorisations de Lake Formation ne sont pas correctement configurées : les données du groupe d'entités risquent de devenir inaccessibles à tous les utilisateurs jusqu'à ce que les autorisations soient corrigées.
+ L'opération modifie les autorisations du catalogue de AWS Glue données : ces modifications concernent tous les utilisateurs de la AWS Glue table, et pas uniquement les utilisateurs du Feature Store. Toutes les requêtes Athena, les tâches Spark ou les autres services qui lisent à partir de ce tableau sont affectés.

## Comment ça marche
<a name="feature-store-lf-how-it-works"></a>

Lorsque vous activez Lake Formation, le SDK effectue une configuration en trois phases :

1. **Enregistrez l'emplacement S3.** Le SDK enregistre le chemin S3 du magasin hors ligne auprès de Lake Formation à l'aide du rôle lié au service Lake Formation ou d'un rôle d'enregistrement personnalisé que vous spécifiez. Si vous utilisez des moteurs de requêtes tiers (tels qu'Apache Spark), vous devez fournir votre propre rôle d'enregistrement, car le rôle lié au service ne prend pas en charge l'accès aux moteurs tiers.

1. **Autorisations de Grant Lake Formation.** Le SDK accorde`SELECT`,, `INSERT` `DELETE``DESCRIBE`, et des `ALTER` autorisations sur la table du catalogue de AWS Glue données au rôle d'exécution du groupe d'entités.

1. **Révoquez IAMAllowedPrincipal éventuellement.** Si vous le définissez`hybrid_access_mode_enabled=False`, le SDK révoque l'`IAMAllowedPrincipal`autorisation inscrite sur la AWS Glue table.

Une fois toutes les phases terminées, le SDK enregistre une politique de refus de compartiment S3 recommandée. Consultez et appliquez cette politique pour empêcher l'accès direct à Amazon S3 qui contourne le contrôle d'accès à Lake Formation.

**Note**  
Si la configuration échoue en cours de route (par exemple, après avoir enregistré l'emplacement S3 mais avant d'accorder les autorisations), vous pouvez réexécuter la méthode en toute sécurité. `enable_lake_formation()` Le SDK est idempotent et ignore les étapes déjà terminées avec succès.

## Exemples d’utilisation
<a name="feature-store-lf-examples"></a>

### Créez un nouveau groupe de fonctionnalités avec le contrôle d'accès à Lake Formation
<a name="feature-store-lf-example-new-fg"></a>

L'exemple suivant crée un nouveau groupe d'entités avec un magasin hors ligne et active le contrôle d'accès à Lake Formation en une seule opération.

```
from sagemaker.core.helper.session_helper import Session
from sagemaker.core.shapes import (
    FeatureDefinition,
    OfflineStoreConfig,
    OnlineStoreConfig,
    S3StorageConfig,
)
from sagemaker.mlops.feature_store import FeatureGroupManager, LakeFormationConfig

session = Session()
region = session.boto_region_name

role_arn = "arn:aws:iam::<account-id>:role/<execution-role-name>"
registration_role_arn = "arn:aws:iam::<account-id>:role/<registration-role-name>"
fg_name = "my-feature-group"
bucket = session.default_bucket()
offline_s3_uri = f"s3://{bucket}/feature-store/{fg_name}"

feature_definitions = [
    FeatureDefinition(feature_name="customer_id", feature_type="String"),
    FeatureDefinition(feature_name="event_time", feature_type="String"),
    FeatureDefinition(feature_name="age", feature_type="Integral"),
    FeatureDefinition(feature_name="total_purchases", feature_type="Integral"),
    FeatureDefinition(feature_name="avg_order_value", feature_type="Fractional"),
]

fg = FeatureGroupManager.create(
    feature_group_name=fg_name,
    record_identifier_feature_name="customer_id",
    event_time_feature_name="event_time",
    feature_definitions=feature_definitions,
    online_store_config=OnlineStoreConfig(enable_online_store=False),
    offline_store_config=OfflineStoreConfig(
        s3_storage_config=S3StorageConfig(s3_uri=offline_s3_uri),
        table_format="Iceberg",
    ),
    role_arn=role_arn,
    description="A feature group with Lake Formation-managed offline store",
    # Example configuration — adjust parameters for your use case.
    lake_formation_config=LakeFormationConfig(
        enabled=True,
        use_service_linked_role=False,
        registration_role_arn=registration_role_arn,
        # Set to True to keep existing IAM-based access (hybrid mode).
        hybrid_access_mode_enabled=False,
        acknowledge_risk=True,
    ),
    region=region,
)
```

### Activer Lake Formation sur un groupe d'entités existant
<a name="feature-store-lf-example-existing-fg"></a>

L'exemple suivant active Lake Formation sur un groupe d'entités qui existe déjà.

```
from sagemaker.mlops.feature_store import FeatureGroupManager

fg = FeatureGroupManager.get(feature_group_name="my-existing-feature-group")
result = fg.enable_lake_formation(
    use_service_linked_role=False,
    registration_role_arn="arn:aws:iam::<account-id>:role/<registration-role-name>",
    hybrid_access_mode_enabled=False,
    acknowledge_risk=True,
)
```

## Utiliser les groupes de Formation-enabled fonctionnalités Lake avec des tâches d' SageMaker IA
<a name="feature-store-lf-sagemaker-jobs"></a>

Vous pouvez accéder aux groupes de Formation-enabled fonctionnalités Lake à partir de tâches de formation et de traitement de l' SageMaker IA. Pour lire les données des Formation-enabled fonctionnalités de Lake, vous pouvez soit interroger les données via Athena, soit utiliser l'[GetTemporaryGlueTableCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGlueTableCredentials.html)API Lake Formation pour vendre des informations d'identification Amazon S3 temporaires définies dans le tableau. AWS Glue Pour plus d'informations sur la configuration des autorisations de Lake Formation pour les rôles de calcul, consultez [la référence des autorisations de Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html) Formation dans la documentation de Lake Formation.

## Cross-account accès
<a name="feature-store-lf-cross-account"></a>

Lake Formation prend en charge le partage de données de groupes d'entités entre eux Comptes AWS. Lorsque le compte producteur active Lake Formation sur un groupe de fonctionnalités, il peut accorder un accès croisé aux comptes consommateurs en utilisant soit la méthode des ressources nommées, soit le contrôle d'accès basé sur les balises Lake Formation ()LF-TBAC.

Cross-account le partage nécessite la configuration suivante :

1. Le compte producteur accorde des autorisations croisées sur le tableau du catalogue de AWS Glue données au compte client, à AWS l'organisation ou à l'unité organisationnelle.

1. Si les comptes ne sont pas dans la même AWS organisation, le compte client accepte l'invitation de partage de ressources AWS RAM. Pour plus d'informations, voir [Accepter une invitation de partage de ressources](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html).

1. Le compte client crée un lien de ressource vers la table partagée dans une base de données locale. Des liens vers des ressources sont nécessaires pour les services tels qu'Athena et Amazon Redshift Spectrum pour interroger des ressources partagées. Pour plus d'informations, voir [À propos des liens vers des ressources](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

1. L'administrateur de Lake Formation du compte client accorde des autorisations sur le lien de ressource et la table partagée sous-jacente aux principaux IAM qui ont besoin d'y accéder.

**Important**  
Si vous utilisez des moteurs de requêtes tiers (tels qu'Apache Spark), vous devez activer l'accès complet à la table partagée. Third-party les moteurs nécessitent la distribution automatique des informations d'identification complètes des tables car ils ne prennent pas en charge le filtrage au niveau des colonnes ou au niveau des cellules de Lake Formation via les balises de session. Vous devez également enregistrer l'emplacement Amazon S3 avec un rôle d'enregistrement personnalisé au lieu d'un rôle lié au service. Pour plus d'informations, consultez la section [Accès complet aux tables pour les moteurs tiers](https://docs.aws.amazon.com/lake-formation/latest/dg/full-table-credential-vending.html).

Pour connaître les prérequis, les instructions détaillées et les meilleures pratiques en matière de partage entre comptes, consultez les rubriques suivantes du guide du développeur de AWS Lake Formation :
+ [Cross-account accès](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) — Vue d'ensemble des méthodes de partage entre comptes et de l'intégration de la AWS RAM.
+ [Cross-account prérequis](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-prereqs.html) — Configuration requise pour les comptes producteur et consommateur.
+ [Partage des tables et des bases de données du catalogue de données](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-data-share-steps.html) : Step-by-step instructions relatives à la méthode de ressource nommée et à la LF-TBAC méthode.
+ [Tag-based contrôle d'accès](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html) : recommandé pour gérer les autorisations à grande échelle sur plusieurs comptes.

## Accorder un accès détaillé après la configuration
<a name="feature-store-lf-fine-grained-access"></a>

Une fois que vous avez activé Lake Formation, l'administrateur de Lake Formation peut accorder des autorisations détaillées à d'autres principaux IAM à l'aide de la console, de l'API ou de la CLI de Lake Formation. Lake Formation prend en charge le contrôle d'accès au niveau des colonnes, des lignes et des cellules.

Pour obtenir des instructions sur l'octroi et la gestion des autorisations de Lake Formation, consultez les rubriques suivantes dans le Guide du développeur de AWS Lake Formation :
+ [Octroi et révocation des autorisations du catalogue de données](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html)
+ [Filtres de données dans Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filters-about.html) pour le filtrage au niveau des lignes et au niveau des cellules
+ [Référence des autorisations de Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html)