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.
Activez la formation de lacs à l'aide de groupes de fonctionnalités
Lorsque vous activez AWS Lake Formation sur un groupe d'entité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 des 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 les 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 rôles peuvent accéder à des fonctionnalités et à des enregistrements spécifiques. Pour plus d'informations sur Lake Formation, consultez le Guide du développeur de AWS Lake Formation.
Important
Le contrôle d'accès de Lake Formation s'applique uniquement à la boutique hors ligne. La boutique hors ligne est soutenue par Amazon S3 et enregistrée dans le AWS Glue Data Catalog, qui est régi par Lake Formation. L'accès à la boutique en ligne continue d'être contrôlé par les 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, qui permet à la fois aux politiques IAM et aux autorisations de Lake Formation de coexister lors d'une migration progressive.
Conditions préalables
Avant d'activer Lake Formation, vérifiez que vous disposez des éléments suivants :
-
Un groupe de fonctionnalités SageMaker AI avec une boutique hors ligne configurée, ou vous pouvez en créer une nouvelle avec une boutique 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éé par le magasin hors ligne.
-
Un rôle d'exécution IAM avec les autorisations appropriées. L'exemple suivant montre la politique IAM minimale requise. Remplacez les valeurs des espaces réservés 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
LakeFormationRegistrationRoledéclaration autorise la lecture du rôle utilisé pour enregistrer l'emplacement 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/AWSServiceRoleForLakeFormationDataAccessSi vous indiquez 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é dans la
sagemaker_featurestorebase de données, l'appelant doit également disposer de l'CREATE_TABLEautorisation 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 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, reportez-vous à la section Démarrage avec Lake Formation dans la documentation Lake Formation.
-
Le SDK SageMaker AI Python version 3.8.0 ou ultérieure. Installez ou mettez à niveau le
sagemakerpackage :pip install --upgrade sagemaker>=3.8.0 -
Cross-account configuration (le cas échéant). Si le compartiment 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, y compris les politiques relatives aux AWS Glue ressources, l'acceptation du partage de AWS RAM, les liens vers les ressources et la configuration de la base de données des consommateurs. Pour plus d'informations, consultez la section Partage de données entre comptes dans la documentation de Lake Formation.
Concepts clés
Les concepts suivants sont importants pour comprendre comment Lake Formation fonctionne avec Feature Store.
Comparaison du modèle d'autorisation de Lake Formation avec le IAM-only modèle
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 les 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 ouDESCRIBE, sur des bases de données, des tables ou des colonnes spécifiques aux responsables IAM.
Mode d'accès hybride
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 utilisateurs qui ont accès par le biais de politiques IAM existantes continuent d'y avoir accès, et vous pouvez également accorder un accès précis via Lake Formation. Ceci est utile pour une migration progressive. -
Formation-only Mode lac (
hybrid_access_mode_enabled=False) : seules les autorisations de 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 définissezhybrid_access_mode_enabled=False, le SDK révoque l'IAMAllowedPrincipalautorisation figurant sur la AWS Glue table. Tous les jobs, blocs-notes ou pipelines existants qui accèdent à cette table via les seules autorisations IAM perdent immédiatement l'accès. Vérifiez que vous avez accordé les autorisations Lake Formation nécessaires à tous les principaux utilisateurs qui ont besoin d'un accè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 de tableau est Iceberg.
Politique de refus S3
Même après avoir activé Lake Formation sur la AWS Glue Data Catalog table, les utilisateurs disposant d'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 de la boutique hors ligne pour tous les principaux, à l'exception du rôle de service Lake Formation et du rôle d'exécution du 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
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 avec 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 l'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 de la boutique hors ligne auprès de Lake Formation. Obligatoire quand use_service_linked_role c'estFalse. |
hybrid_access_mode_enabled |
bool | — | Oui | S'il faut révoquer le IAMAllowedPrincipal nom du AWS Glue tableau. False = Formation-only Autorisations lacustres. True= mode hybride (IAM et Lake Formation). Vous devez faire un choix explicite. |
acknowledge_risk |
bool | — | Oui | Ça doit être True le cas pour continuer. Il s'agit d'une confirmation de sécurité. Paramètre permettant False d'augmenter a RuntimeError avant l'exécution de toute opération. |
Comprendre acknowledge_risk
Le acknowledge_risk paramètre est une barrière de sécurité. En le réglant surTrue, vous reconnaissez ce qui suit :
-
Si
hybrid_access_mode_enabled=False: les IAM-based jobs, blocs-notes et pipelines existants qui interrogent cette AWS Glue table perdent immédiatement l'accès. Vous devez accorder des autorisations à Lake Formation à ces administrateurs 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 de fonctionnalités peuvent devenir inaccessibles à tous les utilisateurs tant que les autorisations ne sont pas 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 seulement les utilisateurs du Feature Store. Toutes les requêtes Athena, les jobs Spark ou tout autre service lu à partir de ce tableau sont concernés.
Comment ça marche
Lorsque vous activez Lake Formation, le SDK effectue une configuration en trois phases :
-
Enregistrez l'emplacement S3. Le SDK enregistre le chemin S3 de la boutique 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ête tiers (tels qu'Apache Spark), vous devez fournir votre propre rôle d'enregistrement car le rôle lié à un service ne prend pas en charge l'accès aux moteurs tiers.
-
Autorisations pour la formation de Grant Lake. Le SDK accorde
SELECT,INSERTDELETEDESCRIBE, et desALTERautorisations sur le tableau du catalogue de AWS Glue données au rôle d'exécution du groupe de fonctionnalités. -
Révoquer IAMAllowedPrincipal éventuellement. Si vous le définissez
hybrid_access_mode_enabled=False, le SDK révoque l'IAMAllowedPrincipalautorisation figurant 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 de 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à effectuées avec succès.
Exemples d’utilisation
Créez un nouveau groupe de fonctionnalités avec le contrôle d'accès Lake Formation
L'exemple suivant crée un nouveau groupe de fonctionnalités avec une boutique 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 de fonctionnalités existant
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 Formation-enabled d'entités Lake avec les tâches d' SageMaker IA
Vous pouvez accéder aux groupes de Formation-enabled fonctionnalités Lake à partir des tâches de formation et de traitement de l' SageMaker IA. Pour lire les données relatives aux Formation-enabled fonctionnalités de Lake, vous pouvez interroger les données via Athena ou utiliser l'GetTemporaryGlueTableCredentialsAPI Lake Formation pour vendre des informations d'identification Amazon S3 temporaires limitées à la AWS Glue table. Pour plus d'informations sur la configuration des autorisations de Lake Formation pour les rôles de calcul, consultez la section Référence des autorisations de Lake Formation dans la documentation de Lake Formation.
Cross-account accès
Lake Formation prend en charge le partage de données de groupes de fonctionnalités entre Comptes AWS. Lorsque le compte producteur active Lake Formation sur un groupe de fonctionnalités, il peut accorder un accès croisé aux comptes des consommateurs à l'aide de la méthode de ressource nommée ou du contrôle d'accès basé sur les balises Lake Formation ()LF-TBAC.
Cross-account le partage nécessite la configuration suivante :
-
Le compte du 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.
-
Si les comptes ne se trouvent 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 à partager des ressources.
-
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 que des services tels qu'Athena et Amazon Redshift Spectrum puissent interroger des ressources partagées. Pour plus d'informations, voir À propos des liens vers des ressources.
-
L'administrateur de Lake Formation dans le compte client accorde des autorisations sur le lien de ressource et la table partagée sous-jacente aux principaux IAM qui ont besoin d'un accès.
Important
Si vous utilisez des moteurs de requête 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 d'informations d'identification sous forme de tables complètes car ils ne prennent pas en charge le filtrage au niveau des colonnes ou des cellules de Lake Formation via des 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é à un service. Pour plus d'informations, voir Accès complet au tableau pour les moteurs tiers.
Pour connaître les prérequis, les instructions étape par étape et les meilleures pratiques en matière de partage entre comptes, consultez les rubriques suivantes du AWS Lake Formation Developer Guide :
-
Cross-account accès — Présentation des méthodes de partage entre comptes et de l'intégration de la AWS RAM.
-
Cross-account prérequis — Configuration requise pour les comptes du producteur et du consommateur.
-
Partage de tables et de bases de données du catalogue de données : Step-by-step instructions pour la méthode de ressource nommée et la LF-TBAC méthode.
-
Tag-based contrôle d'accès : recommandé pour gérer les autorisations à grande échelle sur plusieurs comptes.
Accorder un accès précis après la configuration
Une fois que vous avez activé Lake Formation, l'administrateur de Lake Formation peut accorder des autorisations précises à d'autres responsables IAM à l'aide de la console, de l'API ou de l'interface de ligne de commande 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 du AWS Lake Formation Developer Guide :
-
Octroi et révocation des autorisations du catalogue de données
-
Filtres de données dans Lake Formation pour le filtrage au niveau des lignes et des cellules