Aktifkan kueri federasi lintas akun - Amazon Athena

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

Aktifkan kueri federasi lintas akun

Kueri gabungan memungkinkan Anda untuk menanyakan sumber data selain Amazon S3 menggunakan konektor sumber data yang digunakan. AWS Lambda Fitur kueri federasi lintas akun memungkinkan fungsi Lambda dan sumber data yang akan ditanyakan ditempatkan di akun yang berbeda.

Sebagai administrator data, Anda dapat mengaktifkan kueri gabungan lintas akun dengan membagikan konektor data Anda dengan akun analis data atau, sebagai analis data, dengan menggunakan Lambda bersama ARN dari administrator data untuk ditambahkan ke akun Anda. Ketika perubahan konfigurasi dibuat ke konektor di akun asal, konfigurasi yang diperbarui secara otomatis diterapkan ke instance bersama konektor di akun pengguna lain.

Pertimbangan dan batasan

  • Fitur kueri federasi lintas akun tersedia untuk konektor data metastore non-HIVE yang menggunakan sumber data berbasis Lambda.

  • Fitur ini tidak tersedia untuk tipe sumber AWS Glue Data Catalog data. Untuk informasi tentang akses lintas akun ke AWS Glue Data Catalog s, lihatKonfigurasikan akses lintas akun ke AWS Glue katalog data.

  • Jika respons dari fungsi Lambda konektor Anda melebihi batas ukuran respons Lambda sebesar 6MB, Athena secara otomatis mengenkripsi, mengelompokkan, dan menumpahkan respons ke bucket Amazon S3 yang Anda konfigurasikan. Entitas yang menjalankan kueri Athena harus memiliki akses ke lokasi tumpahan agar Athena dapat membaca data yang tumpah. Sebaiknya Anda menetapkan kebijakan siklus hidup Amazon S3 untuk menghapus objek dari lokasi tumpahan karena data tidak diperlukan setelah kueri selesai.

  • Menggunakan kueri federasi di seluruh tidak Wilayah AWS didukung.

Izin yang diperlukan

Untuk mengatur izin yang diperlukan, tindakan harus diambil di Akun A dan Akun B.

Tindakan untuk Akun A

Agar administrator data Akun A berbagi fungsi Lambda dengan analis data Akun B, Akun B memerlukan fungsi pemanggilan Lambda dan akses tumpahan bucket. Oleh karena itu, Akun A harus menambahkan kebijakan berbasis sumber daya ke fungsi Lambda dan akses utama ke bucket tumpahannya di Amazon S3.

  1. Kebijakan berikut memberikan izin fungsi pemanggilan Lambda ke Akun B pada fungsi Lambda di Akun A.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountInvocationStatement", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:account-A-id:function:lambda-function-name" } ] }
  2. Kebijakan berikut memungkinkan akses bucket tumpahan ke prinsipal di Akun B.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::spill-bucket", "arn:aws:s3:::spill-bucket/*" ] } ] }
  3. Jika fungsi Lambda mengenkripsi bucket tumpahan dengan AWS KMS kunci, bukan enkripsi default yang ditawarkan oleh federasiSDK, kebijakan AWS KMS kunci di Akun A harus memberikan akses ke pengguna di Akun B, seperti pada contoh berikut.

    { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::account-B-id:user/username"] }, "Action": [ "kms:Decrypt" ], "Resource": "*" // Resource policy that gets placed on the KMS key. }

Tindakan untuk Akun B

Agar Akun A dapat berbagi konektornya dengan Akun B, Akun B harus membuat peran AthenaCrossAccountCreate-account-A-id yang disebut Akun A mengasumsikan dengan memanggil AssumeRoleAPItindakan Layanan Token AWS Keamanan.

  1. Gunakan IAM konsol atau AWS CLI untuk membuat AthenaCrossAccountCreate-account-A-id peran sebagai peran kebijakan kepercayaan khusus. Kebijakan kepercayaan khusus mendelegasikan akses dan memungkinkan orang lain melakukan tindakan di AWS akun Anda. Untuk langkah-langkahnya, lihat Membuat peran menggunakan kebijakan kepercayaan khusus di Panduan IAM Pengguna.

    Hubungan kepercayaan harus memiliki objek utama di mana kuncinya AWS dan nilainya adalah Akun A, seperti pada contoh berikut. ARN

    ... "Principal": { "AWS": ["arn:aws:iam::account-A-id:user/username"] }, ...
  2. Juga di Akun B, buat kebijakan seperti berikut yang memungkinkan CreateDataCatalog tindakan.

    { "Effect": "Allow", "Action": "athena:CreateDataCatalog", "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*" }
  3. Tambahkan kebijakan yang memungkinkan CreateDataCatalog tindakan ke AthenaCrossAccountCreate-account-A-id peran yang Anda buat menggunakan Akun B.

Berbagi sumber data di Akun A dengan Akun B

Setelah izin diberlakukan, Anda dapat menggunakan halaman Sumber data di konsol Athena untuk berbagi konektor data di akun Anda (Akun A) dengan akun lain (Akun B). Akun A mempertahankan kontrol penuh dan kepemilikan konektor. Ketika Akun A membuat perubahan konfigurasi pada konektor, konfigurasi yang diperbarui berlaku untuk konektor bersama di Akun B.

Untuk berbagi sumber data Lambda di Akun A dengan Akun B
  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. Jika panel navigasi konsol tidak terlihat, pilih menu ekspansi di sebelah kiri.

    Pilih menu ekspansi.
  3. Pilih Sumber data.

  4. Pada halaman Sumber data, pilih tautan konektor yang ingin Anda bagikan.

  5. Pada halaman detail untuk sumber data Lambda, dari menu Tindakan di sudut kanan atas, pilih Bagikan.

  6. Di Share Lambda-name dengan akun lain? kotak dialog, masukkan informasi yang diperlukan.

    • Untuk nama sumber data, masukkan nama sumber data yang disalin seperti yang Anda inginkan muncul di akun lain.

    • Untuk ID Akun, masukkan ID akun yang ingin Anda bagikan sumber data Anda (dalam hal ini, Akun B).

  7. Pilih Bagikan. Konektor data bersama yang Anda tentukan dibuat di Akun B. perubahan konfigurasi ke konektor di Akun A berlaku untuk konektor di Akun B.

Menambahkan sumber data bersama dari Akun A ke Akun B

Sebagai analis data, Anda mungkin diberikan konektor untuk ditambahkan ke akun Anda dari administrator data. ARN Anda dapat menggunakan halaman Sumber data konsol Athena untuk menambahkan Lambda yang ARN disediakan oleh administrator ke akun Anda.

Untuk menambahkan Lambda ARN konektor data bersama ke akun Anda
  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. Jika panel navigasi tidak terlihat, pilih menu ekspansi di sebelah kiri.

  3. Pilih Sumber data.

  4. Pada halaman Sumber data, pilih Buat sumber data.

  5. Pada halaman Pilih sumber data, pilih Konektor kustom atau bersama.

  6. Pilih Berikutnya.

  7. Pada halaman Masukkan detail sumber data, di bagian Detail koneksi, untuk Pilih atau masukkan fungsi Lambda, masukkan ARN Lambda Akun A.

  8. Pilih Berikutnya.

  9. Pada halaman Tinjau dan buat, pilih Buat sumber data.

Pemecahan Masalah

Jika Anda menerima pesan kesalahan bahwa Akun A tidak memiliki izin untuk mengambil peran di Akun B, pastikan bahwa nama peran yang dibuat di Akun B dieja dengan benar dan memiliki kebijakan yang sesuai.