Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengakses lokasi Amazon S3
AWS Lake Formation memungkinkan Anda membaca dan menulis file data yang mendasarinya di Amazon Simple Storage Service (Amazon S3) untuk tabel yang terdaftar di AWS Glue Data Catalog (Katalog Data). Ini memberi Anda satu set izin untuk kueri SQL dan akses file langsung menggunakan hibah tabel Lake Formation yang ada. Lake Formation memperluas fungsionalitas penjual kredensialnya ke lokasi Amazon S3 yang terdaftar di Katalog Data. Saat aplikasi Anda meminta akses ke file Amazon S3 yang mendasari tabel Katalog Data, Lake Formation mengevaluasi izin tingkat tabel pemanggil yang ada dan, jika diotorisasi, mengembalikan kredensyal Amazon S3 yang berumur pendek dan tercakup untuk lokasi terdaftar tabel tersebut.
Aktifkan akses langsung ke lokasi Amazon S3
Untuk mengaktifkan fitur ini, Anda harus menyelesaikan langkah-langkah berikut.
Prasyarat
Lengkapi prasyarat berikut sebelum mengaktifkan flag fitur:
-
Daftarkan lokasi Amazon S3 — Katalog tabel Anda di Katalog Data untuk lokasi Amazon S3 Anda dan daftarkan ke Lake Formation dengan menyediakan akun pemilik bucket Amazon S3. Saat Anda mendaftarkan lokasi, jalur Amazon S3 dan semua folder di bawah jalur itu terdaftar. Untuk informasi selengkapnya, lihat Mendaftarkan lokasi Amazon S3.
-
Berikan izin Lake Formation — Berikan izin Lake Formation
SELECT(atauSUPER) pada tabel kepada ilmuwan data dan aplikasi Anda menggunakan konsol atau API Lake Formation. Jika Anda sudah menggunakan Lake Formation untuk akses tabel dengan layanan seperti Athena atau Amazon EMR, ini sudah dikonfigurasi. -
Aktifkan Integrasi Aplikasi dengan Akses Tabel Penuh - Aktifkan Integrasi Aplikasi dengan Akses Tabel Penuh untuk memungkinkan penjual kredensi ke lokasi tabel terdaftar. Untuk informasi selengkapnya, lihat Integrasi aplikasi untuk akses tabel penuh.
Aktifkan bendera fitur
Aktifkan fs.s3a.lakeformation.access.grants.enabled bendera pada mesin yang didukung:
fs.s3a.lakeformation.access.grants.enabled = true
-
Amazon EMR di Amazon EC2 - EMR 7.13 atau yang lebih baru
-
Amazon EMR di EKS - EMR 7.13 atau yang lebih baru
-
Amazon EMR Tanpa Server - EMR 7.13 atau yang lebih baru
Setelah dikonfigurasi, Anda dapat langsung membaca atau menulis file data dari EMR menggunakan API standar.
Untuk informasi selengkapnya tentang integrasi EMR Amazon, lihat penjual kredensi berbasis jalur Lake Formation di Panduan Manajemen EMR Amazon.
Cara kerjanya
Akses lokasi Danau Formation-based Amazon S3 mengikuti aliran ini:
-
Prinsipal atau peran meminta akses ke file data Amazon S3 melalui layanan seperti pekerjaan Amazon EMR Spark, atau pipeline pemrosesan data.
-
Plugin AWS SDK yang terintegrasi dengan EMR mencegat permintaan Amazon S3 dan memanggil Lake Formation API.
GetTemporaryDataLocationCredentials -
Lake Formation memeriksa apakah jalur Amazon S3 sesuai dengan lokasi terdaftar dan tabel katalog, serta mengevaluasi izin pemanggil pada tabel terkait. AWS Glue
-
Jika pemanggil memiliki
SELECTatauSUPERizin pada tabel yang sesuai dengan akses tabel penuh, Lake Formation memberikan kredensyal sementara yang dicakup ke lokasi Amazon S3 tersebut.SELECTmemberikan kredensyal BACA; memberikan kredensyalSUPERREADWRITE. -
Plugin menggunakan kredensyal ini untuk menyelesaikan permintaan Amazon S3, dan Amazon S3 menyediakan data ke aplikasi.
-
Semua operasi penjual kredensyal dicatat CloudTrail, menyediakan jejak audit untuk akses data.
Proses ini transparan bagi Anda dan Anda cukup menggunakan izin Lake Formation yang ada dengan API berbasis file standar.
# Read raw data (Lake Formation-based S3 Location access) raw_df = spark.read.json("s3://finance-datalake/raw/transactions/dt=2024-03-21/") # Read governed data (Lake Formation-based S3 Location access) transactions_df = spark.read.parquet("s3://data-lake/transactions/year=2026/") # Write processed data (Lake Formation-based S3 Location access) processed_df.write \ .mode("append") \ .partitionBy("transaction_date") \ .parquet("s3://finance-datalake/processed/transactions/") print("ETL complete. Records written:", processed_df.count())
Persyaratan izin
Fitur saat ini menjual kredensyal hanya ketika pemanggil memiliki akses tabel penuh, artinya SELECT pada semua kolom tanpa filter baris atau kolom. Jika tabel memiliki filter tingkat baris atau tingkat kolom yang diterapkan, penelepon harus terus menggunakan mesin tepercaya seperti Athena, Amazon EMR, AWS Glue atau Amazon Redshift yang dapat menerapkan filter tersebut. Ini memastikan batas-batas keamanan tetap konsisten.
Cross-account akses
Akses yang disederhanakan Lake Formation ke lokasi Amazon S3 berfungsi dengan kemampuan berbagi lintas akun. Saat Anda membagikan tabel dengan AWS akun lain melalui Lake Formation, penerima dapat mengakses file data Amazon S3 yang mendasarinya menggunakan izin Lake Formation mereka, tunduk pada persyaratan akses tabel lengkap yang sama.
Fitur ini mendukung mekanisme tautan sumber daya Lake Formation untuk akses lintas akun. Jika akun konsumen memiliki izin di tabel bersama, Lake Formation memberikan kredensyal yang dicakup ke lokasi Amazon S3 akun terdaftar, memungkinkan akses data lintas akun yang mulus tanpa memerlukan kebijakan bucket Amazon S3 terpisah atau peran IAM lintas akun.
Lokasi Amazon S3 bersarang
Ketika beberapa tabel menunjuk ke lokasi bersarang di bucket yang sama, Lake Formation menerapkan perilaku berikut:
-
Saat mengakses
s3://bucket, Anda menerima izin yang sesuai dengan tabel yang terdaftar di tingkat bucket. -
Saat mengakses
s3://bucket/folder1, Anda menerima izin yang sesuai dengan tabel yang terdaftar di jalur tertentu. -
Untuk akses ke folder tanpa tabel terdaftar (misalnya,
s3://bucket/folder2), Anda menerima izin dari lokasi terdaftar induk terdekat. -
Jika beberapa tabel terdaftar di lokasi yang sama, Lake Formation mengembalikan kesalahan karena izin yang bertentangan.
Audit dan kepatuhan
Semua operasi penjual kredensyal dicatat CloudTrail, menyediakan jejak audit untuk akses data. Saat Lake Formation menjual kredensyal melalui GetTemporaryDataLocationCredentials API, catat: CloudTrail
-
Prinsipal (pengguna atau peran)
-
Stempel waktu
-
Lokasi Amazon S3
-
AWS GlueTabel terkait
Panggilan API Amazon S3 berikutnya yang dilakukan dengan kredensyal tersebut juga dicatat sebagai peristiwa data Amazon CloudTrail S3, dengan konteks yang menautkannya kembali ke hibah izin Lake Formation. Ini memberi auditor visibilitas lengkap tentang siapa yang mengakses data apa, kapan, dan melalui jalur izin mana — semuanya dalam satu aliran log. CloudTrail
Didukung AWS layanan
Akses yang disederhanakan Lake Formation ke lokasi Amazon S3 berfungsi dengan:
-
Amazon EMR di Amazon EC2 (EMR 7.13 atau lebih baru)
-
Amazon EMR di EKS (EMR 7.13 atau lebih baru)
-
Amazon EMR Tanpa Server (EMR 7.13 atau lebih baru)
Plugin open source untuk layanan pihak ketiga
Anda juga dapat mengintegrasikan Trino aplikasi Anda Apache Spark atau menggunakan API atau melalui plugin open source yang disediakan oleh AWS. Untuk informasi selengkapnya, lihat aws-lakeformation-accessgrants-plugin-java-v2
Pertimbangan-pertimbangan
Perhatikan pertimbangan berikut saat menggunakan penjual kredensyal untuk lokasi Amazon S3:
-
Penjual kredensyal untuk lokasi Amazon S3 tidak didukung lintas wilayah.
-
Penjual kredensyal didukung untuk lokasi Amazon S3 yang disertakan sebagai lokasi utama tabel.