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 Feature Groups
Quando abiliti AWS Lake Formation su un gruppo di funzionalità in Amazon Feature Store, puoi applicare la SageMaker sicurezza a livello di colonna, a livello di riga e a livello di cella per i dati delle funzionalità nel tuo negozio offline. Invece di gestire l'accesso tramite singole policy IAM su Amazon S3 e AWS Glue risorse, utilizzi il modello di concessione e revoca delle autorizzazioni di Lake Formation per controllare quali utenti e ruoli possono accedere a funzionalità e record specifici. Per ulteriori informazioni su Lake Formation, consulta la Lake Formation Developer AWS 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 al negozio online continua a essere controllato tramite le politiche IAM. Per configurare Lake Formation, si utilizzano le LakeFormationConfig classi FeatureGroupManager and di SageMaker AI Python SDK ()sagemaker.mlops.feature_store. Lake Formation supporta la modalità di accesso ibrida, che consente alle policy IAM e alle 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 del catalogo AWS Glue dati creata dal negozio offline.
-
Un ruolo di esecuzione IAM con le 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 di 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 ibrida è disabilitata sul
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. È necessario designare almeno un utente o ruolo IAM come amministratore di Lake Formation. Per le 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 dello store offline del feature group si trova in un'altra configurazione Account AWS, è necessaria una configurazione aggiuntiva di condivisione tra account di Lake Formation, che include politiche sulle AWS Glue 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 concetti seguenti 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 si abilita 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 si concedono esplicitamente autorizzazioni, ad esempio or, su databaseDESCRIBE, tabelle SELECT 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 Lake Formation. I committenti che hanno accesso tramite le politiche IAM esistenti continuano ad avere 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 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
Una volta impostatohybrid_access_mode_enabled=False, l'SDK revoca la IAMAllowedPrincipal concessione sulla 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 Lake Formation necessarie a tutti i principali che necessitano di accesso prima di disabilitare la modalità di accesso ibrida.
Nota
È necessario disabilitare la modalità di accesso ibrida per l'accesso tra più account quando il formato della tabella è Iceberg.
Politica di rifiuto S3
Anche dopo aver abilitato Lake Formation sulla AWS Glue Data Catalog tabella, 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 bucket policy di Amazon S3 che neghi l'accesso diretto al prefisso del negozio offline per tutti i principali tranne il ruolo di servizio Lake Formation e il 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 del 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 con enable_lake_formation() i gruppi di funzionalità esistenti.
| Parametro | Tipo | Predefinita | Campo obbligatorio | Description |
|---|---|---|---|---|
enabled |
bool | False | No | Imposta su True per attivare Lake Formation nello store offline del feature group. |
use_service_linked_role |
bool | True | No | Se utilizzare il ruolo collegato al servizio Lake Formation per registrare la posizione S3. Impostato su False se si utilizza 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. Obbligatorio quando è. use_service_linked_role False |
hybrid_access_mode_enabled |
bool | — | Sì | Se revocare IAMAllowedPrincipal dalla tabella. AWS Glue False = Formation-only Autorizzazioni per il lago. True= modalità ibrida (sia IAM che Lake Formation). Devi scegliere esplicitamente. |
acknowledge_risk |
bool | — | Sì | Deve esserlo True per procedere. Questa è una conferma di sicurezza. Impostato per False alzare a RuntimeError prima di eseguire qualsiasi operazione. |
Comprensione di acknowledge_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 committenti 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 a quando le autorizzazioni non vengono corrette.
-
L'operazione modifica le autorizzazioni del AWS Glue Data Catalog: queste modifiche riguardano tutti gli utenti della AWS Glue tabella, non solo gli utenti del Feature Store. Sono interessate tutte le query Athena, i job Spark o altri servizi letti 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 le autorizzazioni di Lake Formation. L'SDK concede
SELECT,INSERTDELETEDESCRIBE, eALTERle autorizzazioni nella tabella AWS Glue Data Catalog al ruolo di esecuzione del feature group. -
Facoltativamente, revocare. IAMAllowedPrincipal Se imposti
hybrid_access_mode_enabled=False, l'SDK revoca laIAMAllowedPrincipalconcessione sulla AWS Glue tabella.
Al termine di tutte le fasi, l'SDK registra una politica di negazione del bucket S3 consigliata. Rivedi e applica questa policy per impedire l'accesso diretto ad Amazon S3 che bypassa il controllo degli accessi di Lake Formation.
Nota
Se la configurazione fallisce in parte (ad esempio, dopo aver registrato la sede S3 ma prima di concedere le autorizzazioni), puoi rieseguire 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 di 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 feature 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 IA. Per leggere i dati delle Formation-enabled funzionalità di Lake, puoi interrogare i dati tramite Athena o utilizzare l'GetTemporaryGlueTableCredentialsAPI Lake Formation per inviare credenziali Amazon S3 temporanee con ambito di applicazione alla tabella. AWS Glue Per ulteriori informazioni sulla configurazione delle autorizzazioni di Lake Formation per i ruoli di calcolo, consulta i riferimenti 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 Account AWS. Quando l'account produttore abilita Lake Formation su un gruppo di funzionalità, può concedere l'accesso tra account agli account consumer utilizzando il metodo della risorsa denominata o il controllo di accesso basato sui tag di Lake Formation ()LF-TBAC.
Cross-account la condivisione richiede la seguente configurazione:
-
L'account produttore concede le autorizzazioni tra account nella tabella AWS Glue Data Catalog all'account consumatore, all' AWS organizzazione o all'unità organizzativa.
-
Se gli account non appartengono alla stessa AWS organizzazione, l'account consumatore accetta l'invito alla condivisione delle risorse AWS RAM. Per ulteriori informazioni, consulta Accettare un invito alla condivisione delle risorse.
-
L'account consumer crea un collegamento alla risorsa alla tabella condivisa in un database locale. I collegamenti alle risorse sono necessari per consentire a servizi come Athena e Amazon Redshift Spectrum di interrogare risorse condivise. Per ulteriori informazioni, consulta Informazioni sui collegamenti 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 di 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 alle tabelle 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 Developer Guide: AWS
-
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 di Data Catalog: Step-by-step istruzioni per il metodo e LF-TBAC il metodo della risorsa denominati.
-
Tag-based controllo degli accessi: consigliato per gestire le 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 principali 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 su come concedere e gestire le autorizzazioni di Lake Formation, consulta i seguenti argomenti nella Lake Formation Developer Guide: AWS
-
Filtri di dati in Lake Formation per il filtraggio a livello di riga e di cella