

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

# Mengelola izin pada kumpulan data yang menggunakan metastor eksternal
<a name="data-sharing-hms"></a>

Dengan federasi AWS Glue Data Catalog metadata (federasi Katalog Data), Anda dapat menghubungkan Katalog Data ke metastor eksternal yang menyimpan metadata untuk data Amazon S3 Anda, dan mengelola izin akses data dengan aman menggunakan. AWS Lake Formation Anda tidak perlu memigrasikan metadata dari metastore eksternal ke Katalog Data.

Katalog Data menyediakan repositori metadata terpusat yang membuat pengelolaan dan penemuan data di seluruh sistem yang berbeda menjadi lebih mudah. Saat organisasi mengelola data di Katalog Data, Anda dapat menggunakannya AWS Lake Formation untuk mengontrol akses ke kumpulan data di Amazon S3.

**catatan**  
Saat ini, kami hanya mendukung federasi metastore Apache Hive (versi 3 ke atas).

Untuk mengatur federasi Katalog Data, kami menyediakan aplikasi AWS Serverless Application Model (AWS SAM) yang disebut [GlueDataCatalogFederation- HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) di AWS Serverless Application Repository. 

Implementasi referensi disediakan GitHub sebagai proyek open source di [AWS Glue Data Catalog Federation - Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-federation).

 AWS SAM Aplikasi membuat dan menyebarkan sumber daya berikut yang diperlukan untuk menghubungkan Katalog Data ke metastore Hive:
+ ** AWS Lambda Fungsi — Menyelenggarakan** implementasi layanan federasi yang berkomunikasi antara Katalog Data dan metastore Hive. AWS Glue memanggil fungsi Lambda ini untuk mengambil objek metadata dari metastore Hive.
+ **Amazon API Gateway**— Titik akhir koneksi untuk metastore Hive Anda yang bertindak sebagai proxy untuk merutekan semua pemanggilan ke fungsi Lambda. 
+ **Peran IAM — Peran** dengan izin yang diperlukan untuk membuat koneksi antara Katalog Data dan metastore Hive.
+ **AWS Glue koneksi** — Amazon API Gateway Jenis AWS Glue koneksi yang menyimpan Amazon API Gateway titik akhir dan peran IAM untuk memanggilnya. 

Saat Anda melakukan kueri tabel, AWS Glue layanan membuat panggilan runtime ke metastore Hive dan mengambil metadata. Fungsi Lambda bertindak sebagai penerjemah antara metastore Hive dan Katalog Data. 

Setelah membuat koneksi, untuk menyinkronkan metadata di metastore Hive dengan Katalog Data, Anda perlu membuat database *federasi di Katalog Data menggunakan detail koneksi metastore Hive, dan memetakan database* ini ke database Hive. Database disebut sebagai database federasi ketika menunjuk ke entitas di luar Katalog Data.

Anda dapat menerapkan izin Lake Formation menggunakan kontrol akses berbasis tag dan metode sumber daya bernama pada database federasi, dan membagikannya di beberapa unit Akun AWS AWS Organizations, dan organisasi (). OUs Anda juga dapat berbagi database federasi secara langsung dengan kepala sekolah IAM dari akun lain.

 Anda dapat menentukan izin berbutir halus pada tingkat kolom, tingkat baris, dan tingkat sel menggunakan filter data Lake Formation pada tabel Hive eksternal. Anda dapat menggunakan Amazon Athena, Amazon Redshift, atau Amazon EMR untuk menanyakan tabel Hive eksternal yang dikelola Lake Formation.

Untuk informasi selengkapnya tentang berbagi data lintas akun dan pemfilteran data, lihat:
+ [Berbagi data lintas akun di Lake Formation](cross-account-permissions.md)
+ [Pemfilteran data dan keamanan tingkat sel di Lake Formation](data-filtering.md)

**Katalog Data metadata federasi langkah-langkah tingkat tinggi**

1. Anda membuat pengguna IAM dan peran yang memiliki izin yang sesuai untuk menyebarkan AWS SAM aplikasi dan membuat database federasi.

1. Anda mendaftarkan lokasi data Amazon S3 dengan Lake Formation dengan memilih `Enable Data Catalog federation` opsi untuk kumpulan data yang menggunakan metastore Hive eksternal. 

1. Anda mengonfigurasi pengaturan AWS SAM aplikasi (nama AWS Glue koneksi, URL ke metastore Hive, dan parameter fungsi Lambda) dan menyebarkan aplikasi. AWS SAM 

1.  AWS SAM Aplikasi ini menyebarkan sumber daya yang diperlukan untuk menghubungkan metastore Hive eksternal dengan Katalog Data. 

1. Untuk menerapkan izin Lake Formation pada database dan tabel Hive, Anda membuat database di Katalog Data menggunakan detail koneksi metastore Hive, dan memetakan database ini ke database Hive.

1. Berikan izin pada database federasi kepada kepala sekolah di akun Anda atau di akun lain. 

**catatan**  
Anda dapat menghubungkan Katalog Data ke mestastore Hive eksternal, membuat database federasi, dan menjalankan kueri dan skrip ETL pada database dan tabel Hive tanpa menerapkan izin Lake Formation. Untuk data sumber di Amazon S3 yang tidak terdaftar di Lake Formation, akses ditentukan oleh kebijakan izin IAM untuk Amazon S3 dan tindakan. AWS Glue 

Untuk batasan, lihat [Metadata sarang menyimpan pertimbangan dan batasan berbagi data](notes-hms.md).

**Topics**
+ [Alur kerja](#hms-workflow)
+ [Prasyarat untuk menghubungkan Katalog Data ke metastore Hive](hms-prerequisites.md)
+ [Menghubungkan Katalog Data ke metastore Hive eksternal](hms-setup.md)
+ [Sumber daya tambahan](additional-resources-hms.md)

## Alur kerja
<a name="hms-workflow"></a>

Diagram berikut menunjukkan alur kerja untuk menghubungkan AWS Glue Data Catalog ke metastore Hive eksternal.

![\[Workflow diagram showing Hive metastore connection to AWS Glue Data Catalog with numbered steps.\]](http://docs.aws.amazon.com/id_id/lake-formation/latest/dg/images/hms-workflow.png)


1. Seorang kepala sekolah mengirimkan kueri menggunakan layanan terintegrasi seperti Athena atau Redshift Spectrum.

1. Layanan terintegrasi membuat panggilan ke Katalog Data untuk metadata, yang pada gilirannya memanggil titik akhir metastore Hive yang tersedia di belakang Amazon API Gateway, dan menerima respons terhadap permintaan metadata.

1. Layanan terintegrasi mengirimkan permintaan ke Lake Formation untuk memverifikasi informasi tabel dan kredensi untuk mengakses tabel.

1.  Lake Formation mengotorisasi permintaan dan menjual kredensil sementara ke aplikasi terintegrasi, yang memungkinkan akses data. 

1. Menggunakan kredensi sementara yang diterima dari Lake Formation, layanan terintegrasi membaca data dari Amazon S3, dan membagikan hasilnya kepada kepala sekolah.

# Prasyarat untuk menghubungkan Katalog Data ke metastore Hive
<a name="hms-prerequisites"></a>

Untuk menghubungkan AWS Glue Data Catalog ke metastore Apache Hive eksternal dan mengatur izin akses data, Anda harus melengkapi persyaratan berikut:
**catatan**  
Kami menyarankan agar administrator Lake Formation menyebarkan AWS SAM aplikasi, dan hanya pengguna istimewa yang menggunakan koneksi metastore Hive untuk membuat database federasi yang sesuai.

1. 

**Buat IAM role.**

**Untuk menyebarkan aplikasi AWS SAM**
   + Buat peran yang memiliki izin yang diperlukan untuk menyebarkan sumber daya (fungsi Lambda, peran IAM Amazon API Gateway, dan AWS Glue koneksi) yang diperlukan untuk membuat koneksi ke metastore Hive.

**Untuk membuat database federasi**

   Izin berikut diperlukan pada sumber daya:
   + `glue:CreateDatabase on resource arn:aws:glue:region:account-id:database/gluedatabasename`
   + `glue:PassConnection on resource arn:aws:glue:region:account-id:connection/hms_connection`

1. 

**Daftarkan lokasi Amazon S3 dengan Lake Formation.**

   Untuk menggunakan Lake Formation untuk mengelola dan mengamankan data di danau data Anda, Anda harus mendaftarkan lokasi Amazon S3 yang memiliki data untuk tabel di metastore Hive dengan Lake Formation. Dengan demikian, Lake Formation dapat menjual kredensil ke layanan AWS analitis seperti Athena, Redshift Spectrum, dan Amazon EMR.

   Untuk informasi selengkapnya tentang mendaftarkan lokasi Amazon S3, lihat. [Menambahkan lokasi Amazon S3 ke danau data Anda](register-data-lake.md)

   Saat Anda mendaftarkan lokasi Amazon S3, pilih kotak centang **Aktifkan Federasi Katalog Data** untuk mengizinkan Lake Formation mengambil peran untuk mengakses tabel dalam database federasi.  
![\[Register location form for AWS Lake Formation with Amazon S3 path and IAM role options.\]](http://docs.aws.amazon.com/id_id/lake-formation/latest/dg/images/hms-register-s3.png)

   Untuk informasi lebih lanjut tentang mendaftarkan lokasi data dengan Lake Formation, lihat[Konfigurasikan lokasi Amazon S3 untuk data lake Anda](initial-lf-config.md#register-s3-location).

1. 

**Gunakan versi EMR Amazon yang benar.**

   Untuk menggunakan Amazon EMR dengan database metastore Hive federasi, Anda harus memiliki Hive versi 3.x atau lebih tinggi dan Amazon EMR versi 6.x atau lebih tinggi.

# Menghubungkan Katalog Data ke metastore Hive eksternal
<a name="hms-setup"></a>

[Untuk menghubungkan AWS Glue Data Catalog ke metastore Hive, Anda perlu menerapkan aplikasi yang AWS SAM disebut -. GlueDataCatalogFederation HiveMetastore](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) Ini menciptakan sumber daya yang diperlukan untuk menghubungkan metastore Hive eksternal dengan Katalog Data. Anda dapat mengakses AWS SAM aplikasi di AWS Serverless Application Repository.

 AWS SAM Aplikasi membuat koneksi untuk metastore Hive di belakang Amazon API Gateway menggunakan fungsi Lambda. AWS SAM Aplikasi ini menggunakan pengenal sumber daya seragam (URI) sebagai masukan dari pengguna dan menghubungkan metastore Hive eksternal ke Katalog Data. Saat pengguna menjalankan kueri pada tabel Hive, Katalog Data memanggil titik akhir API Gateway. Titik akhir memanggil fungsi Lambda untuk mengambil metadata tabel Hive.

**Untuk menghubungkan Katalog Data ke metastore Hive dan mengatur izin**

1. 

**Menyebarkan AWS SAM aplikasi.**

   1. Masuk ke Konsol Manajemen AWS dan buka AWS Serverless Application Repository.

   1. Di panel navigasi, pilih**Aplikasi yang tersedia**.

   1. Pilih **aplikasi Publik**.

   1. Pilih opsi**Menampilkan aplikasi yang membuat IAM role khusus atau kebijakan sumber daya**. 

   1. Di kotak pencarian, masukkan nama **GlueDataCatalogFederation- HiveMetastore**. 

   1. Pilih **GlueDataCatalogFederation- HiveMetastore** aplikasi.

   1. Di bawah **Pengaturan Aplikasi**, masukkan pengaturan minimum yang diperlukan berikut untuk fungsi Lambda Anda:
      + **Nama aplikasi** - Nama untuk AWS SAM aplikasi Anda.
      + **GlueConnectionName**- Nama untuk koneksi.
      + **HiveMetastoreURIs**- URI host metastore Hive Anda.
      + **LambdaMemory**- Jumlah memori Lambda dalam MB dari 128-10240. Defaultnya adalah 1.024.
      + **LambdaTimeout**- Runtime pemanggilan Lambda maksimum dalam hitungan detik. Bawaannya adalah 30.
      + **VPCSecurityGroupIds**dan **VPCSubnetIds** - Informasi untuk VPC tempat metastore Hive ada.

   1. Pilih **Saya mengakui bahwa aplikasi ini membuat peran IAM khusus dan kebijakan sumber daya**. Untuk informasi selengkapnya, pilih tautan **Info**.

   1. Di kanan bawah bagian **Pengaturan aplikasi**, pilih **Deploy**. Saat penerapan selesai, fungsi Lambda muncul di bagian Sumber Daya **di konsol** Lambda.

    Aplikasi ini digunakan untuk Lambda. Namanya dilengkapi dengan **serverlessrepo-** untuk menunjukkan bahwa aplikasi tersebut digunakan dari file. AWS Serverless Application Repository Memilih aplikasi akan membawa Anda ke halaman **Sumber** Daya tempat masing-masing sumber daya aplikasi yang digunakan terdaftar. Sumber daya termasuk fungsi Lambda yang memungkinkan komunikasi antara Katalog Data dan metastore Hive, AWS Glue koneksi, dan sumber daya lain yang diperlukan untuk federasi database. 

1. 

**Buat database federasi di Katalog Data.**

   Setelah membuat koneksi ke metastore Hive, Anda dapat membuat database federasi di Katalog Data yang mengarah ke database metastore Hive eksternal. Anda perlu membuat database yang sesuai di Katalog Data untuk setiap database metastore Hive yang Anda sambungkan ke Katalog Data. 

------
#### [ Lake Formation console ]

   1. Pada halaman **Berbagi data**, pilih tab **Basis data bersama**, lalu pilih **Buat database**.

   1. Untuk **nama Koneksi**, pilih nama koneksi metastore Hive Anda dari menu tarik-turun.

   1. Masukkan nama database unik dan pengidentifikasi sumber federasi untuk database. Ini adalah nama yang Anda gunakan dalam pernyataan SQL Anda ketika Anda menanyakan tabel. Nama dapat terdiri dari maksimum 255 karakter dan harus unik dalam akun Anda. 

   1. Pilih **Buat basis data**.

------
#### [ AWS CLI ]

   ```
   aws glue create-database \
   '{
    "CatalogId": "<111122223333>",
     "database-input": {
       "Name":"<fed_glue_db>",
       "FederatedDatabase":{
           "Identifier":"<hive_db_on_emr>",
           "ConnectionName":"<hms_connection>"
        }
      }
    }'
   ```

------

1. 

**Lihat tabel dalam database federasi.**

   Setelah membuat database federasi, Anda dapat melihat daftar tabel di metastore Hive Anda menggunakan konsol Lake Formation atau. AWS CLI

------
#### [ Lake Formation console ]

   1. Pilih nama database dari tab **Shared database**.

   1. Pada halaman **Database**, pilih **Lihat tabel**.

------
#### [ AWS CLI ]

   Contoh berikut menunjukkan bagaimana untuk mengambil definisi koneksi, nama database, dan beberapa atau semua tabel dalam database. Ganti ID Katalog Data dengan Akun AWS ID valid yang Anda gunakan untuk membuat database. Ganti `hms_connection` dengan nama koneksi.

   ```
   aws glue get-connection \
   --name <hms_connection>  \       
   --catalog-id 111122223333
   ```

   ```
   aws glue get-database \
   --name <fed_glu_db> \             
   --catalog-id 111122223333
   ```

   ```
   aws glue get-tables \
   --database-name <fed_glue_db> \
   --catalog-id 111122223333
   ```

   ```
   aws glue get-table \
   --database-name <fed_glue_db> \
   --name <hive_table_name> \
   --catalog-id 111122223333
   ```

------

1. 

**Berikan izin.**

    Setelah membuat database, Anda dapat memberikan izin kepada pengguna dan peran IAM lainnya di akun Anda atau ke eksternal Akun AWS dan organisasi. Anda tidak akan dapat memberikan izin menulis data (menyisipkan, menghapus) dan izin metadata (mengubah, menjatuhkan, membuat) pada database federasi. Untuk informasi selengkapnya tentang pemberian izin, lihat. [Mengelola izin Lake Formation](managing-permissions.md) 

1. 

**Kueri database federasi.**

   Setelah Anda memberikan izin, pengguna dapat masuk dan mulai menanyakan database federasi menggunakan Athena dan Amazon Redshift. Pengguna sekarang dapat menggunakan nama database lokal untuk referensi database Hive dalam query SQL.

   **Contoh sintaks Amazon Athena kueri**

   Ganti `fed_glue_db` dengan nama database lokal yang Anda buat sebelumnya.

    `Select * from fed_glue_db.customers limit 10;`

# Sumber daya tambahan
<a name="additional-resources-hms"></a>

Posting blog berikut berisi instruksi terperinci untuk mengatur izin Lake Formation pada database dan tabel metastore Hive, dan menanyakannya menggunakan Athena. Kami juga mengilustrasikan kasus penggunaan berbagi lintas akun, di mana kepala Lake Formation di akun produsen A berbagi database dan tabel Hive federasi menggunakan LF-tag ke akun konsumen B. 
+ [Kueri metastore Apache Hive Anda dengan izin AWS Lake Formation](https://aws.amazon.com/blogs/big-data/query-your-apache-hive-metastore-with-aws-lake-formation-permissions/)