Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan akses lintas akun ke AWS Glue katalog data
Anda dapat menggunakan cross-account Athena AWS Glue fitur katalog untuk mendaftarkan AWS Glue katalog dari akun selain milik Anda. Setelah Anda mengonfigurasi IAM izin yang diperlukan untuk AWS Glue dan mendaftarkan katalog sebagai DataCatalogsumber daya Athena, Anda dapat menggunakan Athena untuk menjalankan kueri lintas akun. Untuk informasi tentang menggunakan konsol Athena untuk mendaftarkan katalog dari akun lain, lihat. Daftarkan Katalog Data dari akun lain
Untuk informasi lebih lanjut tentang akses lintas akun di AWS Glue, lihat Memberikan akses lintas akun di AWS Glue Panduan Pengembang.
Sebelum Anda mulai
Karena fitur ini menggunakan DataCatalog
sumber daya APIs dan fungsionalitas Athena yang ada untuk mengaktifkan akses lintas akun, sebaiknya Anda membaca sumber daya berikut sebelum memulai:
-
Connect ke sumber data- Berisi topik tentang menggunakan Athena dengan AWS Glue Sumber katalog data, Hive, atau Lambda.
-
Contoh kebijakan Katalog Data- Menunjukkan bagaimana menulis kebijakan yang mengontrol akses ke katalog data.
-
Gunakan AWS CLI metastores with Hive- Menunjukkan cara menggunakan AWS CLI dengan metastor Hive, tetapi berisi kasus penggunaan yang berlaku untuk sumber data lain.
Pertimbangan dan batasan
Saat ini, Athena lintas akun AWS Glue akses katalog memiliki batasan sebagai berikut:
-
Fitur ini hanya tersedia di Wilayah AWS di mana mesin Athena versi 2 atau yang lebih baru didukung. Untuk informasi selengkapnya tentang versi mesin Aurora, lihat Versi mesin Athena. Untuk memutakhirkan versi engine untuk workgroup, lihatUbah versi mesin Athena.
-
Saat Anda mendaftarkan akun lain AWS Glue Data Catalog di akun Anda, Anda membuat
DataCatalog
sumber daya regional yang ditautkan ke data akun lain di Wilayah tertentu saja. -
Saat ini,
CREATE VIEW
pernyataan yang mencakup akun silang AWS Glue katalog tidak didukung. -
Katalog dienkripsi menggunakan AWS kunci terkelola tidak dapat ditanyakan di seluruh akun. Untuk katalog yang ingin Anda kueri di seluruh akun, gunakan kunci terkelola pelanggan (
KMS_CMK
) sebagai gantinya. Untuk informasi tentang perbedaan antara kunci yang dikelola pelanggan dan AWS kunci terkelola, lihat Kunci pelanggan dan AWS kunci di AWS Key Management Service Panduan Pengembang.
Memulai
Dalam skenario berikut, akun “peminjam” (666666666666) ingin menjalankan kueri yang mengacu pada SELECT
AWS Glue katalog yang termasuk dalam akun “pemilik” (999999999999), seperti pada contoh berikut:
SELECT * FROM ownerCatalog.tpch1000.customer
Dalam prosedur berikut, Langkah 1a dan 1b menunjukkan cara memberikan akses akun peminjam ke akun pemilik AWS Glue sumber daya, baik dari sisi peminjam maupun pemilik. Contoh memberikan akses ke databasetpch1000
dan tabelcustomer
. Ubah nama contoh ini agar sesuai dengan kebutuhan Anda.
Langkah 1a: Buat peran peminjam dengan kebijakan untuk mengakses pemilik AWS Glue sumber daya
Untuk membuat peran akun peminjam dengan kebijakan untuk mengakses akun pemilik AWS Glue sumber daya, Anda dapat menggunakan AWS Identity and Access Management (IAM) konsol atau IAMAPI. Prosedur berikut menggunakan IAM konsol.
Untuk membuat peran dan kebijakan peminjam untuk mengakses akun pemilik AWS Glue sumber daya
-
Masuk ke IAM konsol di https://console.aws.amazon.com/iam/
dari akun peminjam. -
Di panel navigasi, perluas Manajemen akses, lalu pilih Kebijakan.
-
Pilih Buat kebijakan.
-
Untuk editor Kebijakan, pilih JSON.
-
Di editor kebijakan, masukkan kebijakan berikut, lalu modifikasi sesuai dengan kebutuhan Anda:
{ "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/tpch1000
", "arn:aws:glue:us-east-1
:999999999999
:table/tpch1000
/customer
" ] } ] } -
Pilih Berikutnya.
-
Pada halaman Tinjau dan buat, untuk nama Kebijakan, masukkan nama untuk kebijakan (misalnya,
CrossGluePolicyForBorrowerRole
). -
Pilih Buat kebijakan.
-
Di panel navigasi, pilih Peran.
-
Pilih Buat peran.
-
Pada halaman Pilih entitas tepercaya, pilih Akun AWS, dan kemudian pilih Berikutnya.
-
Pada halaman Tambahkan izin, masukkan nama kebijakan yang Anda buat ke dalam kotak pencarian (misalnya,
CrossGluePolicyForBorrowerRole
). -
Pilih kotak centang di samping nama kebijakan, lalu pilih Berikutnya.
-
Pada Nama, tinjau, dan buat, untuk Nama peran, masukkan nama untuk peran (misalnya,
CrossGlueBorrowerRole
). -
Pilih Buat peran.
Langkah 1b: Buat kebijakan pemilik untuk diberikan AWS Glue akses ke peminjam
Untuk memberikan AWS Glue akses dari akun pemilik (99999999999999) ke peran peminjam, Anda dapat menggunakan AWS Glue konsol atau AWS Glue PutResourcePolicyAPIoperasi. Prosedur berikut menggunakan AWS Glue konsol.
Untuk memberikan AWS Glue akses ke akun peminjam dari pemilik
-
Masuk ke AWS Glue konsol di https://console.aws.amazon.com/glue/
dari akun pemilik. -
Di panel navigasi, perluas Katalog Data, lalu pilih Pengaturan katalog.
-
DiIzin, masukkan kebijakan seperti berikut. Untuk
rolename
, masukkan peran yang dibuat peminjam di Langkah 1a (misalnya,CrossGlueBorrowerRole
). Jika Anda ingin meningkatkan cakupan izin, Anda dapat menggunakan karakter wild card*
untuk jenis sumber daya database dan tabel.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
666666666666
:user/username
", "arn:aws:iam::666666666666
:role/rolename
" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1
:999999999999
:catalog", "arn:aws:glue:us-east-1
:999999999999
:database/tpch1000
", "arn:aws:glue:us-east-1
:999999999999
:table/tpch1000
/customer
" ] } ] }
Setelah Anda selesai, kami sarankan Anda menggunakan AWS Glue APIuntuk melakukan beberapa pengujian panggilan lintas akun untuk mengonfirmasi bahwa izin dikonfigurasi seperti yang Anda harapkan.
Langkah 2: Peminjam mendaftarkan AWS Glue Data Catalog yang dimiliki oleh akun pemilik
Prosedur berikut menunjukkan kepada Anda cara menggunakan konsol Athena untuk mengonfigurasi AWS Glue Data Catalog di akun pemilik Amazon Web Services sebagai sumber data. Untuk informasi tentang menggunakan API operasi alih-alih konsol untuk mendaftarkan katalog, lihat(Opsional) Gunakan API untuk mendaftarkan Katalog Data Athena milik akun pemilik.
Untuk mendaftarkan AWS Glue Data Catalog milik akun lain
Buka konsol Athena di https://console.aws.amazon.com/athena/
. Jika panel navigasi konsol tidak terlihat, pilih menu ekspansi di sebelah kiri.
-
Perluas Administrasi, lalu pilih Sumber data.
-
Di kanan atas, pilih Buat sumber data.
-
Pada halaman Pilih sumber data, untuk Sumber data, pilih S3 - AWS Glue Data Catalog, dan kemudian pilih Berikutnya.
-
Pada halaman Masukkan detail sumber data, di AWS Glue Data Catalogbagian, untuk Pilih AWS Glue Data Catalog, pilih AWS Glue Data Catalog di akun lain.
-
Untuk detail sumber data, masukkan informasi berikut:
-
Nama sumber data — Masukkan nama yang ingin Anda gunakan dalam SQL kueri untuk merujuk ke katalog data di akun lain.
-
Deskripsi— (Opsional) Masukkan deskripsi katalog data di akun lainnya.
-
ID Katalog— Masukkan 12 digit Amazon Web Services akun ID dari akun tempat katalog data berada. Amazon Web Services akun ID adalah ID katalog.
-
-
(Opsional) Perluas Tag, lalu masukkan pasangan nilai kunci yang ingin Anda kaitkan dengan sumber data. Untuk informasi selengkapnya tentang tag, lihat Tag sumber daya Athena.
-
Pilih Berikutnya.
-
Pada halaman Tinjau dan buat, tinjau informasi yang Anda berikan, lalu pilih Buat sumber data. Halaman detail sumber data mencantumkan database dan tag untuk katalog data yang Anda daftarkan.
-
Pilih Sumber data. Katalog data yang Anda daftarkan tercantum di kolom Nama sumber data.
-
Untuk melihat atau mengedit informasi tentang katalog data, pilih katalog, lalu pilih Tindakan, Edit.
-
Untuk menghapus katalog data baru, pilih katalog, lalu pilih Tindakan, Hapus.
Langkah 3: Peminjam mengirimkan kueri
Peminjam mengirimkan kueri yang mereferensikan katalog menggunakan catalog
.database
.table
sintaks, seperti pada contoh berikut:
SELECT * FROM ownerCatalog.tpch1000.customer
Alih-alih menggunakan sintaks yang sepenuhnya memenuhi syarat, peminjam juga dapat menentukan katalog secara kontekstual dengan meneruskannya melalui. QueryExecutionContext
(Opsional) Konfigurasikan izin Amazon S3 tambahan
-
Jika akun peminjam menggunakan kueri Athena untuk menulis data baru ke tabel di akun pemilik, pemilik tidak akan secara otomatis memiliki akses ke data ini di Amazon S3, meskipun tabel ada di akun pemilik. Ini karena peminjam adalah pemilik objek informasi di Amazon S3 kecuali dikonfigurasi lain. Untuk memberikan pemilik akses ke data, atur izin pada objek yang sesuai sebagai langkah tambahan.
-
DDLOperasi lintas akun tertentu seperti MSCK REPAIR TABLE memerlukan izin Amazon S3. Misalnya, jika akun peminjam melakukan
MSCK REPAIR
operasi lintas akun terhadap tabel di akun pemilik yang memiliki datanya di bucket S3 akun pemilik, bucket tersebut harus memberikan izin untuk peran yang diambil oleh peminjam agar kueri berhasil.
Untuk informasi tentang pemberian izin bucket, lihat Bagaimana cara mengatur izin ACL bucket? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
(Opsional) Gunakan katalog secara dinamis
Dalam beberapa kasus, Anda mungkin ingin melakukan pengujian dengan cepat terhadap akun silang AWS Glue
katalog tanpa langkah prasyarat untuk mendaftarkannya. Anda dapat melakukan kueri lintas akun secara dinamis tanpa membuat objek DataCatalog
sumber daya jika izin yang diperlukan dan Amazon IAM S3 dikonfigurasi dengan benar seperti yang dijelaskan sebelumnya dalam dokumen ini.
Untuk secara eksplisit referensi katalog tanpa registrasi, gunakan sintaks dalam contoh berikut:
SELECT * FROM "glue:arn:aws:glue:us-east-1:999999999999:catalog".tpch1000.customer
Gunakan format "glue:
“, di <arn>
mana AWS Glue Data Catalog ARNyang ingin Anda gunakan. Dalam contoh, Athena menggunakan sintaks ini untuk secara dinamis menunjuk ke akun 999999999999 AWS Glue katalog data seolah-olah Anda telah secara terpisah membuat <arn>
DataCatalog
objek untuk itu.
Catatan untuk menggunakan katalog dinamis
Jika Anda menggunakan katalog dinamis, ingat poin-poin berikut.
-
Penggunaan katalog dinamis memerlukan IAM izin yang biasa Anda gunakan untuk operasi Katalog Data API Athena. Perbedaan utama adalah bahwa nama sumber daya Katalog Data mengikuti
glue:*
Konvensi penamaan. -
Katalog ARN harus milik Wilayah yang sama tempat kueri dijalankan.
-
Saat menggunakan katalog dinamis dalam DML kueri atau tampilan, kelilingi dengan tanda kutip ganda () yang diloloskan.
\"
Saat menggunakan katalog dinamis dalam DDL kueri, kelilingi dengan karakter backtick ()`
.
(Opsional) Gunakan API untuk mendaftarkan Katalog Data Athena milik akun pemilik
Alih-alih menggunakan konsol Athena seperti yang dijelaskan pada Langkah 2, dimungkinkan untuk menggunakan API operasi untuk mendaftarkan Katalog Data milik akun pemilik.
Pencipta DataCatalogsumber daya Athena harus memiliki izin yang diperlukan untuk menjalankan operasi Athena. CreateDataCatalogAPI Tergantung pada kebutuhan Anda, akses ke API operasi tambahan mungkin diperlukan. Untuk informasi selengkapnya, lihat Contoh kebijakan Katalog Data.
Badan CreateDataCatalog
permintaan berikut mendaftarkan AWS Glue katalog untuk akses lintas akun:
# Example CreateDataCatalog request to register a cross-account Glue catalog: { "Description": "Cross-account Glue catalog", "Name": "ownerCatalog", "Parameters": {"catalog-id" : "999999999999" # Owner's account ID }, "Type": "GLUE" }
Kode contoh berikut menggunakan klien Java untuk membuatDataCatalog
objek.
# Sample code to create the DataCatalog through Java client CreateDataCatalogRequest request = new CreateDataCatalogRequest() .withName("ownerCatalog") .withType(DataCatalogType.GLUE) .withParameters(ImmutableMap.of("catalog-id", "999999999999")); athenaClient.createDataCatalog(request);
Setelah langkah-langkah ini, peminjam harus melihat ownerCatalog
kapan memanggil ListDataCatalogsAPIoperasi.
Sumber daya tambahan
-
Konfigurasikan akses lintas akun ke berbagi AWS Glue Data Catalog menggunakan Amazon Athena di AWS Panduan Pola Panduan Preskriptif.
-
Permintaan lintas akun AWS Glue Data Catalog s menggunakan Amazon Athena
di AWS Blog Data Besar -
Memberikan akses lintas akun di AWS Glue Panduan Pengembang