View a markdown version of this page

Mengelola akses ke tabel atau database dengan Lake Formation - Amazon Simple Storage Service

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

Mengelola akses ke tabel atau database dengan Lake Formation

Jika bucket meja Anda terintegrasi dengan layanan AWS analitik menggunakan Lake Formation, maka Lake Formation mengelola akses ke tabel Anda dan mengharuskan setiap kepala IAM (pengguna atau peran) diberi wewenang untuk melakukan tindakan mereka. Lake Formation menggunakan model izinnya sendiri (izin Formasi Danau) yang memungkinkan kontrol akses halus untuk sumber daya Katalog Data.

Untuk informasi selengkapnya, lihat Ikhtisar izin Formasi Danau di Panduan AWS Lake Formation Pengembang.

Ada dua jenis izin utama di AWS Lake Formation:

  1. Izin akses metadata mengontrol kemampuan untuk membuat, membaca, memperbarui, dan menghapus database metadata dan tabel di Katalog Data.

  2. Izin akses data yang mendasarinya mengontrol kemampuan membaca dan menulis data ke lokasi Amazon S3 yang mendasarinya yang ditunjuk oleh sumber daya Katalog Data.

Lake Formation menggunakan kombinasi model izin sendiri dan model izin IAM untuk mengontrol akses ke sumber daya Katalog Data dan data yang mendasarinya:

  • Agar permintaan mengakses sumber daya Katalog Data atau data yang mendasarinya berhasil, permintaan harus lulus pemeriksaan izin oleh IAM dan Lake Formation.

  • Izin IAM mengontrol akses ke Formasi Danau dan AWS Glue API serta sumber daya, sedangkan izin Lake Formation mengontrol akses ke sumber daya Katalog Data, lokasi Amazon S3, dan data yang mendasarinya.

Izin Formasi Danau hanya berlaku di Wilayah di mana izin tersebut diberikan, dan kepala sekolah harus diberi wewenang oleh administrator danau data atau kepala sekolah lain dengan izin yang diperlukan untuk diberikan izin Formasi Danau.

catatan

Jika Anda adalah pengguna yang melakukan integrasi bucket tabel, Anda sudah memiliki izin Lake Formation ke tabel Anda. Jika Anda satu-satunya kepala sekolah yang akan mengakses tabel Anda, Anda dapat melewati langkah ini. Anda hanya perlu memberikan izin Formasi Danau di tabel Anda kepada kepala sekolah IAM lainnya. Hal ini memungkinkan prinsipal lain untuk mengakses tabel saat menjalankan query. Untuk informasi selengkapnya, lihat Memberikan izin Formasi Danau pada meja atau database.

Memberikan izin Formasi Danau pada meja atau database

Anda dapat memberikan izin Formasi Danau utama pada tabel atau database dalam ember tabel, baik melalui konsol Formasi Danau atau AWS CLI.

catatan

Saat Anda memberikan izin Lake Formation pada sumber daya Katalog Data ke akun eksternal atau langsung ke prinsipal IAM di akun lain, Lake Formation menggunakan layanan AWS Resource Access Manager (AWS RAM) untuk berbagi sumber daya. Jika akun penerima hibah berada di organisasi yang sama dengan akun pemberi, sumber daya bersama segera tersedia untuk penerima hibah. Jika akun penerima hibah tidak berada di organisasi yang sama, kirim AWS RAM undangan ke akun penerima hibah untuk menerima atau menolak hibah sumber daya. Kemudian, untuk membuat sumber daya bersama tersedia, administrator danau data di akun penerima hibah harus menggunakan AWS RAM konsol atau AWS CLI menerima undangan. Untuk informasi selengkapnya tentang berbagi data lintas akun, lihat berbagi Cross-account data di Lake Formation di Panduan Peng AWS Lake Formation embang.

Console
  1. Buka AWS Lake Formation konsol dihttps://console.aws.amazon.com/lakeformation/, dan masuk sebagai administrator danau data. Untuk informasi selengkapnya tentang cara membuat administrator data lake, lihat Membuat administrator danau data di Panduan Peng AWS Lake Formation embang.

  2. Di panel navigasi, pilih Izin data, lalu pilih Grant.

  3. Pada halaman Iz in Berikan, di bawah Prinsipal, lakukan salah satu hal berikut:

    • Untuk Amazon Athena atau Amazon Redshift, pilih pengguna dan peran IAM, dan pilih prinsip IAM yang Anda gunakan untuk kueri.

    • Untuk Amazon Data Firehose, pilih pengguna dan peran IAM, lalu pilih peran layanan yang Anda buat untuk melakukan streaming ke tabel.

    • Untuk Cepat, pilih pengguna dan grup SAML, lalu masukkan Nama Sumber Daya Amazon (ARN) dari pengguna admin Cepat Anda.

    • Untuk AWS GlueIceberg REST akses titik akhir, pilih pengguna dan peran IAM lalu pilih peran IAM yang Anda buat untuk klien Anda. Untuk informasi selengkapnya, lihat Buat peran IAM untuk klien Anda

  4. Di bawah LF-Tags atau sumber daya katalog, pilih Sumber daya Katalog Data Bernama.

  5. Untuk Katalog, pilih subkatalog yang Anda buat saat Anda mengintegrasikan bucket tabel Anda, misalnya,account-id:s3tablescatalog/amzn-s3-demo-bucket.

  6. Untuk Datab ase, pilih namespace bucket tabel S3 yang Anda buat.

  7. (Opsional) Untuk Tabel, pilih tabel S3 yang Anda buat di bucket tabel Anda.

    catatan

    Jika Anda membuat tabel baru di editor kueri Athena, jangan pilih tabel.

  8. Lakukan salah satu tindakan berikut:

    • Jika Anda menentukan tabel di langkah sebelumnya, untuk Izin Tabel, pilih Super.

    • Jika Anda tidak menentukan tabel di langkah sebelumnya, buka izin database. Untuk berbagi data lintas akun, Anda tidak dapat memilih Super untuk memberikan semua izin pada basis data kepada prinsipal lainnya. Sebagai gantinya, pilih izin yang lebih halus, seperti Menjelaskan.

  9. PilihIzin.

CLI
  1. Pastikan Anda menjalankan AWS CLI perintah berikut sebagai administrator danau data. Untuk informasi selengkapnya, lihat Membuat administrator danau data di Panduan AWS Lake Formation Pengembang.

  2. Jalankan perintah berikut untuk memberikan izin Lake Formation pada tabel di bucket tabel S3 ke prinsipal IAM untuk mengakses tabel. Untuk menggunakan contoh ini, ganti user input placeholdersdengan informasi Anda sendiri.

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'