Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Abilita Lake Formation con gruppi di funzionalità
Quando abiliti AWS Lake Formation su un gruppo di funzionalità in Amazon SageMaker Feature Store, puoi applicare la sicurezza a livello di colonna, riga e cella per i dati delle funzionalità nel tuo negozio offline. Invece di gestire l'accesso tramite politiche IAM individuali su Amazon S3 e AWS Glue risorse, utilizzi il modello di autorizzazione di concessione e revoca di Lake Formation per controllare quali utenti e ruoli possono accedere a funzionalità e record specifici. Per ulteriori informazioni su Lake Formation, consulta la AWS Lake Formation Developer Guide.
Importante
Il controllo degli accessi di Lake Formation si applica solo al negozio offline. Il negozio offline è supportato da Amazon S3 e registrato nel AWS Glue Data Catalog, gestito da Lake Formation. L'accesso ai negozi online continua a essere controllato tramite le politiche IAM. Per configurare Lake Formation, usi le LakeFormationConfig classi FeatureGroupManager and di SageMaker AI Python SDK (). sagemaker.mlops.feature_store Lake Formation supporta la modalità di accesso ibrida, che consente sia le policy IAM che le autorizzazioni di Lake Formation di coesistere durante una migrazione graduale.
Prerequisiti
Prima di abilitare Lake Formation, verifica di disporre di quanto segue:
-
Un gruppo di funzionalità SageMaker AI con un negozio offline configurato oppure puoi crearne uno nuovo con un negozio offline come parte della configurazione. Lake Formation richiede un negozio offline perché regola l'accesso tramite la tabella AWS Glue Data Catalog creata dal negozio offline.
-
Un ruolo di esecuzione IAM con autorizzazioni appropriate. L'esempio seguente mostra la policy IAM minima richiesta. Sostituisci i valori segnaposto con i tuoi.
{ "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>" } ] }Nota
La
LakeFormationRegistrationRoledichiarazione concede le autorizzazioni per leggere il ruolo utilizzato per registrare la sede Amazon S3 con Lake Formation. Se utilizzi il ruolo collegato al servizio Lake Formation (use_service_linked_role=True), imposta la risorsa su.arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccessSe fornisci il tuo ruolo di registrazione, impostalo sull'ARN di quel ruolo.Nota
Se la modalità di accesso ibrido è disabilitata nel
sagemaker_featurestoredatabase, il chiamante deve disporre anche dell'CREATE_TABLEautorizzazione Lake Formation sul database. L'amministratore di Lake Formation può concedere questa autorizzazione tramite la console o l'API di Lake Formation. -
Un amministratore di Lake Formation configurato nel tuo account. Devi designare almeno un utente o un ruolo IAM come amministratore di Lake Formation. Per istruzioni di configurazione, vedi Guida introduttiva a Lake Formation nella documentazione di Lake Formation.
-
La versione SageMaker AI Python SDK 3.8.0 o successiva. Installa o aggiorna il pacchetto:
sagemakerpip install --upgrade sagemaker>=3.8.0 -
Cross-account configurazione (se applicabile). Se il bucket Amazon S3 del negozio offline del gruppo di funzionalità si trova in un altro Account AWS, è necessaria una configurazione aggiuntiva di condivisione tra account di Lake Formation, tra cui politiche AWS Glue delle risorse, accettazione della condivisione AWS RAM, collegamenti alle risorse e configurazione del database dei consumatori. Per ulteriori informazioni, consulta Condivisione dei dati tra account nella documentazione di Lake Formation.
Concetti chiave
I seguenti concetti sono importanti per comprendere come Lake Formation funziona con Feature Store.
Modello di autorizzazione di Lake Formation rispetto al IAM-only modello
Per impostazione predefinita, l'accesso alle AWS Glue Data Catalog tabelle, incluse quelle create da Feature Store, è controllato solo tramite le politiche IAM. Quando abiliti Lake Formation, l'accesso richiede sia le autorizzazioni IAM che le autorizzazioni Lake Formation. Lake Formation utilizza un modello di concessione e revoca in cui concedi esplicitamente autorizzazioni, come SELECT o, su databaseDESCRIBE, tabelle o colonne specifici ai principali IAM.
Modalità di accesso ibrida
Quando abiliti Lake Formation, scegli se utilizzare la modalità di accesso ibrida o la Formation-only modalità Lake:
-
Modalità di accesso ibrida (
hybrid_access_mode_enabled=True): vengono valutate sia le policy IAM che le autorizzazioni di Lake Formation. I responsabili che hanno accesso tramite le politiche IAM esistenti continuano ad avervi accesso e puoi inoltre concedere un accesso granulare tramite Lake Formation. Ciò è utile per una migrazione graduale. -
Lake Formation-only mode (
hybrid_access_mode_enabled=False): vengono valutate solo le autorizzazioni di Lake Formation. IAM-based L'accesso esistente alla AWS Glue tabella viene revocato. Ciò fornisce il massimo controllo degli accessi, ma può interrompere i carichi di lavoro esistenti.
avvertimento
Quando si impostahybrid_access_mode_enabled=False, l'SDK revoca la concessione indicata nella IAMAllowedPrincipal tabella. AWS Glue Qualsiasi job, notebook o pipeline esistente che accede a questa tabella solo tramite le autorizzazioni IAM perde immediatamente l'accesso. Verifica di aver concesso le autorizzazioni necessarie per Lake Formation a tutti i mandanti che necessitano di accesso prima di disabilitare la modalità di accesso ibrida.
Nota
È necessario disabilitare la modalità di accesso ibrida per l'accesso tra account quando il formato della tabella è Iceberg.
Politica di negazione di S3
Anche dopo aver abilitato Lake Formation sul AWS Glue Data Catalog tavolo, gli utenti con accesso diretto ad Amazon S3 (tramite policy IAM) possono bypassare Lake Formation leggendo direttamente gli oggetti Amazon S3 sottostanti. Per colmare questa lacuna, applica una policy sui bucket di Amazon S3 che neghi l'accesso diretto al prefisso del negozio offline a tutti i principali ad eccezione del ruolo di servizio Lake Formation e del ruolo di esecuzione del Feature Store.
Importante
L'SDK non applica automaticamente la politica di rifiuto di Amazon S3. Dopo aver abilitato Lake Formation, l'SDK registra una policy bucket consigliata come messaggio di avviso. Rivedi questa policy e applicala al tuo bucket Amazon S3 per applicare il controllo degli accessi end-to-end.
Informazioni di riferimento sulla configurazione
Usa la LakeFormationConfig classe per configurare Lake Formation. Si passa questa configurazione a FeatureGroupManager.create() quando si crea un nuovo gruppo di funzionalità o si utilizzano i singoli parametri direttamente enable_lake_formation() per i gruppi di funzionalità esistenti.
| Parametro | Tipo | Predefinita | Campo obbligatorio | Description |
|---|---|---|---|---|
enabled |
bool | False | No | Imposta True per attivare Lake Formation nello store offline del gruppo di funzionalità. |
use_service_linked_role |
bool | True | No | Se utilizzare il ruolo collegato al servizio Lake Formation per registrare la sede S3. Imposta su False se utilizzi un ruolo di registrazione personalizzato. Non è possibile utilizzare un ruolo collegato al servizio per l'accesso tra più account o quando si utilizzano motori di query di terze parti (come Apache Spark). Per i motori di terze parti, è necessario fornire il proprio ruolo di registrazione tramite. registration_role_arn |
registration_role_arn |
str | Nessuno | Condizionale | L'ARN di un ruolo IAM personalizzato per la registrazione della posizione S3 del negozio offline con Lake Formation. Richiesto quando è. use_service_linked_role False |
hybrid_access_mode_enabled |
bool | — | Sì | Se revocare IAMAllowedPrincipal dalla tabella. AWS Glue False = Formation-only Autorizzazioni Lake. True= modalità ibrida (sia IAM che Lake Formation). Devi scegliere esplicitamente. |
acknowledge_risk |
bool | — | Sì | Deve essere così True per procedere. Questa è una conferma di sicurezza. L'impostazione su False aumenta un RuntimeError prima dell'esecuzione di qualsiasi operazione. |
Comprensione di knowledge_risk
Il acknowledge_risk parametro è un cancello di sicurezza. Impostandolo suTrue, riconosci quanto segue:
-
Se
hybrid_access_mode_enabled=False: i IAM-based job, i notebook e le pipeline esistenti che interrogano questa AWS Glue tabella perdono immediatamente l'accesso. È necessario concedere le autorizzazioni di Lake Formation a tali responsabili prima o subito dopo l'attivazione. -
Se le autorizzazioni di Lake Formation non sono configurate correttamente: i dati nel gruppo di funzionalità potrebbero diventare inaccessibili a tutti gli utenti fino alla correzione delle autorizzazioni.
-
L'operazione modifica le autorizzazioni del AWS Glue Data Catalog: queste modifiche riguardano tutti i consumatori della AWS Glue tabella, non solo gli utenti del Feature Store. Sono interessate tutte le richieste di Athena, i job Spark o altri servizi che leggono da questa tabella.
Come funziona
Quando abiliti Lake Formation, l'SDK esegue una configurazione in tre fasi:
-
Registra la posizione S3. L'SDK registra il percorso S3 del negozio offline con Lake Formation utilizzando il ruolo collegato al servizio Lake Formation o un ruolo di registrazione personalizzato specificato dall'utente. Se utilizzi motori di query di terze parti (come Apache Spark), devi fornire il tuo ruolo di registrazione perché il ruolo collegato al servizio non supporta l'accesso ai motori di terze parti.
-
Concedi i permessi di Lake Formation. L'SDK concede
SELECT,,INSERTDELETEDESCRIBE, eALTERle autorizzazioni sulla tabella AWS Glue Data Catalog al ruolo di esecuzione del gruppo di funzionalità. -
Revoca facoltativa. IAMAllowedPrincipal Se imposti
hybrid_access_mode_enabled=False, l'SDK revoca la concessione indicata.IAMAllowedPrincipalAWS Glue
Una volta completate tutte le fasi, l'SDK registra una policy di rifiuto consigliata per i bucket S3. Rivedi e applica questa policy per impedire l'accesso diretto ad Amazon S3 che aggira il controllo di accesso di Lake Formation.
Nota
Se la configurazione fallisce parzialmente (ad esempio, dopo aver registrato la posizione S3 ma prima di concedere le autorizzazioni), puoi eseguire nuovamente il metodo in tutta sicurezza. enable_lake_formation() L'SDK è idempotente e salta i passaggi già completati con successo.
Esempi di utilizzo
Crea un nuovo gruppo di funzionalità con il controllo degli accessi a Lake Formation
L'esempio seguente crea un nuovo gruppo di funzionalità con un negozio offline e abilita il controllo degli accessi a Lake Formation in un'unica operazione.
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, )
Abilita Lake Formation su un gruppo di funzionalità esistente
L'esempio seguente abilita Lake Formation su un gruppo di funzionalità già esistente.
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, )
Usa i gruppi di Formation-enabled funzionalità di Lake con i lavori di SageMaker intelligenza artificiale
Puoi accedere ai gruppi di Formation-enabled funzionalità di Lake dai lavori di formazione ed elaborazione dell' SageMaker intelligenza artificiale. Per leggere i dati delle Formation-enabled funzionalità di Lake, puoi interrogare i dati tramite Athena o utilizzare l'GetTemporaryGlueTableCredentialsAPI Lake Formation per vendere credenziali Amazon S3 temporanee nell'ambito della tabella. AWS Glue Per ulteriori informazioni sulla configurazione delle autorizzazioni di Lake Formation per i ruoli di calcolo, consulta il riferimento alle autorizzazioni di Lake Formation nella documentazione di Lake Formation.
Cross-account accesso
Lake Formation supporta la condivisione dei dati dei gruppi di funzionalità tra di loro Account AWS. Quando l'account produttore abilita Lake Formation su un gruppo di funzionalità, può concedere l'accesso tra account diversi agli account dei consumatori utilizzando il metodo della risorsa denominata o il controllo di accesso basato su tag Lake Formation ()LF-TBAC.
Cross-account la condivisione richiede la seguente configurazione:
-
L'account produttore concede le autorizzazioni relative a più account sulla tabella AWS Glue Data Catalog all'account consumatore, all' AWS organizzazione o all'unità organizzativa.
-
Se gli account non fanno parte della stessa AWS organizzazione, l'account consumer accetta l'invito alla condivisione delle risorse AWS RAM. Per ulteriori informazioni, consulta Accettazione di un invito alla condivisione di risorse.
-
L'account consumer crea un collegamento di risorsa alla tabella condivisa in un database locale. I link alle risorse sono necessari per consentire a servizi come Athena e Amazon Redshift Spectrum di interrogare risorse condivise. Per ulteriori informazioni, consulta Informazioni sui link alle risorse.
-
L'amministratore di Lake Formation nell'account consumer concede le autorizzazioni sul link alla risorsa e sulla tabella condivisa sottostante ai principali IAM che devono accedere.
Importante
Se utilizzi motori di query di terze parti (come Apache Spark), devi abilitare l'accesso completo alla tabella condivisa. Third-party i motori richiedono la distribuzione completa delle credenziali della tabella perché non supportano il filtraggio a livello di colonna o di cella di Lake Formation tramite i tag di sessione. È inoltre necessario registrare la sede Amazon S3 con un ruolo di registrazione personalizzato anziché con il ruolo collegato al servizio. Per ulteriori informazioni, consulta Accesso completo alla tabella per motori di terze parti.
Per i prerequisiti, le istruzioni dettagliate e le migliori pratiche per la condivisione tra account, consulta i seguenti argomenti nella Lake Formation AWS Developer Guide:
-
Cross-account accesso — Panoramica dei metodi di condivisione tra account e dell'integrazione della RAM. AWS
-
Cross-account prerequisiti: configurazione richiesta per gli account produttore e consumatore.
-
Condivisione delle tabelle e dei database del Data Catalog: Step-by-step istruzioni per il metodo e LF-TBAC il metodo della risorsa denominati.
-
Tag-based controllo degli accessi: consigliato per la gestione delle autorizzazioni su larga scala su più account.
Concedi un accesso granulare dopo la configurazione
Dopo aver abilitato Lake Formation, l'amministratore di Lake Formation può concedere autorizzazioni granulari ad altri dirigenti IAM utilizzando la console, l'API o la CLI di Lake Formation. Lake Formation supporta il controllo degli accessi a livello di colonna, riga e cella.
Per istruzioni sulla concessione e la gestione delle autorizzazioni di Lake Formation, consulta i seguenti argomenti nella AWS Lake Formation Developer Guide:
-
Filtri di dati in Lake Formation per il filtraggio a livello di riga e cella