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
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.
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, 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 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
LakeFormationRegistrationRoledé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/AWSServiceRoleForLakeFormationDataAccessSi 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_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 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 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 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 dans la documentation de Lake Formation.
Concepts clés
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
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 ouDESCRIBE, sur des bases de données, des tables ou des colonnes spécifiques aux principaux 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 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éfinissezhybrid_access_mode_enabled=False, le SDK révoque l'IAMAllowedPrincipalautorisation 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
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
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
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 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
Lorsque vous activez Lake Formation, le SDK effectue une configuration en trois phases :
-
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.
-
Autorisations de Grant Lake Formation. Le SDK accorde
SELECT,,INSERTDELETEDESCRIBE, et desALTERautorisations sur la table du catalogue de AWS Glue données au rôle d'exécution du groupe d'entités. -
Révoquez IAMAllowedPrincipal éventuellement. Si vous le définissez
hybrid_access_mode_enabled=False, le SDK révoque l'IAMAllowedPrincipalautorisation 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
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 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
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
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'GetTemporaryGlueTableCredentialsAPI 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 Formation dans la documentation de Lake Formation.
Cross-account accès
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 :
-
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.
-
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.
-
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.
-
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.
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 — Vue d'ensemble 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 producteur et consommateur.
-
Partage des tables et des bases de données du catalogue de données : 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 : recommandé pour gérer les autorisations à grande échelle sur plusieurs comptes.
Accorder un accès détaillé après la configuration
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
-
Filtres de données dans Lake Formation pour le filtrage au niveau des lignes et au niveau des cellules