Mengkonfigurasi AWS Glue akses lintas akun di Athena untuk Spark - Amazon Athena

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

Mengkonfigurasi AWS Glue akses lintas akun di Athena untuk Spark

Topik ini menunjukkan bagaimana akun konsumen 666666666666 dan akun pemilik 999999999999 dapat dikonfigurasi untuk akses lintas akun. AWS Glue Ketika akun dikonfigurasi, akun konsumen dapat menjalankan kueri dari Athena untuk Spark pada database dan tabel pemilik AWS Glue .

1. Di AWS Glue, berikan akses ke peran konsumen

Di AWS Glue, pemilik membuat kebijakan yang menyediakan akses peran konsumen ke katalog AWS Glue data pemilik.

Untuk menambahkan AWS Glue kebijakan yang memungkinkan akses peran konsumen ke katalog data pemilik
  1. Menggunakan akun pemilik katalog, masuk ke AWS Management Console.

  2. Buka AWS Glue konsol di https://console.aws.amazon.com/glue/.

  3. Di panel navigasi, perluas Katalog Data, lalu pilih Pengaturan katalog.

  4. Pada halaman Setelan katalog data, di bagian Izin, tambahkan kebijakan seperti berikut ini. Kebijakan ini memberikan peran untuk akses akun konsumen 666666666666 ke katalog data di akun pemilik 999999999999.

    { "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/*" ] } ] }

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
  1. Menggunakan akun konsumen, masuk ke AWS Management Console.

  2. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  3. Di panel navigasi, perluas Manajemen akses, lalu pilih Kebijakan.

  4. Pilih Buat kebijakan.

  5. Pada halaman Tentukan izin, pilih JSON.

  6. Di editor Kebijakan, masukkan pernyataan JSON 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/*" ] } ] }
  7. Pilih Selanjutnya.

  8. Pada halaman Tinjau dan buat, untuk nama Kebijakan, masukkan nama untuk kebijakan tersebut.

  9. Pilih Buat kebijakan.

Selanjutnya, Anda menggunakan konsol IAM di akun konsumen untuk melampirkan kebijakan yang baru saja Anda buat ke peran atau peran IAM yang akan digunakan akun konsumen untuk mengakses katalog data pemilik.

Untuk melampirkan AWS Glue kebijakan ke peran di akun konsumen
  1. Di panel navigasi konsol IAM akun konsumen, pilih Peran.

  2. Pada halaman Peran, temukan peran yang ingin Anda lampirkan kebijakan.

  3. Pilih Tambahkan izin, lalu pilih Lampirkan kebijakan.

  4. Temukan kebijakan yang baru saja Anda buat.

  5. Pilih kotak centang kebijakan, lalu pilih Tambahkan izin.

  6. Ulangi langkah-langkah untuk menambahkan kebijakan ke peran lain yang ingin Anda gunakan.

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:

  • Pemisah katalog lem — 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.

  • ID katalog lem — Dengan pendekatan ini, Anda menanyakan database secara langsung. Metode ini lebih nyaman jika Anda akan menggunakan sesi untuk menanyakan hanya katalog data pemilik tunggal.

Menggunakan pendekatan pemisah AWS Glue katalog

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()

Menggunakan pendekatan ID AWS Glue katalog

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

Akses lintas akun ke katalog AWS Glue data

Mengelola izin lintas akun menggunakan keduanya AWS Glue dan Lake Formation di Panduan AWS Lake Formation Pengembang.

Konfigurasikan akses lintas akun ke berbagi AWS Glue Data Catalog menggunakan Amazon Athena AWS dalam Pola Panduan Preskriptif.