Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan lintas akun AWS Glue akses di Athena untuk Spark
Topik ini menunjukkan bagaimana akun konsumen 666666666666
dan akun pemilik 999999999999
dapat dikonfigurasi untuk cross-account AWS Glue
akses. Ketika akun dikonfigurasi, akun konsumen dapat menjalankan kueri dari Athena untuk Spark pada pemilik AWS Glue database dan tabel.
Langkah 1: Di AWS Glue, menyediakan akses ke peran konsumen
Masuk AWS Glue, pemilik membuat kebijakan yang memberikan akses peran konsumen ke pemilik AWS Glue katalog data.
Untuk menambahkan AWS Glue kebijakan yang memungkinkan akses peran konsumen ke katalog data pemilik
-
Menggunakan akun pemilik katalog, masuk ke AWS Management Console.
Buka AWS Glue konsol di https://console.aws.amazon.com/glue/
. -
Di panel navigasi, perluas Katalog Data, lalu pilih Pengaturan katalog.
-
Pada halaman Setelan katalog data, di bagian Izin, tambahkan kebijakan seperti berikut ini. Kebijakan ini menyediakan peran untuk akun konsumen
666666666666
akses ke katalog data di akun pemilik999999999999
.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
666666666666
:role/Admin", "arn:aws:iam::666666666666
:role/AWSAthenaSparkExecutionRole" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-west-2:999999999999
:catalog", "arn:aws:glue:us-west-2:999999999999
:database/*", "arn:aws:glue:us-west-2:999999999999
:table/*" ] } ] }
Langkah 2: Konfigurasikan akun konsumen untuk akses
Di akun konsumen, buat kebijakan untuk mengizinkan akses ke pemilik AWS Glue Data Catalog, database, dan tabel, dan lampirkan kebijakan ke peran. Contoh berikut menggunakan akun konsumen 666666666666
.
Untuk membuat AWS Glue kebijakan untuk akses ke pemilik AWS Glue Data Catalog
-
Menggunakan akun konsumen, masuk ke AWS Management Console.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, perluas Manajemen akses, lalu pilih Kebijakan.
-
Pilih Buat kebijakan.
-
Pada halaman Tentukan izin, pilih JSON.
-
Di editor Kebijakan, masukkan JSON pernyataan seperti berikut ini yang memungkinkan AWS Glue tindakan pada katalog data akun pemilik.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:
999999999999
:catalog", "arn:aws:glue:us-east-1:999999999999
:database/*", "arn:aws:glue:us-east-1:999999999999
:table/*" ] } ] } -
Pilih Berikutnya.
-
Pada halaman Tinjau dan buat, untuk nama Kebijakan, masukkan nama untuk kebijakan tersebut.
-
Pilih Buat kebijakan.
Selanjutnya, Anda menggunakan IAM konsol di akun konsumen untuk melampirkan kebijakan yang baru saja Anda buat ke IAM peran atau peran yang akan digunakan akun konsumen untuk mengakses katalog data pemilik.
Untuk melampirkan AWS Glue kebijakan untuk peran dalam akun konsumen
-
Di panel navigasi IAM konsol akun konsumen, pilih Peran.
-
Pada halaman Peran, temukan peran yang ingin Anda lampirkan kebijakan.
-
Pilih Tambahkan izin, lalu pilih Lampirkan kebijakan.
-
Temukan kebijakan yang baru saja Anda buat.
-
Pilih kotak centang untuk kebijakan, lalu pilih Tambahkan izin.
-
Ulangi langkah-langkah untuk menambahkan kebijakan ke peran lain yang ingin Anda gunakan.
Langkah 3: Konfigurasikan sesi dan buat kueri
Di Athena Spark, di akun pemohon, menggunakan peran yang ditentukan, buat sesi untuk menguji akses dengan membuat buku catatan atau mengedit sesi saat ini. Saat Anda mengonfigurasi properti sesi, tentukan salah satu dari berikut ini:
-
The AWS Glue pemisah katalog — Dengan pendekatan ini, Anda menyertakan ID akun pemilik dalam kueri Anda. Gunakan metode ini jika Anda akan menggunakan sesi untuk kueri katalog data dari pemilik yang berbeda.
-
The AWS Glue ID katalog — Dengan pendekatan ini, Anda menanyakan database secara langsung. Metode ini lebih nyaman jika Anda akan menggunakan sesi untuk menanyakan hanya katalog data pemilik tunggal.
Saat Anda mengedit properti sesi, tambahkan yang berikut ini:
{ "spark.hadoop.aws.glue.catalog.separator": "/" }
Saat Anda menjalankan kueri di sel, gunakan sintaks seperti itu dalam contoh berikut. Perhatikan bahwa dalam FROM
klausa, ID katalog dan pemisah diperlukan sebelum nama database.
df = spark.sql('SELECT requestip, uri, method, status FROM `
999999999999
/mydatabase`.cloudfront_logs LIMIT 5') df.show()
Saat Anda mengedit properti sesi, masukkan properti berikut. Ganti 999999999999
dengan ID akun pemilik.
{ "spark.hadoop.hive.metastore.glue.catalogid": "
999999999999
" }
Saat Anda menjalankan kueri di sel, gunakan sintaks seperti berikut ini. Perhatikan bahwa dalam FROM
klausa, ID katalog dan pemisah tidak diperlukan sebelum nama database.
df = spark.sql('SELECT * FROM mydatabase.cloudfront_logs LIMIT 10') df.show()
Sumber daya tambahan
Konfigurasikan akses lintas akun ke AWS Glue katalog data
Mengelola izin lintas akun menggunakan keduanya AWS Glue dan Lake Formation di AWS Lake Formation Panduan Pengembang.
Konfigurasikan akses lintas akun ke berbagi AWS Glue Data Catalog menggunakan Amazon Athena di AWS Pola Bimbingan Preskriptif.