Kontrol akses data yang mendasari - AWS Lake Formation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kontrol akses data yang mendasari

Ketika AWS layanan terintegrasi meminta akses ke data di lokasi Amazon S3 yang dikendalikan oleh akses, Lake AWS Lake Formation Formation menyediakan kredensi sementara untuk mengakses data.

Untuk mengaktifkan Lake Formation mengontrol akses ke data dasar di lokasi Amazon S3, Anda mendaftarkan lokasi tersebut dengan Lake Formation.

Setelah mendaftarkan lokasi Amazon S3, Anda dapat mulai memberikan izin Lake Formation berikut:

  • Izin akses data (SELECT,INSERT, dan DELETE) pada tabel Katalog Data yang mengarah ke lokasi tersebut.

  • Izin lokasi data di lokasi tersebut.

Izin lokasi data Lake Formation mengontrol kemampuan untuk membuat sumber daya Katalog Data yang mengarah ke lokasi Amazon S3 tertentu. Izin lokasi data memberikan lapisan keamanan ekstra ke lokasi di dalam danau data. Ketika Anda memberikan CREATE_TABLE atau ALTER izin kepada kepala sekolah, Anda juga memberikan izin lokasi data untuk membatasi lokasi yang prinsipal dapat membuat atau mengubah tabel metadata.

Lokasi Amazon S3 adalah ember atau awalan di bawah ember, tetapi bukan objek Amazon S3 individual.

Anda dapat memberikan izin lokasi data kepada prinsipal menggunakan konsol Lake Formation, API, atau. AWS CLI Bentuk umum hibah adalah sebagai berikut:

grant DATA_LOCATION_ACCESS to principal on S3 location [with grant option]

Jika Anda menyertakanwith grant option, penerima hibah dapat memberikan izin kepada prinsipal lain.

Ingatlah bahwa izin Lake Formation selalu bekerja dalam kombinasi dengan izin AWS Identity and Access Management (IAM) untuk kontrol akses berbutir halus. Untuk izin baca/tulis pada data Amazon S3 yang mendasarinya, izin IAM diberikan sebagai berikut:

Saat mendaftarkan lokasi, Anda menentukan peran IAM yang memberikan izin baca/tulis di lokasi tersebut. Lake Formation mengasumsikan peran itu ketika memasok kredensi sementara ke layanan terintegrasi. AWS Peran tipikal mungkin memiliki kebijakan berikut yang dilampirkan, di mana lokasi terdaftar adalah bucketawsexamplebucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket" ] } ] }

Lake Formation menyediakan peran terkait layanan yang dapat Anda gunakan saat pendaftaran untuk membuat kebijakan seperti ini secara otomatis. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Lake Formation.

Oleh karena itu, mendaftarkan lokasi Amazon S3 memberikan s3: izin IAM yang diperlukan di lokasi tersebut, di mana izin ditentukan oleh peran yang digunakan untuk mendaftarkan lokasi.

penting

Hindari mendaftarkan bucket Amazon S3 yang mengaktifkan Requester pay. Untuk ember yang terdaftar di Lake Formation, peran yang digunakan untuk mendaftarkan ember selalu dipandang sebagai pemohon. Jika bucket diakses oleh AWS akun lain, pemilik bucket akan dikenakan biaya untuk akses data jika peran tersebut milik akun yang sama dengan pemilik bucket.

Untuk akses baca/tulis ke data yang mendasarinya, selain izin Lake Formation, kepala sekolah juga memerlukan izin IAM berikut:

lakeformation:GetDataAccess

Dengan izin ini, Lake Formation memberikan permintaan kredensil sementara untuk mengakses data.

catatan

Amazon Athena mengharuskan pengguna untuk memiliki izin. lakeformation:GetDataAccess Layanan terintegrasi lainnya memerlukan peran eksekusi yang mendasarinya untuk memiliki lakeformation:GetDataAccess izin.

Izin ini termasuk dalam kebijakan yang disarankan diReferensi personas Lake Formation dan izin IAM.

Untuk meringkas, untuk mengaktifkan kepala sekolah Lake Formation membaca dan menulis data yang mendasarinya dengan akses yang dikendalikan oleh izin Lake Formation:

  • Daftarkan lokasi Amazon S3 yang berisi data dengan Lake Formation.

  • Prinsipal yang membuat tabel Katalog Data yang mengarah ke lokasi data yang mendasarinya harus memiliki izin lokasi data.

  • Kepala sekolah yang membaca dan menulis data dasar harus memiliki izin akses data Lake Formation pada tabel Katalog Data yang mengarah ke lokasi data yang mendasarinya.

  • Kepala sekolah yang membaca dan menulis data dasar harus memiliki izin lakeformation:GetDataAccess IAM ketika lokasi data yang mendasarinya terdaftar di Lake Formation.

catatan

Model izin Lake Formation tidak mencegah akses ke lokasi Amazon S3 melalui Amazon S3 API atau konsol jika Anda memiliki akses ke lokasi tersebut melalui kebijakan IAM atau Amazon S3. Anda dapat melampirkan kebijakan IAM ke kepala sekolah untuk memblokir akses ini.

Lebih lanjut tentang izin lokasi data

Izin lokasi data mengatur hasil dari membuat dan memperbarui operasi pada database dan tabel Katalog Data. Aturannya adalah sebagai berikut:

  • Prinsipal harus memiliki izin lokasi data eksplisit atau implisit di lokasi Amazon S3 untuk membuat atau memperbarui database atau tabel yang menentukan lokasi tersebut.

  • Izin eksplisit DATA_LOCATION_ACCESS diberikan menggunakan konsol, API, atau AWS CLI.

  • Izin implisit diberikan ketika database memiliki properti lokasi yang menunjuk ke lokasi terdaftar, prinsipal memiliki CREATE_TABLE izin pada database, dan prinsipal mencoba membuat tabel di lokasi tersebut atau lokasi anak.

  • Jika prinsipal diberikan izin lokasi data pada suatu lokasi, kepala sekolah memiliki izin lokasi data di semua lokasi turunan.

  • Seorang prinsipal tidak memerlukan izin lokasi data untuk melakukan operasi baca/tulis pada data yang mendasarinya. Hal ini cukup untuk memiliki SELECT atau izin akses INSERT data. Izin lokasi data hanya berlaku untuk membuat sumber daya Katalog Data yang mengarah ke lokasi.

Pertimbangkan skenario yang ditunjukkan pada diagram berikut.

Hirarki folder dan dua database, database A dan B, dengan database B menunjuk ke folder Layanan Pelanggan.

Dalam diagram ini:

  • Bucket Amazon S3Products,Finance, dan Customer Service terdaftar di Lake Formation.

  • Database Atidak memiliki properti lokasi, dan Database B memiliki properti lokasi yang menunjuk ke Customer Service ember.

  • Pengguna datalake_user memiliki CREATE_TABLE pada kedua database.

  • Pengguna datalake_user telah diberikan izin lokasi data hanya pada Products bucket.

Berikut ini adalah hasil ketika pengguna datalake_user mencoba untuk membuat tabel katalog dalam database tertentu di lokasi tertentu.

Lokasi tempat datalake_user mencoba membuat tabel
Database dan Lokasi Berhasil atau Gagal Alasan
Database A di Finance/Sales Gagal Tidak ada izin lokasi data
Database A di Products Berhasil Memiliki izin lokasi data
Database A di HR/Plans Berhasil Lokasi tidak terdaftar
Database B di Customer Service/Incidents Berhasil Database memiliki properti lokasi di Customer Service

Untuk informasi selengkapnya, lihat informasi berikut: