Menggunakan AWS Glue Data Catalog tampilan - Amazon Athena

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

Menggunakan AWS Glue Data Catalog tampilan

Fitur ini dalam rilis pratinjau dan dapat berubah. Untuk informasi selengkapnya, lihat bagian Beta dan Pratinjau di dokumen Ketentuan AWS Layanan.

Gunakan AWS Glue Data Catalog tampilan saat Anda menginginkan satu tampilan umum AWS layanan seperti Amazon Athena dan Amazon Redshift. Dalam tampilan Katalog Data, izin akses ditentukan oleh pengguna yang membuat tampilan, bukan pengguna yang menanyakan tampilan. Metode pemberian izin ini disebut semantik definer.

Kasus penggunaan berikut menunjukkan bagaimana Anda dapat menggunakan tampilan Katalog Data.

  • Kontrol akses yang lebih besar — Anda membuat tampilan yang membatasi akses data berdasarkan tingkat izin yang dibutuhkan pengguna. Misalnya, Anda dapat menggunakan tampilan Katalog Data untuk mencegah karyawan yang tidak bekerja di departemen sumber daya manusia (SDM) melihat informasi yang dapat diidentifikasi secara pribadi.

  • Pastikan catatan lengkap — Dengan menerapkan filter tertentu ke tampilan Katalog Data Anda, Anda memastikan bahwa catatan data dalam tampilan Katalog Data selalu lengkap.

  • Keamanan yang ditingkatkan — Dalam tampilan Katalog Data, definisi kueri yang membuat tampilan harus utuh agar tampilan dibuat. Hal ini membuat tampilan Data Catalog kurang rentan terhadap perintah SQL dari aktor jahat.

  • Mencegah akses ke tabel yang mendasari — Semantik definer memungkinkan pengguna mengakses tampilan tanpa membuat tabel yang mendasarinya tersedia bagi mereka. Hanya pengguna yang mendefinisikan tampilan yang memerlukan akses ke tabel.

Definisi tampilan Katalog Data disimpan dalam format AWS Glue Data Catalog. Ini berarti Anda dapat menggunakan AWS Lake Formation untuk memberikan akses melalui hibah sumber daya, hibah kolom, atau kontrol akses berbasis tag. Untuk informasi selengkapnya tentang pemberian dan pencabutan akses di Lake Formation, lihat Memberikan dan mencabut izin pada sumber daya Katalog Data di Panduan Pengembang.AWS Lake Formation

Izin

Tampilan Katalog Data memerlukan tiga peran:Lake Formation Admin,Definer, danInvoker.

  • Lake Formation Admin— Memiliki akses untuk mengonfigurasi semua izin Lake Formation.

  • Definer— Membuat tampilan Katalog Data. DefinerPeran harus memiliki SELECT izin penuh yang dapat diberikan pada semua tabel yang mendasari referensi definisi tampilan.

  • Invoker— Dapat menanyakan tampilan Katalog Data atau memeriksa metadatanya. Untuk menampilkan pemanggil kueri, Anda dapat menggunakan fungsi invoker_principal() DHTML. Untuk informasi selengkapnya, lihat invoker_principal ().

Hubungan kepercayaan Definer peran harus memungkinkan sts:AssumeRole tindakan untuk kepala layanan AWS Glue dan Lake Formation, seperti pada contoh berikut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Izin IAM untuk akses Athena juga diperlukan. Untuk informasi selengkapnya, lihat AWS kebijakan terkelola untuk Amazon Athena.

Batasan

  • Tampilan Katalog Data tidak dapat mereferensikan tampilan lain.

  • Anda dapat mereferensikan hingga 10 tabel dalam definisi tampilan.

  • Tabel yang mendasari harus terdaftar di Lake Formation.

  • DEFINERKepala sekolah hanya dapat menjadi peran IAM.

  • DEFINERPeran harus memiliki izin penuh SELECT (dapat diberikan) pada tabel yang mendasarinya.

  • UNPROTECTEDTampilan Katalog Data tidak didukung.

  • Fungsi yang ditentukan pengguna (UDF) tidak didukung dalam definisi tampilan.

  • Sumber data federasi Athena tidak dapat digunakan dalam tampilan Katalog Data.

  • Tampilan Katalog Data tidak didukung untuk Hive metastor eksternal.

  • Athena menampilkan pesan kesalahan saat mendeteksi tampilan basi. Tampilan basi dilaporkan saat salah satu hal berikut terjadi:

    • Tampilan referensi tabel atau basis data yang tidak ada.

    • Perubahan skema atau metadata dibuat dalam tabel direferensikan.

    • Sebuah tabel direferensikan dijatuhkan dan diciptakan dengan skema yang berbeda atau konfigurasi.

Membuat tampilan Katalog Data

Contoh sintaks berikut menunjukkan bagaimana pengguna Definer peran menciptakan tampilan orders_by_date Data Catalog. Contoh mengasumsikan bahwa Definer peran memiliki SELECT izin penuh pada orders tabel dalam database. default

CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate

Menanyakan tampilan Katalog Data

Setelah tampilan dibuat, Lake Formation Admin dapat memberikan SELECT izin pada tampilan Katalog Data ke Invoker prinsipal. InvokerPrinsipal kemudian dapat menanyakan tampilan tanpa memiliki akses ke tabel dasar yang mendasari yang direferensikan oleh tampilan. Berikut ini adalah contoh Invoker query.

SELECT * from orders_by_date where price > 5000

Memperbarui tampilan Katalog Data

Lake Formation AdminAtau Definer dapat menggunakan ALTER VIEW UPDATE DIALECT sintaks untuk memperbarui definisi tampilan. Contoh berikut memodifikasi definisi tampilan untuk memilih kolom dari returns tabel bukan orders tabel.

ALTER VIEW orders_by_date UPDATE DIALECT AS SELECT return_date, sum(totalprice) AS price FROM returns WHERE order_city = 'SEATTLE' GROUP BY orderdate

Untuk informasi selengkapnya tentang sintaks untuk membuat dan mengelola tampilan Katalog Data, lihatGlue Data Catalog tampilan sintaks.