View a markdown version of this page

Aktifkan Lake Formation dengan Grup Fitur - Amazon SageMaker AI

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/AWSServiceRoleForLakeFormationDataAccess Jika Anda memberikan peran pendaftaran Anda sendiri, atur ke ARN peran itu.

    catatan

    Jika mode akses hybrid dinonaktifkan pada sagemaker_featurestore database, penelepon juga harus memiliki CREATE_TABLE izin 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 sagemaker paket: 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:

  • Jikahybrid_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:

  1. 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.

  2. Berikan izin Lake Formation. SDK memberikanSELECT,,INSERT, DELETEDESCRIBE, dan ALTER izin pada tabel Katalog AWS Glue Data ke peran eksekusi grup fitur.

  3. Secara opsional mencabut IAMAllowedPrincipal. Jika Anda menyetelhybrid_access_mode_enabled=False, SDK mencabut IAMAllowedPrincipal hibah 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:

  1. Akun produsen memberikan izin lintas akun pada tabel Katalog AWS Glue Data ke akun konsumen, AWS Organisasi, atau unit organisasi.

  2. 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.

  3. 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.

  4. 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 :

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: