Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktivieren Sie Lake Formation mit Feature-Gruppen
Wenn Sie AWS Lake Formation für eine Feature-Gruppe im Amazon SageMaker Feature Store aktivieren, können Sie die Sicherheit der Feature-Daten in Ihrem Offline-Shop auf Spalten-, Zeilen- und Zellenebene erzwingen. Anstatt den Zugriff über individuelle IAM-Richtlinien auf Amazon S3 und AWS Glue Ressourcen zu verwalten, verwenden Sie das Lake Formation-Modell zum Gewähren und Widerrufen von Berechtigungen, um zu steuern, welche Benutzer und Rollen auf bestimmte Funktionen und Datensätze zugreifen können. Weitere Informationen zu Lake Formation finden Sie im AWS Lake Formation Developer Guide.
Wichtig
Die Zugriffskontrolle für Lake Formation gilt nur für den Offline-Store. Der Offline-Shop wird von Amazon S3 unterstützt und ist in der registriert AWS Glue Data Catalog, für die Lake Formation zuständig ist. Der Zugriff auf den Online-Shop wird weiterhin durch IAM-Richtlinien gesteuert. Um Lake Formation einzurichten, verwenden Sie die LakeFormationConfig Klassen FeatureGroupManager und aus dem SageMaker AI Python SDK (sagemaker.mlops.feature_store). Lake Formation unterstützt den hybriden Zugriffsmodus, der es ermöglicht, dass sowohl IAM-Richtlinien als auch Lake Formation-Berechtigungen während einer schrittweisen Migration nebeneinander existieren.
Voraussetzungen
Bevor Sie Lake Formation aktivieren, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Eine SageMaker KI-Featuregruppe, für die ein Offline-Store konfiguriert ist, oder Sie können im Rahmen des Setups eine neue mit einem Offline-Store erstellen. Lake Formation benötigt einen Offline-Store, da dieser den Zugriff über die AWS Glue Datenkatalogtabelle regelt, die der Offline-Store erstellt.
-
Eine IAM-Ausführungsrolle mit entsprechenden Berechtigungen. Das folgende Beispiel zeigt die mindestens erforderliche IAM-Richtlinie. Ersetzen Sie die Platzhalterwerte durch Ihre eigenen.
{ "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>" } ] }Anmerkung
Die
LakeFormationRegistrationRoleAnweisung gewährt Berechtigungen zum Lesen der Rolle, die zur Registrierung des Amazon S3-Standorts bei Lake Formation verwendet wurde. Wenn Sie die serviceverknüpfte Rolle (use_service_linked_role=True) von Lake Formation verwenden, setzen Sie die Ressource aufarn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess. Wenn Sie Ihre eigene Registrierungsrolle angeben, setzen Sie sie auf den ARN dieser Rolle.Anmerkung
Wenn der hybride Zugriffsmodus für die
sagemaker_featurestoreDatenbank deaktiviert ist, muss der Anrufer auch über die LakeCREATE_TABLEFormation-Berechtigung für die Datenbank verfügen. Der Lake Formation-Administrator kann diese Berechtigung über die Lake Formation-Konsole oder die API erteilen. -
Ein Lake Formation-Administrator, der in Ihrem Konto konfiguriert ist. Sie müssen mindestens einen IAM-Benutzer oder eine IAM-Rolle als Lake Formation-Administrator benennen. Anweisungen zur Einrichtung finden Sie unter Erste Schritte mit Lake Formation in der Lake Formation-Dokumentation.
-
Das SageMaker AI Python SDK Version 3.8.0 oder höher. Installieren oder aktualisieren Sie das
sagemakerPaket:pip install --upgrade sagemaker>=3.8.0 -
Cross-account Konfiguration (falls zutreffend). Wenn sich der Amazon S3-Bucket der Feature-Gruppe für den Offline-Store in einem anderen befindet AWS-Konto, ist eine zusätzliche Konfiguration für die kontoübergreifende gemeinsame Nutzung von Lake Formation erforderlich, einschließlich AWS Glue Ressourcenrichtlinien, AWS RAM-Freigabe, Ressourcenlinks und Einrichtung der Verbraucherdatenbank. Weitere Informationen finden Sie in der Lake Formation-Dokumentation unter Daten zwischen Konten teilen.
Die wichtigsten Konzepte
Die folgenden Konzepte sind wichtig, um zu verstehen, wie Lake Formation mit Feature Store funktioniert.
Lake Formation-Genehmigungsmodell im Vergleich zum IAM-only Modell
Standardmäßig wird der Zugriff auf AWS Glue Data Catalog Tabellen, einschließlich der vom Feature Store erstellten, ausschließlich über IAM-Richtlinien gesteuert. Wenn Sie Lake Formation aktivieren, sind für den Zugriff sowohl IAM-Berechtigungen als auch Lake Formation-Berechtigungen erforderlich. Lake Formation verwendet ein Modell zum Gewähren und Widerrufen, bei dem Sie DESCRIBE IAM-Prinzipalen explizit Berechtigungen wie SELECT oder für bestimmte Datenbanken, Tabellen oder Spalten gewähren.
Hybrider Zugriffsmodus
Wenn Sie Lake Formation aktivieren, wählen Sie, ob Sie den Hybrid-Zugriffsmodus oder den Formation-only Lake-Modus verwenden möchten:
-
Hybrider Zugriffsmodus (
hybrid_access_mode_enabled=True): Sowohl IAM-Richtlinien als auch Lake Formation-Berechtigungen werden evaluiert. Principals, die über bestehende IAM-Richtlinien Zugriff haben, haben weiterhin Zugriff, und Sie können den Zugriff zusätzlich über Lake Formation fein abgestuften Zugriff gewähren. Dies ist nützlich für eine schrittweise Migration. -
Formation-only Seemodus (
hybrid_access_mode_enabled=False): Nur Lake Formation-Berechtigungen werden bewertet. Der bestehende IAM-based Zugriff auf die AWS Glue Tabelle wird widerrufen. Dies bietet die stärkste Zugriffskontrolle, kann jedoch bestehende Workloads unterbrechen.
Warnung
Wenn Sie diese Einstellung vornehmenhybrid_access_mode_enabled=False, widerruft das SDK die für die Tabelle IAMAllowedPrincipal geltende Gewährung. AWS Glue Alle vorhandenen Jobs, Notebooks oder Pipelines, die allein über IAM-Berechtigungen auf diese Tabelle zugreifen, verlieren sofort den Zugriff. Stellen Sie sicher, dass Sie allen Prinzipalen, die Zugriff benötigen, die erforderlichen Lake Formation-Berechtigungen erteilt haben, bevor Sie den hybriden Zugriffsmodus deaktivieren.
Anmerkung
Sie müssen den hybriden Zugriffsmodus für den kontoübergreifenden Zugriff deaktivieren, wenn das Tabellenformat Iceberg ist.
S3-Ablehnungsrichtlinie
Selbst nachdem Sie Lake Formation in der AWS Glue Data Catalog Tabelle aktiviert haben, können Benutzer mit direktem Amazon S3-Zugriff (über IAM-Richtlinien) Lake Formation umgehen, indem sie die zugrunde liegenden Amazon S3-Objekte direkt lesen. Um diese Lücke zu schließen, wenden Sie eine Amazon S3-Bucket-Richtlinie an, die allen Principals mit Ausnahme der Lake Formation-Servicerolle und der Feature Store-Ausführungsrolle den direkten Zugriff auf das Offline-Store-Präfix verweigert.
Wichtig
Das SDK wendet die Amazon S3-Ablehnungsrichtlinie nicht automatisch an. Nachdem Sie Lake Formation aktiviert haben, protokolliert das SDK eine empfohlene Bucket-Richtlinie als Warnmeldung. Überprüfen Sie diese Richtlinie und wenden Sie sie auf Ihren Amazon S3-Bucket an, um die Zugriffskontrolle durchgängig durchzusetzen.
Konfigurationsreferenz
Verwenden Sie die LakeFormationConfig Klasse, um Lake Formation zu konfigurieren. Sie übergeben diese Konfiguration an, FeatureGroupManager.create() wenn Sie eine neue Objektgruppe erstellen, oder verwenden Sie die einzelnen Parameter direkt enable_lake_formation() für bestehende Objektgruppen.
| Parameter | Typ | Standard | Erforderlich | Description |
|---|---|---|---|---|
enabled |
bool | Falsch | Nein | Stellen Sie diese Option einTrue, um Lake Formation im Offline-Store der Feature-Gruppe zu aktivieren. |
use_service_linked_role |
bool | Wahr | Nein | Ob die serviceverknüpfte Rolle Lake Formation für die Registrierung des S3-Standorts verwendet werden soll. Legen Sie diese False Option fest, wenn Sie eine benutzerdefinierte Registrierungsrolle verwenden. Sie können eine serviceverknüpfte Rolle nicht für den kontoübergreifenden Zugriff oder für die Verwendung von Abfrage-Engines von Drittanbietern (wie Apache Spark) verwenden. Für Engines von Drittanbietern müssen Sie Ihre eigene Registrierungsrolle über angeben. registration_role_arn |
registration_role_arn |
str | Keine | Bedingt | Der ARN einer benutzerdefinierten IAM-Rolle für die Registrierung des S3-Standorts des Offline-Speichers bei Lake Formation. Erforderlich, wenn es use_service_linked_role istFalse. |
hybrid_access_mode_enabled |
bool | — | Ja | Ob IAMAllowedPrincipal aus der AWS Glue Tabelle gekündigt werden soll. False = Formation-only Seeberechtigungen. True= Hybridmodus (sowohl IAM als auch Lake Formation). Sie müssen explizit wählen. |
acknowledge_risk |
bool | — | Ja | Muss sein, True um fortzufahren. Dies ist eine Sicherheitsbestätigung. Bei Einstellung False auf wird ein Signal RuntimeError ausgelöst, bevor irgendwelche Operationen ausgeführt werden. |
Grundlegendes zu acknowledge_risk
Der acknowledge_risk Parameter ist ein Schutztor. Indem Sie ihn auf setzenTrue, bestätigen Sie Folgendes:
-
Wenn
hybrid_access_mode_enabled=False: Bestehende IAM-based Jobs, Notebooks und Pipelines, die diese AWS Glue Tabelle abfragen, verlieren sofort den Zugriff. Sie müssen diesen Prinzipalen vor oder kurz nach der Aktivierung Lake Formation-Berechtigungen gewähren. -
Wenn die Lake Formation-Berechtigungen nicht richtig konfiguriert sind: Die Daten in der Featuregruppe können möglicherweise nicht mehr für alle Benutzer zugänglich sein, bis die Berechtigungen korrigiert wurden.
-
Durch den Vorgang werden die AWS Glue Data Catalog-Berechtigungen geändert: Diese Änderungen wirken sich auf alle Benutzer der AWS Glue Tabelle aus, nicht nur auf Feature Store-Benutzer. Alle Athena-Abfragen, Spark-Jobs oder andere Dienste, die aus dieser Tabelle lesen, sind betroffen.
Funktionsweise
Wenn Sie Lake Formation aktivieren, führt das SDK ein dreiphasiges Setup durch:
-
Registrieren Sie den S3-Standort. Das SDK registriert den S3-Pfad des Offline-Shops bei Lake Formation, indem es entweder die serviceverknüpfte Rolle Lake Formation oder eine benutzerdefinierte Registrierungsrolle verwendet, die Sie angeben. Wenn Sie Abfrage-Engines von Drittanbietern (wie Apache Spark) verwenden, müssen Sie Ihre eigene Registrierungsrolle angeben, da die serviceverknüpfte Rolle den Engine-Zugriff von Drittanbietern nicht unterstützt.
-
Erteilen Sie Lake Formation-Berechtigungen. Das SDK gewährt
SELECTder Ausführungsrolle der Featuregruppe dieALTERBerechtigungenDESCRIBE,, und für die AWS Glue Datenkatalogtabelle.INSERTDELETE -
Wahlweise widerrufen IAMAllowedPrincipal. Wenn Sie dies festlegen
hybrid_access_mode_enabled=False, widerruft das SDK denIAMAllowedPrincipalGrant für die AWS Glue Tabelle.
Nach Abschluss aller Phasen protokolliert das SDK eine empfohlene S3-Bucket-Ablehnungsrichtlinie. Überprüfen Sie diese Richtlinie und wenden Sie sie an, um direkten Amazon S3-Zugriff zu verhindern, der die Zugriffskontrolle von Lake Formation umgeht.
Anmerkung
Wenn die Einrichtung auf der anderen Seite fehlschlägt (z. B. nach der Registrierung des S3-Standorts, aber bevor die Berechtigungen erteilt wurden), können Sie die Methode problemlos erneut ausführen. enable_lake_formation() Das SDK ist idempotent und überspringt Schritte, die bereits erfolgreich abgeschlossen wurden.
Verwendungsbeispiele
Erstellen Sie eine neue Feature-Gruppe mit Lake Formation-Zugriffskontrolle
Im folgenden Beispiel wird eine neue Objektgruppe mit einem Offline-Speicher erstellt und die Zugriffskontrolle für Lake Formation in einem einzigen Vorgang aktiviert.
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, )
Aktivieren Sie Lake Formation für eine vorhandene Feature-Gruppe
Im folgenden Beispiel wird Lake Formation für eine bereits vorhandene Feature-Gruppe aktiviert.
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, )
Verwenden Sie Formation-enabled Lake-Feature-Gruppen mit SageMaker KI-Aufträgen
Sie können von SageMaker AI-Trainings- und Verarbeitungsjobs aus auf Formation-enabled Lake-Feature-Gruppen zugreifen. Um Formation-enabled Lake-Feature-Daten zu lesen, können Sie die Daten entweder über Athena abfragen oder die Lake GetTemporaryGlueTableCredentials Formation-API verwenden, um temporäre Amazon S3-Anmeldeinformationen für die Tabelle zu senden. AWS Glue Weitere Informationen zur Konfiguration von Lake Formation-Berechtigungen für Rechenrollen finden Sie unter Referenz zu den Lake Formation-Berechtigungen in der Lake Formation-Dokumentation.
Cross-account Zugriff
Lake Formation unterstützt die gemeinsame Nutzung von Feature-Gruppendaten AWS-Konten. Wenn das Producer-Konto Lake Formation für eine Feature-Gruppe aktiviert, kann es mithilfe der benannten Ressourcenmethode oder der auf dem Lake Formation-Tag basierenden Zugriffskontrolle () LF-TBAC kontoübergreifenden Zugriff auf Verbraucherkonten gewähren.
Cross-account Für die gemeinsame Nutzung ist die folgende Konfiguration erforderlich:
-
Das Produzentenkonto gewährt dem Verbraucherkonto, der AWS Organisation oder der Organisationseinheit kontoübergreifende Berechtigungen für die AWS Glue Datenkatalogtabelle.
-
Wenn sich die Konten nicht in derselben AWS Organisation befinden, akzeptiert das Verbraucherkonto die Einladung zur gemeinsamen Nutzung der AWS RAM-Ressource. Weitere Informationen finden Sie unter Annahme einer Einladung zur gemeinsamen Nutzung von Ressourcen.
-
Das Verbraucherkonto erstellt einen Ressourcenlink zur gemeinsam genutzten Tabelle in einer lokalen Datenbank. Ressourcenlinks sind für Dienste wie Athena und Amazon Redshift Spectrum erforderlich, um gemeinsam genutzte Ressourcen abzufragen. Weitere Informationen finden Sie unter Über Ressourcenlinks.
-
Der Lake Formation-Administrator im Verbraucherkonto erteilt den IAM-Prinzipalen, die Zugriff benötigen, Berechtigungen für den Ressourcenlink und die zugrunde liegende gemeinsame Tabelle.
Wichtig
Wenn Sie Abfrage-Engines von Drittanbietern (wie Apache Spark) verwenden, müssen Sie den vollständigen Tabellenzugriff für die gemeinsam genutzte Tabelle aktivieren. Third-party Engines erfordern den Verkauf vollständiger Tabellenanmeldeinformationen, da sie die Filterung auf Spalten- oder Zellenebene von Lake Formation durch Sitzungs-Tags nicht unterstützen. Außerdem müssen Sie den Amazon S3-Standort mit einer benutzerdefinierten Registrierungsrolle anstelle der serviceverknüpften Rolle registrieren. Weitere Informationen finden Sie unter Vollständiger Tabellenzugriff für Engines von Drittanbietern.
Voraussetzungen, schrittweise Anleitungen und bewährte Methoden für kontoübergreifendes Teilen finden Sie in den folgenden Themen im AWS Lake Formation Developer Guide:
-
Cross-account access — Überblick über die Methoden für die kontoübergreifende gemeinsame Nutzung und die AWS RAM-Integration.
-
Cross-account Voraussetzungen — Erforderliche Konfiguration sowohl für Hersteller- als auch für Verbraucherkonten.
-
Gemeinsame Nutzung von Datenkatalogtabellen und Datenbanken — Step-by-step Anweisungen sowohl für die Methode als auch für die Methode der benannten Ressource. LF-TBAC
-
Tag-based Zugriffskontrolle — Empfohlen für die Verwaltung von Berechtigungen in großem Umfang über mehrere Konten hinweg.
Gewähren Sie nach der Einrichtung fein abgestufte Zugriffsrechte
Nachdem Sie Lake Formation aktiviert haben, kann der Lake Formation-Administrator mithilfe der Lake Formation-Konsole, API oder CLI anderen IAM-Prinzipalen detaillierte Berechtigungen gewähren. Lake Formation unterstützt Zugriffskontrolle auf Spalten-, Zeilen- und Zellenebene.
Anweisungen zum Erteilen und Verwalten von Lake Formation-Berechtigungen finden Sie in den folgenden Themen im Lake Formation Developer Guide: AWS
-
Datenfilter in Lake Formation für die Filterung auf Zeilen- und Zellenebene