Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aktifkan Lake Formation dengan Grup Fitur
Saat mengaktifkan AWS Lake Formation di grup fitur di Amazon SageMaker Feature Store, Anda dapat menerapkan keamanan tingkat kolom, tingkat baris, dan tingkat sel untuk data fitur di toko offline Anda. Alih-alih mengelola akses melalui kebijakan IAM individual di Amazon S3 AWS Glue dan sumber daya, Anda menggunakan model izin hibah dan pencabutan Lake Formation untuk mengontrol pengguna dan peran mana yang dapat mengakses fitur dan catatan tertentu. Untuk informasi lebih lanjut tentang Lake Formation, lihat Panduan Pengembang AWS Lake Formation.
penting
Kontrol akses Lake Formation hanya berlaku untuk toko offline. Toko offline didukung oleh Amazon S3 dan terdaftar di AWS Glue Data Catalog, yang diatur oleh Lake Formation. Akses toko online terus dikendalikan melalui kebijakan IAM. Untuk menyiapkan Lake Formation, Anda menggunakan LakeFormationConfig class FeatureGroupManager dan dari SageMaker AI Python SDK (). sagemaker.mlops.feature_store Lake Formation mendukung mode akses hybrid, yang memungkinkan kebijakan IAM dan izin Lake Formation untuk hidup berdampingan selama migrasi bertahap.
Prasyarat
Sebelum Anda mengaktifkan Lake Formation, verifikasi bahwa Anda memiliki yang berikut:
-
Grup fitur SageMaker AI dengan toko offline yang dikonfigurasi, atau Anda dapat membuat yang baru dengan toko offline sebagai bagian dari pengaturan. Lake Formation memerlukan toko offline karena mengatur akses melalui tabel Katalog AWS Glue Data yang dibuat oleh toko offline.
-
Peran eksekusi IAM dengan izin yang sesuai. Contoh berikut menunjukkan kebijakan IAM minimum yang diperlukan. Ganti nilai placeholder dengan milik Anda sendiri.
{ "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>" } ] }catatan
LakeFormationRegistrationRolePernyataan tersebut memberikan izin untuk membaca peran yang digunakan untuk mendaftarkan lokasi Amazon S3 dengan Lake Formation. Jika Anda menggunakan peran terkait layanan Lake Formation (use_service_linked_role=True), setel sumber daya ke.arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccessJika Anda memberikan peran pendaftaran Anda sendiri, atur ke ARN peran itu.catatan
Jika mode akses hybrid dinonaktifkan pada
sagemaker_featurestoredatabase, penelepon juga harus memilikiCREATE_TABLEizin Lake Formation pada database. Administrator Lake Formation dapat memberikan izin ini melalui konsol atau API Lake Formation. -
Administrator Lake Formation dikonfigurasi di akun Anda. Anda harus menunjuk setidaknya satu pengguna IAM atau peran sebagai administrator Lake Formation. Untuk petunjuk penyiapan, lihat Memulai dengan Lake Formation di dokumentasi Lake Formation.
-
SageMaker AI Python SDK versi 3.8.0 atau yang lebih baru. Instal atau tingkatkan
sagemakerpaket:pip install --upgrade sagemaker>=3.8.0 -
Cross-account konfigurasi (jika berlaku). Jika bucket Amazon S3 toko offline grup fitur berbeda Akun AWS, konfigurasi berbagi lintas akun Lake Formation tambahan diperlukan, termasuk kebijakan AWS Glue sumber daya, penerimaan berbagi AWS RAM, tautan sumber daya, dan penyiapan basis data konsumen. Untuk informasi selengkapnya, lihat Berbagi data di seluruh akun dalam dokumentasi Lake Formation.
Konsep utama
Konsep-konsep berikut ini penting untuk memahami cara kerja Lake Formation dengan Feature Store.
Model izin Lake Formation dibandingkan dengan IAM-only model
Secara default, akses ke AWS Glue Data Catalog tabel, termasuk yang dibuat oleh Feature Store, dikendalikan melalui kebijakan IAM saja. Saat Anda mengaktifkan Lake Formation, akses memerlukan izin IAM dan izin Lake Formation. Lake Formation menggunakan model hibah dan pencabutan tempat Anda secara eksplisit memberikan izin, seperti SELECT atau, pada database, tabelDESCRIBE, atau kolom tertentu ke kepala sekolah IAM.
Mode akses hibrid
Saat Anda mengaktifkan Lake Formation, Anda memilih apakah akan menggunakan mode akses hibrida atau Formation-only mode Danau:
-
Hybrid access mode (
hybrid_access_mode_enabled=True): Kebijakan IAM dan izin Lake Formation dievaluasi. Prinsipal yang memiliki akses melalui kebijakan IAM yang ada terus memiliki akses, dan Anda juga dapat memberikan akses berbutir halus melalui Lake Formation. Ini berguna untuk migrasi bertahap. -
Formation-only Mode Danau (
hybrid_access_mode_enabled=False): Hanya izin Lake Formation yang dievaluasi. IAM-based Akses yang ada ke AWS Glue tabel dicabut. Ini memberikan kontrol akses terkuat tetapi dapat merusak beban kerja yang ada.
Awas
Saat Anda menyetelhybrid_access_mode_enabled=False, SDK mencabut IAMAllowedPrincipal hibah di atas tabel. AWS Glue Setiap pekerjaan, notebook, atau pipeline yang ada yang mengakses tabel ini melalui izin IAM saja segera kehilangan akses. Verifikasi bahwa Anda telah memberikan izin Lake Formation yang diperlukan untuk semua kepala sekolah yang memerlukan akses sebelum Anda menonaktifkan mode akses hybrid.
catatan
Anda harus menonaktifkan mode akses hybrid untuk akses lintas akun ketika format tabel adalah Iceberg.
Kebijakan penolakan S3
Bahkan setelah Anda mengaktifkan Lake Formation di atas AWS Glue Data Catalog meja, pengguna dengan akses Amazon S3 langsung (melalui kebijakan IAM) dapat melewati Lake Formation dengan membaca objek Amazon S3 yang mendasarinya secara langsung. Untuk menutup celah ini, terapkan kebijakan bucket Amazon S3 yang menolak akses langsung ke awalan toko offline untuk semua prinsipal kecuali peran layanan Lake Formation dan peran eksekusi Feature Store.
penting
SDK tidak secara otomatis menerapkan kebijakan penolakan Amazon S3. Setelah mengaktifkan Lake Formation, SDK akan mencatat kebijakan bucket yang direkomendasikan sebagai pesan peringatan. Tinjau kebijakan ini dan terapkan ke bucket Amazon S3 Anda untuk menerapkan kontrol akses dari ujung ke ujung.
Referensi konfigurasi
Gunakan LakeFormationConfig kelas untuk mengkonfigurasi Lake Formation. Anda meneruskan konfigurasi ini FeatureGroupManager.create() saat membuat grup fitur baru, atau menggunakan parameter individual secara langsung enable_lake_formation() untuk grup fitur yang ada.
| Parameter | Tipe | Default | Wajib | Deskripsi |
|---|---|---|---|---|
enabled |
bool | False | Tidak | Atur True untuk mengaktifkan Lake Formation di toko offline grup fitur. |
use_service_linked_role |
bool | True | Tidak | Apakah akan menggunakan peran terkait layanan Lake Formation untuk mendaftarkan lokasi S3. Setel ke False jika Anda menggunakan peran pendaftaran kustom. Anda tidak dapat menggunakan peran terkait layanan untuk akses lintas akun atau saat menggunakan mesin kueri pihak ketiga (seperti Apache Spark). Untuk mesin pihak ketiga, Anda harus memberikan peran pendaftaran Anda sendiri melaluiregistration_role_arn. |
registration_role_arn |
str | Tidak ada | Bersyarat | ARN dari peran IAM khusus untuk mendaftarkan lokasi toko offline S3 dengan Lake Formation. Diperlukan kapan use_service_linked_roleFalse. |
hybrid_access_mode_enabled |
bool | — | Ya | Apakah akan mencabut IAMAllowedPrincipal dari tabel. AWS Glue False = Formation-only Izin Danau. True= mode hybrid (baik IAM dan Lake Formation). Anda harus memilih secara eksplisit. |
acknowledge_risk |
bool | — | Ya | Harus True untuk melanjutkan. Ini adalah konfirmasi keamanan. Pengaturan untuk False menaikkan RuntimeError sebelum operasi apa pun dilakukan. |
Memahami knodge_risk
acknowledge_riskParameternya adalah gerbang pengaman. Dengan menyetelnyaTrue, Anda mengakui hal berikut:
-
Jika
hybrid_access_mode_enabled=False: IAM-based Pekerjaan, buku catatan, dan saluran pipa yang ada yang menanyakan AWS Glue tabel ini segera kehilangan akses. Anda harus memberikan izin Lake Formation kepada prinsipal tersebut sebelum atau segera setelah mengaktifkan. -
Jika izin Lake Formation tidak dikonfigurasi dengan benar: Data dalam grup fitur mungkin menjadi tidak dapat diakses oleh semua pengguna hingga izin diperbaiki.
-
Operasi memodifikasi izin Katalog AWS Glue Data: Perubahan ini memengaruhi semua konsumen AWS Glue tabel, bukan hanya pengguna Feature Store. Setiap pertanyaan Athena, pekerjaan Spark, atau layanan lain yang dibaca dari tabel ini terpengaruh.
Cara kerjanya
Saat Anda mengaktifkan Lake Formation, SDK akan melakukan penyiapan tiga fase:
-
Daftarkan lokasi S3. SDK mendaftarkan jalur S3 toko offline dengan Lake Formation menggunakan peran terkait layanan Lake Formation atau peran pendaftaran khusus yang Anda tentukan. Jika Anda menggunakan mesin kueri pihak ketiga (seperti Apache Spark), Anda harus memberikan peran pendaftaran Anda sendiri karena peran terkait layanan tidak mendukung akses mesin pihak ketiga.
-
Berikan izin Lake Formation. SDK memberikan
SELECT,,INSERT,DELETEDESCRIBE, danALTERizin pada tabel Katalog AWS Glue Data ke peran eksekusi grup fitur. -
Secara opsional mencabut IAMAllowedPrincipal. Jika Anda menyetel
hybrid_access_mode_enabled=False, SDK mencabutIAMAllowedPrincipalhibah di atas tabel. AWS Glue
Setelah semua fase selesai, SDK mencatat kebijakan penolakan bucket S3 yang direkomendasikan. Tinjau dan terapkan kebijakan ini untuk mencegah akses langsung Amazon S3 yang melewati kontrol akses Lake Formation.
catatan
Jika pengaturan gagal di tengah jalan (misalnya, setelah mendaftarkan lokasi S3 tetapi sebelum memberikan izin), Anda dapat menjalankan kembali metode dengan aman. enable_lake_formation() SDK idempoten dan melewatkan langkah-langkah yang telah berhasil diselesaikan.
Contoh penggunaan
Buat grup fitur baru dengan kontrol akses Lake Formation
Contoh berikut membuat grup fitur baru dengan toko offline dan memungkinkan kontrol akses Lake Formation dalam satu operasi.
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, )
Aktifkan Lake Formation pada grup fitur yang ada
Contoh berikut memungkinkan Lake Formation pada grup fitur yang sudah ada.
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, )
Gunakan grup Formation-enabled fitur Lake dengan pekerjaan SageMaker AI
Anda dapat mengakses grup Formation-enabled fitur Lake dari pelatihan SageMaker AI dan pekerjaan pemrosesan. Untuk membaca data Formation-enabled fitur Lake, Anda dapat melakukan kueri data melalui Athena atau menggunakan Lake Formation GetTemporaryGlueTableCredentialsAPI untuk menjual kredenal Amazon S3 sementara yang dicakup ke tabel. AWS Glue Untuk informasi selengkapnya tentang mengonfigurasi izin Lake Formation untuk peran komputasi, lihat referensi izin Lake Formation di dokumentasi Lake Formation.
Cross-account akses
Lake Formation mendukung berbagi data grup fitur di seluruh Akun AWS. Ketika akun produser mengaktifkan Lake Formation pada grup fitur, akun tersebut dapat memberikan akses lintas akun ke akun konsumen menggunakan metode sumber daya bernama atau kontrol akses berbasis tag Lake Formation ()LF-TBAC.
Cross-account berbagi membutuhkan pengaturan berikut:
-
Akun produsen memberikan izin lintas akun pada tabel Katalog AWS Glue Data ke akun konsumen, AWS Organisasi, atau unit organisasi.
-
Jika akun tidak berada di AWS Organisasi yang sama, akun konsumen menerima undangan berbagi sumber daya AWS RAM. Untuk informasi selengkapnya, lihat Menerima undangan berbagi sumber daya.
-
Akun konsumen membuat tautan sumber daya ke tabel bersama dalam database lokal. Tautan sumber daya diperlukan untuk layanan seperti Athena dan Amazon Redshift Spectrum untuk menanyakan sumber daya bersama. Untuk informasi selengkapnya, lihat Tentang tautan sumber daya.
-
Administrator Lake Formation di akun konsumen memberikan izin pada tautan sumber daya dan tabel bersama yang mendasarinya kepada prinsipal IAM yang memerlukan akses.
penting
Jika Anda menggunakan mesin kueri pihak ketiga (seperti Apache Spark), Anda harus mengaktifkan akses tabel penuh untuk tabel bersama. Third-party mesin memerlukan penjual kredensi tabel penuh karena mereka tidak mendukung penyaringan tingkat kolom atau tingkat sel Lake Formation melalui tag sesi. Anda juga harus mendaftarkan lokasi Amazon S3 dengan peran pendaftaran khusus, bukan peran terkait layanan. Untuk informasi selengkapnya, lihat Akses tabel lengkap untuk mesin pihak ketiga.
Untuk prasyarat, petunjuk langkah demi langkah, dan praktik terbaik untuk berbagi lintas akun, lihat topik berikut di Panduan Pengembang Lake Formation AWS :
-
Cross-account akses — Ikhtisar metode berbagi lintas akun dan integrasi AWS RAM.
-
Cross-account prasyarat - Konfigurasi yang diperlukan untuk akun produsen dan konsumen.
-
Berbagi tabel dan database Katalog Data — Step-by-step instruksi untuk metode dan LF-TBAC metode sumber daya bernama.
-
Tag-based kontrol akses — Direkomendasikan untuk mengelola izin dalam skala besar di beberapa akun.
Berikan akses berbutir halus setelah pengaturan
Setelah Anda mengaktifkan Lake Formation, administrator Lake Formation dapat memberikan izin halus ke prinsipal IAM lainnya menggunakan konsol Lake Formation, API, atau CLI. Lake Formation mendukung kontrol akses tingkat kolom, tingkat baris, dan tingkat sel.
Untuk petunjuk tentang pemberian dan pengelolaan izin Lake Formation, lihat topik berikut di Panduan Pengembang AWS Lake Formation:
-
Filter data di Lake Formation untuk penyaringan tingkat baris dan tingkat sel