

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
<a name="feature-store-lf-governance"></a>

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](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

**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](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-access-mode.html), yang memungkinkan kebijakan IAM dan izin Lake Formation untuk hidup berdampingan selama migrasi bertahap.

## Prasyarat
<a name="feature-store-lf-prerequisites"></a>

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**  
`LakeFormationRegistrationRole`Pernyataan 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](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html) 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](https://docs.aws.amazon.com/lake-formation/latest/dg/sharing-catalog-resources.html) dalam dokumentasi Lake Formation.

## Konsep utama
<a name="feature-store-lf-concepts"></a>

Konsep-konsep berikut ini penting untuk memahami cara kerja Lake Formation dengan Feature Store.

### Model izin Lake Formation dibandingkan dengan IAM-only model
<a name="feature-store-lf-permission-model"></a>

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, tabel`DESCRIBE`, atau kolom tertentu ke kepala sekolah IAM.

### Mode akses hibrid
<a name="feature-store-lf-hybrid-access"></a>

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 menyetel`hybrid_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
<a name="feature-store-lf-s3-deny-policy"></a>

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
<a name="feature-store-lf-configuration"></a>

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
<a name="feature-store-lf-acknowledge-risk"></a>

`acknowledge_risk`Parameternya adalah gerbang pengaman. Dengan menyetelnya`True`, 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
<a name="feature-store-lf-how-it-works"></a>

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.

1. **Berikan izin Lake Formation.** SDK memberikan`SELECT`,,`INSERT`, `DELETE``DESCRIBE`, dan `ALTER` izin pada tabel Katalog AWS Glue Data ke peran eksekusi grup fitur.

1. **Secara opsional mencabut IAMAllowedPrincipal.** Jika Anda menyetel`hybrid_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
<a name="feature-store-lf-examples"></a>

### Buat grup fitur baru dengan kontrol akses Lake Formation
<a name="feature-store-lf-example-new-fg"></a>

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
<a name="feature-store-lf-example-existing-fg"></a>

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
<a name="feature-store-lf-sagemaker-jobs"></a>

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 [GetTemporaryGlueTableCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGlueTableCredentials.html)API 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](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html) di dokumentasi Lake Formation.

## Cross-account akses
<a name="feature-store-lf-cross-account"></a>

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.

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html).

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/full-table-credential-vending.html).

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](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) — Ikhtisar metode berbagi lintas akun dan integrasi AWS RAM.
+ [Cross-account prasyarat](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-prereqs.html) - Konfigurasi yang diperlukan untuk akun produsen dan konsumen.
+ [Berbagi tabel dan database Katalog Data](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-data-share-steps.html) — Step-by-step instruksi untuk metode dan LF-TBAC metode sumber daya bernama.
+ [Tag-based kontrol akses](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html) — Direkomendasikan untuk mengelola izin dalam skala besar di beberapa akun.

## Berikan akses berbutir halus setelah pengaturan
<a name="feature-store-lf-fine-grained-access"></a>

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:
+ [Memberikan dan mencabut izin Katalog Data](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html)
+ [Filter data di Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filters-about.html) untuk penyaringan tingkat baris dan tingkat sel
+ [Referensi izin Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html)