

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

# Keamanan Amazon Athena
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menggambarkan hal ini sebagai keamanan *dari* cloud dan keamanan *di* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang berjalan Layanan AWS di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Efektivitas keamanan kami diuji dan diverifikasi secara rutin oleh auditor pihak ketiga sebagai bagian dari [program kepatuhan AWS](https://aws.amazon.com/compliance/programs/). Untuk mempelajari tentang program kepatuhan yang berlaku untuk Athena, lihat [AWS layanan dalam cakupan berdasarkan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/).
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh Layanan AWS yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, termasuk sensitivitas data, persyaratan perusahaan, serta hukum dan peraturan yang berlaku. 

Dokumentasi ini akan membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan Amazon Athena. Topik berikut menunjukkan kepada Anda cara mengonfigurasi Athena untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga akan belajar cara menggunakan Layanan AWS yang lain yang dapat membantu Anda memantau dan mengamankan sumber daya Athena Anda.

**Topics**
+ [Perlindungan data di Athena](security-data-protection.md)
+ [Manajemen identitas dan akses di Athena](security-iam-athena.md)
+ [Log dan pantau Athena](security-logging-monitoring.md)
+ [Validasi kepatuhan untuk](security-compliance-validation.md)
+ [Ketahanan di Athena](security-resilience.md)
+ [Keamanan infrastruktur di Athena](security-infrastructure.md)
+ [Analisis konfigurasi dan kerentanan di Athena](security-vulnerability-management.md)
+ [Gunakan Athena untuk menanyakan data yang terdaftar dengan AWS Lake Formation](security-athena-lake-formation.md)

# Perlindungan data di Athena
<a name="security-data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensil dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

Sebagai langkah keamanan tambahan, Anda dapat menggunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia)global untuk membatasi permintaan hanya yang dibuat dari Athena. Untuk informasi selengkapnya, lihat [Gunakan tombol CalledVia konteks untuk Athena](security-iam-athena-calledvia.md).

## Lindungi berbagai jenis data
<a name="security-data-protection-types-of-data"></a>

Beberapa jenis data yang terlibat saat Anda menggunakan Athena untuk membuat basis data dan tabel. Tipe data ini mencakup data sumber yang disimpan di Amazon S3, metadata untuk database, dan tabel yang Anda buat saat menjalankan kueri atau AWS Glue Crawler untuk menemukan data, data hasil kueri, dan riwayat kueri. Bagian ini membahas setiap jenis data dan memberikan panduan tentang melindunginya.
+ **Sumber data** — Anda menyimpan data untuk database dan tabel di Amazon S3, dan Athena tidak memodifikasinya. Untuk informasi selengkapnya, lihat [Perlindungan data di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DataDurability.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. Anda mengontrol akses ke sumber data Anda dan dapat mengenkripsi di Amazon S3. Anda dapat menggunakan Athena untuk[membuat tabel berdasarkan set data terenkripsi di Amazon S3](creating-tables-based-on-encrypted-datasets-in-s3.md).
+ **Database dan metadata tabel (skema) —** Athena menggunakan schema-on-read teknologi, yang berarti bahwa definisi tabel Anda diterapkan ke data Anda di Amazon S3 saat Athena menjalankan kueri. Skema apa pun yang Anda tentukan akan disimpan secara otomatis kecuali Anda menghapusnya secara eksplisit. Di Athena, Anda dapat memodifikasi metadata Katalog Data menggunakan pernyataan DDL. Anda juga dapat menghapus definisi tabel dan skema tanpa mempengaruhi data yang mendasari disimpan di Amazon S3. Metadata untuk basis data dan tabel yang Anda gunakan di Athena disimpan dalam AWS Glue Data Catalog.

  Anda dapat [menentukan kebijakan akses berbutir halus ke database dan tabel](fine-grained-access-to-glue-resources.md) yang terdaftar di AWS Glue Data Catalog using AWS Identity and Access Management (IAM). Anda juga dapat[mengenkripsi metadata di AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html). Jika Anda mengenkripsi metadata, gunakan[izin untuk metadata terenkripsi](encryption.md#glue-encryption)Untuk akses.
+ **Hasil kueri dan riwayat kueri, termasuk kueri tersimpan**— Hasil kueri disimpan di lokasi di Amazon S3 yang dapat Anda pilih untuk menentukan secara global, atau untuk setiap grup kerja. Jika tidak ditentukan, Athena menggunakan lokasi default dalam setiap kasus. Anda mengontrol akses ke bucket Amazon S3 tempat Anda menyimpan hasil kueri dan kueri disimpan. Selain itu, Anda dapat memilih untuk mengenkripsi hasil kueri yang Anda simpan di Amazon S3. Pengguna Anda harus memiliki izin yang sesuai untuk mengakses lokasi Amazon S3 dan mendekripsi file. Untuk informasi lebih lanjut, lihat [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md) di dokumen ini. 

  Athena mengekalkan riwayat pertanyaan selama 45 hari. Anda dapat [melihat riwayat kueri](queries-viewing-history.md) menggunakan Athena APIs, di konsol, dan dengan. AWS CLI Untuk menyimpan pertanyaan selama lebih dari 45 hari, menyimpannya. Untuk melindungi akses ke kueri yang disimpan,[Gunakan grup kerja](workgroups-manage-queries-control-costs.md)di Athena, membatasi akses ke kueri yang disimpan hanya untuk pengguna yang berwenang untuk melihatnya.

**Topics**
+ [Lindungi berbagai jenis data](#security-data-protection-types-of-data)
+ [Enkripsi saat diam](encryption.md)
+ [Enkripsi saat bergerak](encryption-in-transit.md)
+ [Manajemen kunci](key-management.md)
+ [Privasi lalu lintas antarjaringan](internetwork-traffic-privacy.md)

# Enkripsi saat diam
<a name="encryption"></a>

Anda dapat menjalankan kueri di Amazon Athena pada data terenkripsi di Amazon S3 di Wilayah yang sama dan di sejumlah Wilayah. Anda juga dapat mengenkripsi hasil kueri di Amazon S3 dan data di Katalog Data AWS Glue .

Anda dapat mengenkripsi aset berikut di Athena:
+ Hasil dari semua kueri di Amazon S3, yang Athena toko di lokasi yang dikenal sebagai Amazon S3 hasil lokasi. Anda dapat mengenkripsi hasil kueri disimpan di Amazon S3 apakah set data yang mendasari dienkripsi di Amazon S3 atau tidak. Untuk informasi, lihat [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md).
+ Data dalam Katalog AWS Glue Data. Untuk informasi, lihat [Izin untuk metadata terenkripsi dalam Katalog Data AWS Glue](#glue-encryption).

**catatan**  
Saat Anda menggunakan Athena untuk membaca tabel terenkripsi, Athena menggunakan opsi enkripsi yang ditentukan untuk data tabel, bukan opsi enkripsi untuk hasil kueri. Jika metode atau kunci enkripsi terpisah dikonfigurasi untuk hasil kueri dan data tabel, Athena membaca data tabel tanpa menggunakan opsi enkripsi dan kunci yang digunakan untuk mengenkripsi atau mendekripsi hasil kueri.  
Namun, jika Anda menggunakan Athena untuk menyisipkan data ke dalam tabel yang memiliki data terenkripsi, Athena menggunakan konfigurasi enkripsi yang ditentukan untuk hasil kueri untuk mengenkripsi data yang dimasukkan. Misalnya, jika Anda menentukan `CSE_KMS` enkripsi untuk hasil kueri, Athena menggunakan ID AWS KMS kunci yang sama dengan yang Anda gunakan untuk enkripsi hasil kueri untuk mengenkripsi data tabel yang disisipkan. `CSE_KMS`

**Topics**
+ [Opsi enkripsi Amazon S3 yang didukung](#encryption-options-S3-and-Athena)
+ [Izin untuk data terenkripsi di Amazon S3](#permissions-for-encrypting-and-decrypting-data)
+ [Izin untuk metadata terenkripsi dalam Katalog Data AWS Glue](#glue-encryption)
+ [Migrasi dari CSE-KMS ke SSE-KMS](migrating-csekms-ssekms.md)
+ [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md)
+ [Buat tabel berdasarkan kumpulan data terenkripsi di Amazon S3](creating-tables-based-on-encrypted-datasets-in-s3.md)

## Opsi enkripsi Amazon S3 yang didukung
<a name="encryption-options-S3-and-Athena"></a>

Athena mendukung opsi enkripsi berikut untuk set data dan hasil kueri di Amazon S3.


| Jenis enkripsi | Deskripsi | Dukungan Lintas Wilayah | 
| --- | --- | --- | 
| [SSE-S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) | Enkripsi sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3). | Ya | 
| [SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) (Direkomendasikan) | Enkripsi sisi server (SSE) dengan kunci yang AWS Key Management Service dikelola pelanggan.  | Ya | 
| [CSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) |  Enkripsi sisi klien (CSE) dengan kunci yang dikelola AWS KMS pelanggan. Di Athena, opsi ini mengharuskan Anda menggunakan `CREATE TABLE` pernyataan dengan `TBLPROPERTIES` klausa yang menentukan `'has_encrypted_data'='true'` atau dengan. `'encryption_option'='CSE_KMS'` `'kms_key'='kms_key_arn'` Untuk informasi selengkapnya, lihat [Buat tabel berdasarkan kumpulan data terenkripsi di Amazon S3](creating-tables-based-on-encrypted-datasets-in-s3.md).  | Tidak | 

*Untuk informasi selengkapnya tentang AWS KMS enkripsi dengan Amazon S3, lihat [Apa itu AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) dan Bagaimana Amazon Simple Storage Service ([Amazon S3) menggunakan Simple Storage Service (Amazon S3) AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-s3.html) dalam Panduan Pengembang.AWS Key Management Service * *Untuk informasi selengkapnya tentang penggunaan SSE-KMS atau CSE-KMS dengan Athena, lihat [Peluncuran: Amazon Athena menambahkan dukungan](https://aws.amazon.com/blogs/aws/launch-amazon-athena-adds-support-for-querying-encrypted-data/) untuk kueri data terenkripsi dari Big Data Blog.AWS *

### Rekomendasi enkripsi
<a name="encryption-recommendation"></a>

Saat Anda mengenkripsi dan mendekripsi data tabel dan hasil kueri dengan kunci KMS yang dikelola pelanggan, kami sarankan Anda menggunakan enkripsi SSE-KMS melalui metode enkripsi SSE-S3 atau CSE-KMS. SSE-KMS menyediakan keseimbangan kontrol, kesederhanaan, dan kinerja yang menjadikannya metode yang direkomendasikan ketika Anda menggunakan kunci KMS terkelola untuk enkripsi data.

**Manfaat SSE-KMS dibandingkan SSE-S3**
+ SSE-KMS memungkinkan Anda untuk menentukan dan mengelola kunci Anda sendiri, memberikan kontrol yang lebih besar. Anda dapat menentukan kebijakan utama, mengawasi siklus hidup utama, dan memantau penggunaan kunci.

**Manfaat SSE-KMS dibandingkan CSE-KMS**
+ SSE-KMS menghilangkan kebutuhan infrastruktur tambahan untuk mengenkripsi dan mendekripsi data, tidak seperti CSE-KMS yang membutuhkan pemeliharaan berkelanjutan dari klien enkripsi S3.
+ CSE-KMS mungkin menghadapi masalah kompatibilitas antara klien enkripsi S3 yang lebih baru dan yang lebih lama karena algoritma enkripsi yang berkembang, masalah yang dihindari SSE-KMS.
+ SSE-KMS membuat lebih sedikit panggilan API ke layanan KMS untuk pengambilan kunci selama proses enkripsi dan dekripsi, menghasilkan kinerja yang lebih baik dibandingkan dengan CSE-KMS.

### Opsi yang tidak didukung
<a name="encryption-unsupported-options"></a>

Opsi enkripsi berikut tidak didukung:
+ Kunci yang disediakan pelanggan (SSE-C)
+ Enkripsi sisi klien menggunakan kunci terkelola sisi klien.
+ Kunci asimetris.

Untuk membandingkan opsi enkripsi Amazon S3, lihat [Melindungi data menggunakan enkripsi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

### Alat untuk enkripsi sisi klien
<a name="encryption-client-side-tools"></a>

 Untuk enkripsi sisi klien, perhatikan bahwa dua alat yang tersedia: 
+ [Klien enkripsi Amazon S3](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3EncryptionClient.html) — Ini mengenkripsi data hanya untuk Amazon S3 dan didukung oleh Athena.
+ [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html)SDK dapat digunakan untuk mengenkripsi data di mana saja AWS tetapi tidak secara langsung didukung oleh Athena.

Alat-alat ini tidak kompatibel, dan data yang dienkripsi menggunakan satu alat tidak dapat didekripsi oleh yang lain. Athena hanya mendukung Amazon S3 Encryption Client secara langsung. Jika Anda menggunakan SDK untuk mengenkripsi data Anda, Anda dapat menjalankan kueri dari Athena, tetapi data tersebut dikembalikan sebagai teks terenkripsi. 

Jika Anda ingin menggunakan Athena untuk mengkueri data yang telah dienkripsi dengan AWS Enkripsi SDK, Anda harus mengunduh dan mendekripsi data Anda, dan kemudian mengenkripsi lagi menggunakan Amazon S3 Encryption Client.

## Izin untuk data terenkripsi di Amazon S3
<a name="permissions-for-encrypting-and-decrypting-data"></a>

Bergantung pada jenis enkripsi yang Anda gunakan di Amazon S3, Anda mungkin perlu menambahkan izin, juga dikenal sebagai tindakan “Izinkan”, ke kebijakan yang digunakan di Athena:
+ **SSE-S3**— Jika Anda menggunakan SSE-S3 untuk enkripsi, pengguna Athena tidak memerlukan izin tambahan dalam kebijakan mereka. Ini cukup untuk memiliki izin Amazon S3 yang sesuai untuk lokasi Amazon S3 yang sesuai dan untuk tindakan Athena. Untuk informasi selengkapnya tentang kebijakan yang mengizinkan izin Athena dan Amazon S3 yang sesuai, lihat dan. [AWS kebijakan terkelola untuk Amazon Athena](security-iam-awsmanpol.md) [Kontrol akses ke Amazon S3 dari Athena](s3-permissions.md)
+ **AWS KMS**— Jika Anda menggunakan AWS KMS untuk enkripsi, pengguna Athena harus diizinkan untuk melakukan AWS KMS tindakan tertentu selain izin Athena dan Amazon S3. Anda mengizinkan tindakan ini dengan mengedit kebijakan kunci untuk kunci terkelola pelanggan yang digunakan untuk mengenkripsi data di Amazon S3. Untuk menambahkan pengguna kunci ke kebijakan AWS KMS kunci yang sesuai, Anda dapat menggunakan AWS KMS konsol di [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms). Untuk informasi tentang cara menambahkan pengguna ke kebijakan AWS KMS utama, lihat [Mengizinkan pengguna kunci menggunakan kunci yang dikelola pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users) di *Panduan AWS Key Management Service Pengembang*.
**catatan**  
Advanced key policy administrator dapat menyesuaikan kebijakan kunci. `kms:Decrypt` adalah tindakan minimum yang diizinkan bagi pengguna Athena untuk bekerja dengan set data terenkripsi. Untuk bekerja dengan hasil kueri terenkripsi, tindakan minimum yang diizinkan `kms:GenerateDataKey` dan `kms:Decrypt`.

  Saat menggunakan Athena untuk menanyakan kumpulan data di Amazon S3 dengan sejumlah besar objek yang dienkripsi, mungkin menghambat hasil kueri. AWS KMS AWS KMS Ini lebih mungkin terjadi jika ada sejumlah besar objek kecil. Athena mendukung permintaan coba lagi, tetapi kesalahan throttling mungkin masih terjadi. Jika Anda bekerja dengan sejumlah besar objek terenkripsi dan mengalami masalah ini, salah satu opsi adalah mengaktifkan kunci bucket Amazon S3 untuk mengurangi jumlah panggilan ke KMS. Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan kunci Bucket Amazon S3 di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) Penyimpanan *Sederhana Amazon*. Pilihan lain adalah meningkatkan kuota layanan Anda untuk AWS KMS. Untuk informasi selengkapnya, lihat [kuota Lambda](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) in the *Panduan Developer AWS Key Management Service *.

Untuk informasi pemecahan masalah tentang izin saat menggunakan Amazon S3 dengan Athena, lihat[Izin](troubleshooting-athena.md#troubleshooting-athena-permissions)Bagian dari[Memecahkan masalah di Athena](troubleshooting-athena.md)topik.

## Izin untuk metadata terenkripsi dalam Katalog Data AWS Glue
<a name="glue-encryption"></a>

Jika Anda [mengenkripsi metadata di AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html), Anda harus menambahkan, `"kms:GenerateDataKey"``"kms:Decrypt"`, dan `"kms:Encrypt"` tindakan ke kebijakan yang Anda gunakan untuk mengakses Athena. Untuk informasi, lihat [Konfigurasikan akses dari Athena ke metadata terenkripsi di AWS Glue Data Catalog](access-encrypted-data-glue-data-catalog.md).

# Migrasi dari CSE-KMS ke SSE-KMS
<a name="migrating-csekms-ssekms"></a>

Anda dapat menentukan enkripsi CSE-KMS dengan dua cara — selama konfigurasi enkripsi hasil kueri kelompok kerja dan dalam pengaturan sisi klien. Untuk informasi selengkapnya, lihat [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md). Selama proses migrasi, penting untuk mengaudit alur kerja yang ada yang membaca dan menulis data CSE-KMS, mengidentifikasi kelompok kerja tempat CSE-KMS dikonfigurasi, dan menemukan instance di mana CSE-KMS diatur melalui parameter sisi klien.

## Perbarui pengaturan enkripsi hasil kueri kelompok kerja
<a name="migrating-updating-workgroup-query-results-encryption"></a>

------
#### [ Console ]

**Untuk memperbarui pengaturan enkripsi di konsol Athena**

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. **Di panel navigasi konsol Athena, pilih Workgroups.**

1. Pada halaman **Workgroups**, pilih tombol untuk workgroup yang ingin Anda edit. 

1. Pilih **Tindakan**, **Edit**.

1. Buka **konfigurasi hasil Kueri** dan pilih **Enkripsi hasil kueri**.

1. Untuk bagian **jenis Enkripsi**, pilih opsi enkripsi **SSE\$1KMS**.

1. Masukkan kunci KMS Anda di bawah **Pilih tombol AWS KMS yang berbeda (lanjutan)**.

1. Pilih **Simpan perubahan**. Workgroup yang diperbarui muncul dalam daftar di halaman **Workgroups**.

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

Jalankan perintah berikut untuk memperbarui konfigurasi enkripsi hasil kueri Anda ke SSE-KMS di workgroup Anda.

```
aws athena update-work-group \
    --work-group "my-workgroup" \
    --configuration-updates '{
        "ResultConfigurationUpdates": {
            "EncryptionConfiguration": {
                "EncryptionOption": "SSE_KMS",
                "KmsKey": "<my-kms-key>"
            }
        }
    }'
```

------

## Perbarui setelan enkripsi hasil kueri sisi klien
<a name="migrating-updating-clientside-query-results-encryption"></a>

------
#### [ Console ]

Untuk memperbarui setelan sisi klien untuk enkripsi hasil kueri dari CSE-KMS ke SSE-KMS, lihat. [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md)

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

Anda hanya dapat menentukan konfigurasi enkripsi hasil kueri dalam pengaturan sisi klien dengan perintah. `start-query-execution` Jika Anda menjalankan perintah CLI ini dan mengganti konfigurasi enkripsi hasil kueri yang Anda tentukan dalam grup kerja Anda dengan CSE-KMS, ubah perintah untuk mengenkripsi hasil kueri menggunakan sebagai berikut. `SSE_KMS`

```
aws athena start-query-execution \
    --query-string "SELECT * FROM <my-table>;" \
    --query-execution-context "Database=<my-database>,Catalog=<my-catalog>" \
    --result-configuration '{
        "EncryptionConfiguration": {
            "EncryptionOption": "SSE_KMS",
            "KmsKey": "<my-kms-key>"
        }
    }' \
    --work-group "<my-workgroup>"
```

------

**catatan**  
Setelah Anda memperbarui pengaturan workgroup atau sisi klien, data baru apa pun yang Anda masukkan dengan kueri tulis menggunakan enkripsi SSE-KMS, bukan CSE-KMS. Ini karena konfigurasi enkripsi hasil kueri juga berlaku untuk data tabel yang baru dimasukkan. Hasil kueri Athena, metadata, dan file manifes juga dienkripsi dengan SSE-KMS.
Athena masih dapat membaca tabel dengan properti `has_encrypted_data` tabel bahkan ketika ada campuran objek CSE-KMS terenkripsi dan SSE-S3/SSE-KMS.

# Ubah data tabel CSE-KMS ke SSE-KMS
<a name="convert-csekms-table-ssekms"></a>

Jika alur kerja Anda saat ini menggunakan CSE-KMS untuk enkripsi data tabel, transisi ke SSE-KMS dengan langkah-langkah berikut.

## Prasyarat
<a name="convert-csekms-table-ssekms-preq"></a>

Jika Anda masih menulis data menggunakan grup kerja CSE-KMS atau pengaturan sisi klien, ikuti langkah-langkah untuk memperbaruinya ke SSE-KMS. [Migrasi dari CSE-KMS ke SSE-KMS](migrating-csekms-ssekms.md) Ini mencegah data terenkripsi CSE-KMS baru ditambahkan selama proses migrasi dari alur kerja lain yang mungkin menulis ke tabel.

## Migrasi data
<a name="convert-csekms-table-ssekms-migrat"></a>

1. Periksa apakah tabel memiliki `has_encrypted_data` properti yang disetel ke`true`. Properti ini menentukan bahwa tabel mungkin berisi data terenkripsi CSE-KMS. Namun, penting untuk dicatat bahwa properti ini dapat hadir bahkan pada tabel tanpa data terenkripsi CSE-KMS yang sebenarnya.

------
#### [ Console ]

   1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

   1. Pilih **Luncurkan editor kueri**.

   1. Di sisi kiri editor, di bawah **Database**, pilih database yang ingin Anda kueri.

   1. Di editor Query, jalankan query berikut untuk melihat nilai yang disetel ke `has_encrypted_data table` properti.

      ```
      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
      ```

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

   Mulai Athena query yang menunjukkan nilai `has_encrypted_data` properti pada tabel seperti yang ditunjukkan pada contoh berikut.

   ```
   aws athena start-query-execution \
       --query-string "SHOW TBLPROPERTIES <table-name>('has_encrypted_data');" \
       --work-group "<my-workgroup>"
   ```

   Ambil hasil query untuk memeriksa nilai properti `has_encrypted_data` tabel untuk tabel seperti yang ditunjukkan pada contoh berikut.

   ```
   aws athena get-query-results --query-execution-id <query-execution-id-from-previous-step>
   ```

------

1. Untuk setiap objek terenkripsi CSE-KMS dalam tabel.

   1. Unduh objek dari S3 menggunakan klien enkripsi S3 dan dekripsi. Berikut adalah contoh dengan AWS Java SDK V2.

      **Impor**

      ```
      import software.amazon.awssdk.core.ResponseInputStream;
      import software.amazon.awssdk.services.s3.model.GetObjectRequest;
      import software.amazon.awssdk.services.s3.model.GetObjectResponse;
      import software.amazon.encryption.s3.S3EncryptionClient;
      import software.amazon.encryption.s3.materials.Keyring;
      import software.amazon.encryption.s3.materials.KmsDiscoveryKeyring;
      ```

      Kode

      ```
      final Keyring kmsDiscoveryKeyRing = KmsDiscoveryKeyring.builder()
              .enableLegacyWrappingAlgorithms(true)
              .build();
      final S3EncryptionClient s3EncryptionClient = S3EncryptionClient.builder()
              .enableLegacyUnauthenticatedModes(true)
              .keyring(kmsDiscoveryKeyRing)
              .build();
      
      GetObjectRequest getObjectRequest = GetObjectRequest.builder()
              .bucket("amzn-s3-demo-bucket")
              .key("<my-key>")
              .build();
      
      ResponseInputStream<GetObjectResponse> s3Object = s3EncryptionClient.getObject(getObjectRequest);
      ```

   1. Unggah objek ke S3 dengan nama yang sama dan enkripsi SSE-KMS. Berikut adalah contoh dengan AWS Java SDK V2.

      **Impor**

      ```
      import software.amazon.awssdk.core.ResponseInputStream;
      import software.amazon.awssdk.core.sync.RequestBody;
      import software.amazon.awssdk.services.s3.S3Client;
      import software.amazon.awssdk.services.s3.model.PutObjectRequest;
      import software.amazon.awssdk.services.s3.model.ServerSideEncryption;
      ```

      **Kode**

      ```
      final S3Client s3Client = S3Client.builder()
              .build();
                  
      PutObjectRequest putObjectRequest = PutObjectRequest.builder()
              .bucket("amzn-s3-demo-bucket")
              .key("<my-key>")
              .serverSideEncryption(ServerSideEncryption.AWS_KMS)
              .ssekmsKeyId("<my-kms-key>")
              .build();
      
      s3Client.putObject(putObjectRequest, RequestBody.fromBytes(s3Object.readAllBytes()));
      ```

## Pasca migrasi
<a name="convert-csekms-table-ssekms-post-migrat"></a>

Setelah berhasil mengenkripsi ulang semua file CSE-KMS dalam tabel, lakukan langkah-langkah berikut. 

1. Hapus `has_encrypted_data` properti dari tabel.

------
#### [ Console ]

   1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

   1. Pilih **Luncurkan editor kueri**.

   1. Di sisi kiri editor, di bawah **Database**, pilih database yang ingin Anda kueri.

   1. Di editor Query, jalankan query berikut untuk tabel Anda.

      ```
      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
      ```

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

   Jalankan perintah berikut untuk menghapus `has_encrypted_data` properti dari tabel Anda.

   ```
   aws athena start-query-execution \
       --query-string "ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data');" \
       --work-group "<my-workgroup>"
   ```

------

1. Perbarui alur kerja Anda untuk menggunakan klien S3 dasar alih-alih klien enkripsi S3 dan kemudian tentukan enkripsi SSE-KMS untuk penulisan data. 

# Enkripsi hasil kueri Athena yang disimpan di Amazon S3
<a name="encrypting-query-results-stored-in-s3"></a>

Anda mengatur enkripsi hasil kueri menggunakan konsol Athena atau saat menggunakan JDBC atau ODBC. Grup kerja memungkinkan Anda untuk menegakkan enkripsi hasil kueri.

**catatan**  
Saat Anda mengenkripsi hasil kueri, Athena mengenkripsi semua objek yang ditulis oleh kueri. Ini termasuk hasil pernyataan seperti`INSERT INTO`,`UPDATE`, dan kueri data dalam Iceberg atau format lainnya.

Di konsol, Anda dapat mengonfigurasi pengaturan untuk enkripsi hasil kueri dengan dua cara:
+ **Pengaturan sisi klien**— Saat Anda menggunakan**Pengaturan**di konsol atau operasi API untuk menunjukkan bahwa Anda ingin mengenkripsi hasil kueri, ini dikenal sebagai menggunakan pengaturan sisi klien. Pengaturan sisi klien termasuk permintaan hasil lokasi dan enkripsi. Jika Anda menentukan mereka, mereka digunakan, kecuali mereka ditimpa oleh pengaturan grup kerja. 
+ **Pengaturan Workgroup** — Bila Anda [membuat atau mengedit workgroup](creating-workgroups.md) dan memilih bidang **Override client-side settings**, maka semua query yang berjalan di workgroup ini menggunakan enkripsi workgroup dan pengaturan lokasi hasil kueri. Untuk informasi selengkapnya, lihat [Ganti pengaturan sisi klien](workgroups-settings-override.md). 

**Untuk mengenkripsi hasil kueri yang disimpan di Amazon S3 menggunakan konsol**
**penting**  
Jika workgroup Anda memiliki bidang **Override setelan sisi klien yang dipilih, maka semua kueri di workgroup menggunakan pengaturan** workgroup. Konfigurasi enkripsi dan lokasi hasil kueri yang ditentukan pada tab **Pengaturan** di konsol Athena, menurut operasi API dan oleh driver JDBC dan ODBC tidak digunakan. Untuk informasi selengkapnya, lihat [Ganti pengaturan sisi klien](workgroups-settings-override.md).

1. Dalam konsol Athena, pilih **Pengaturan**.  
![\[Tab Pengaturan dari editor kueri Athena.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/settings.png)

1. Pilih **Kelola**.

1. Untuk **Lokasi hasil kueri**, masukkan atau pilih jalur Amazon S3. Ini adalah lokasi Amazon S3 tempat hasil kueri disimpan.

1. Pilih **Enkripsi hasil kueri**.  
![\[Opsi Enkripsi hasil kueri pada halaman Kelola pengaturan konsol Athena.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/encrypt-query-results.png)

1. Untuk**Jenis enkripsi**, pilih**CSE-KMS**,**SSE-KM**, atau**SSE-S3**. Dari ketiganya, **CSE-KMS** menawarkan tingkat enkripsi tertinggi dan **SSE-S3** terendah.

1. Jika Anda memilih **SSE-KMS atau CSE-KMS****, tentukan** kunci. AWS KMS 
   + Untuk **Pilih AWS KMS kunci**, jika akun Anda memiliki akses ke kunci terkelola AWS KMS pelanggan yang ada, pilih aliasnya atau masukkan AWS KMS kunci ARN.
   +  Jika akun Anda tidak memiliki akses ke kunci terkelola pelanggan yang sudah ada, pilih **Buat AWS KMS kunci**, lalu buka [AWS KMS konsol](https://console.aws.amazon.com/kms). Untuk informasi selengkapnya, lihat [Membuat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di *Panduan AWS Key Management Service Pengembang*.
**catatan**  
Athena hanya mendukung kunci simetris untuk membaca dan menulis data.

1. Kembali ke konsol Athena dan pilih kunci yang Anda buat dengan alias atau ARN. 

1. Pilih **Simpan**.

## Enkripsi hasil kueri Athena saat Anda menggunakan JDBC atau ODBC
<a name="encrypting-query-results-stored-in-s3-jdbc-odbc"></a>

Jika Anda terhubung menggunakan driver JDBC atau ODBC, Anda mengonfigurasi opsi driver untuk menentukan jenis enkripsi yang akan digunakan dan lokasi direktori pementasan Amazon S3. Untuk mengonfigurasi driver JDBC atau ODBC untuk mengenkripsi hasil kueri Anda menggunakan salah satu protokol enkripsi yang didukung Athena, lihat. [Connect ke Amazon Athena dengan driver ODBC dan JDBC](athena-bi-tools-jdbc-odbc.md)

# Buat tabel berdasarkan kumpulan data terenkripsi di Amazon S3
<a name="creating-tables-based-on-encrypted-datasets-in-s3"></a>

Athena dapat membaca dan menulis ke tabel yang dataset dasarnya adalah SSE-S3, SSE-KMS, atau CSE-KMS terenkripsi. Bergantung pada opsi enkripsi yang digunakan untuk data tabel dan jenis kueri yang dijalankan, Anda mungkin harus menentukan beberapa properti tabel tambahan untuk membaca dan menulis data terenkripsi.

## Membaca tabel terenkripsi SSE-S3/SSE-KMS
<a name="reading-sse-s3-sse-kms-encrypted-tables"></a>

Tidak ada properti tabel tambahan yang perlu ditentukan pada pembuatan tabel untuk membaca kumpulan data terenkripsi SSE-S3/SSE-KMS. Amazon S3 menangani dekripsi objek SSE secara otomatis.

## Membaca tabel terenkripsi CSE-KMS
<a name="reading-cse-kms-encrypted-tables"></a>

Ada dua set properti tabel yang berbeda yang dapat ditentukan agar Athena membaca kumpulan data terenkripsi CSE-KMS,
+ Menggunakan properti `encryption_option` dan `kms_key` tabel (Disarankan)
+ Menggunakan properti `has_encrypted_data` tabel

**penting**  
Jika Anda menggunakan Amazon EMR bersama dengan EMRFS untuk mengunggah file Parket terenkripsi CSE-KMS, Anda harus menonaktifkan unggahan multibagian dengan menyetelnya. `fs.s3n.multipart.uploads.enabled` `false` Jika Anda tidak melakukan ini, Athena tidak dapat menentukan panjang file Parquet dan**HIVE\$1CANNOT\$1OPEN\$1SPLIT**Terjadi kesalahan. Untuk informasi lebih lanjut, lihat [Konfigurasi unggahan multipart untuk Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-upload-s3.html#Config_Multipart) di *Amazon EMR*.

### Menggunakan properti tabel encryption\$1option dan kms\$1key
<a name="using-encryption-option-and-kms-key-table-properties"></a>

Dalam pernyataan [CREATE TABLE](create-table.md), gunakan `TBLPROPERTIES` klausa yang menentukan `encryption_option='CSE_KMS'` dan`kms_key='aws_kms_key_arn'`, seperti pada contoh berikut.

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/'
TBLPROPERTIES (
    'encryption_option' = 'CSE_KMS',
    'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')
```

Ketika properti ini dikonfigurasi,
+ Athena dapat membaca objek terenkripsi CSE-KMS yang dibuat oleh klien enkripsi Amazon S3 V1, V2, atau V3.
+ Athena akan menggunakan AWS KMS kunci `kms_key` untuk mendekripsi data CSE-KMS. Jika ada objek yang dienkripsi dengan AWS KMS kunci yang berbeda, kueri akan gagal.
+ Athena masih dapat membaca objek terenkripsi SSE-S3 dan SSE-KMS, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

### Menggunakan properti tabel has\$1encrypted\$1data
<a name="using-has-encrypted-data-table-property"></a>

Dalam[BUAT TABEL](create-table.md)pernyataan, gunakan`TBLPROPERTIES`Klausul yang menentukan`has_encrypted_data='true'`, seperti dalam contoh berikut.

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/'
TBLPROPERTIES (
    'has_encrypted_data' = 'true')
```

Ketika properti tabel has\$1encrypted\$1data ditentukan,
+ Athena hanya dapat membaca objek terenkripsi CSE-KMS yang dibuat oleh klien enkripsi Amazon S3 V1.
+ Athena akan menyimpulkan AWS KMS kunci yang digunakan untuk mengenkripsi objek CSE-KMS dari metadata objek dan kemudian menggunakan kunci itu untuk mendekripsi objek.
+ Athena masih dapat membaca objek terenkripsi SSE-S3 dan SSE-KMS, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

**catatan**  
Kapan `encryption_option` dan `kms_key` ditentukan di samping`has_encrypted_data`, properti `encryption_option` dan `kms_key` tabel diutamakan, dan diabaikan`has_encrypted_data`.

Saat Anda menggunakan konsol Athena untuk [membuat tabel menggunakan formulir](data-sources-glue-manual-table.md) dan menentukan lokasi tabel, pilih opsi **Kumpulan data terenkripsi** untuk menambahkan `has_encrypted_data='true'` properti ke tabel.

![\[Pilih Kumpulan data terenkripsi dalam formulir tambahkan tabel\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/add-table-form-encrypted-option.png)


Dalam daftar tabel konsol Athena, tabel terenkripsi CSE-KMS dengan menampilkan ikon berbentuk kunci. `has_encrypted_data='true'`

![\[Ikon tabel terenkripsi\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/tables-list-encrypted-table-icon.png)


## Menulis data terenkripsi SSE-S3/SSE-KMS/CSE-KMS
<a name="writing-sse-s3-sse-kms-cse-kms-encrypted-data"></a>

Secara default, file data yang baru dimasukkan akan dienkripsi menggunakan konfigurasi enkripsi hasil kueri yang ditentukan dalam workgroup Athena. Untuk menulis data tabel dengan konfigurasi enkripsi yang berbeda dari konfigurasi enkripsi hasil kueri, Anda harus menambahkan beberapa properti tabel tambahan.

Dalam pernyataan [CREATE TABLE](create-table.md), gunakan `TBLPROPERTIES` klausa yang menentukan `encryption_option='SSE_S3 | SSE_KMS | CSE_KMS'` dan`kms_key='aws_kms_key_arn'`, seperti pada contoh berikut.

```
CREATE EXTERNAL TABLE 'my_encrypted_data' (
   `n_nationkey` int,
   `n_name` string,
   `n_regionkey` int,
   `n_comment` string)
ROW FORMAT SERDE
   'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
   'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
LOCATION
   's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/'
TBLPROPERTIES (
    'encryption_option' = 'SSE_KMS',
    'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')
```

Semua data yang baru dimasukkan akan dienkripsi menggunakan konfigurasi enkripsi yang ditentukan oleh properti tabel daripada menggunakan konfigurasi enkripsi hasil kueri di workgroup.

## Pertimbangan dan batasan
<a name="considerations-and-limitations"></a>

Saat menulis dan membaca kumpulan data terenkripsi, pertimbangkan poin-poin berikut.
+ Properti`has_encrypted_data`,`encryption_option`, dan `kms_key` tabel hanya dapat digunakan dengan tabel Hive.
+ Saat membuat tabel dengan data terenkripsi CSE-KMS, kami sarankan Anda memastikan bahwa semua data dienkripsi dengan kunci yang sama. AWS KMS 
+ Saat membuat tabel dengan data terenkripsi CSE-KMS, kami sarankan Anda memastikan bahwa semua data dienkripsi CSE-KMS dan tidak ada campuran objek terenkripsi dan CSE-KMS. non-CSE-KMS

# Enkripsi saat bergerak
<a name="encryption-in-transit"></a>

Selain mengenkripsi data at rest di Amazon S3, Amazon Athena menggunakan enkripsi Transport Layer Security (TLS) untuk data in-transit antara Athena dan Amazon S3, dan antara Athena dan aplikasi pelanggan yang mengaksesnya.

Anda sebaiknya hanya mengizinkan koneksi terenkripsi melalui HTTPS (TLS) menggunakan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean) di kebijakan IAM bucket Amazon S3.

Hasil kueri yang streaming ke JDBC atau ODBC klien dienkripsi menggunakan TLS. Untuk informasi tentang versi terbaru dari driver JDBC dan ODBC dan dokumentasi mereka, lihat[Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md)dan[Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md).

Untuk konektor sumber data federasi Athena, dukungan untuk enkripsi dalam perjalanan menggunakan TLS tergantung pada konektor individu. Untuk informasi, lihat dokumentasi untuk [konektor sumber data](connectors-available.md) individual.

# Manajemen kunci
<a name="key-management"></a>

Amazon Athena mendukung AWS Key Management Service (AWS KMS) untuk mengenkripsi kumpulan data di hasil kueri Amazon S3 dan Athena. AWS KMS [menggunakan kunci yang dikelola pelanggan untuk mengenkripsi objek Amazon S3 Anda dan bergantung pada enkripsi amplop.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) 

Di AWS KMS, Anda dapat melakukan tindakan berikut:
+  [Buat kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 
+  [Impor materi kunci Anda sendiri untuk kunci yang dikelola pelanggan baru](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) 

**catatan**  
Athena hanya mendukung kunci simetris untuk membaca dan menulis data.

Untuk informasi selengkapnya, lihat [Apa yang ada AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) di *Panduan AWS Key Management Service Pengembang*, dan [Cara Amazon Simple Storage Service menggunakan AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-s3.html). Untuk melihat kunci di akun Anda yang AWS membuat dan mengelola untuk Anda, di panel navigasi, pilih **kunci AWS terkelola**.

Jika Anda mengunggah atau mengakses objek yang dienkripsi oleh SSE-KMS, gunakan AWS Signature Version 4 untuk keamanan tambahan. Untuk informasi selengkapnya, lihat [Menentukan versi tanda tangan dalam autentikasi permintaan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAWSSDK.html#specify-signature-version) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

Jika beban kerja Athena mengenkripsi sejumlah besar data, Anda dapat menggunakan Amazon S3 Bucket Keys untuk mengurangi biaya. Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan kunci Bucket Amazon S3 di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) Penyimpanan *Sederhana Amazon*.

# Privasi lalu lintas antarjaringan
<a name="internetwork-traffic-privacy"></a>

Lalu lintas dilindungi baik antara Athena dan aplikasi on-premise dan antara Athena dan Amazon S3. Lalu lintas antara Athena dan layanan lainnya, seperti AWS Glue dan AWS Key Management Service, menggunakan HTTPS secara default.
+ **Untuk lalu Athena klien dan aplikasi on-premise**, hasil kueri yang streaming ke JDBC atau ODBC klien dienkripsi menggunakan Transport Layer Security (TLS).

  Anda memiliki dua opsi konektivitas antara jaringan pribadi Anda dan AWS: 
  +  Site-to-Site VPN Koneksi Site-to-Site VPN. Untuk informasi selengkapnya, lihat [Apa itu Site-to-Site VPN Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) di *Panduan AWS Site-to-Site VPN Pengguna*.
  +  Direct Connect Koneksi. Untuk informasi selengkapnya, lihat [Apa itu Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) dalam * Panduan Pengguna Direct Connect *.
+ **Untuk lalu lintas antara bucket Athena dan Amazon S3**, Transport Layer Security (TLS) mengenkripsi objek di-transit antara Athena dan Amazon S3, dan antara Athena dan aplikasi pelanggan yang mengaksesnya, Anda harus mengizinkan hanya koneksi terenkripsi melalui HTTPS (TLS) menggunakan[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean)pada kebijakan Amazon S3 bucket IAM. Meskipun Athena saat ini menggunakan titik akhir publik untuk mengakses data di bucket Amazon S3, ini tidak berarti bahwa data tersebut melintasi internet publik. Semua lalu lintas antara Athena dan Amazon S3 dirutekan melalui jaringan dan dienkripsi AWS menggunakan TLS.
+ **Program kepatuhan** — Amazon Athena mematuhi beberapa program AWS kepatuhan, termasuk SOC, PCI, FedRAMP, dan lainnya. Untuk informasi selengkapnya, lihat [Layanan AWS dalam lingkup berdasarkan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/). 

# Manajemen identitas dan akses di Athena
<a name="security-iam-athena"></a>

Amazon Athena menggunakan kebijakan [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) untuk membatasi akses ke operasi Athena. *Untuk daftar lengkap izin Athena, [lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) di Referensi Otorisasi Layanan.*

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Izin yang diperlukan untuk menjalankan Athena kueri meliputi berikut:
+ lokasi Amazon S3 tempat data yang mendasari untuk kueri disimpan. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.
+ Metadata dan sumber daya yang Anda simpan di AWS Glue Data Catalog, seperti database dan tabel, termasuk tindakan tambahan untuk metadata terenkripsi. Untuk informasi selengkapnya, lihat [Menyiapkan izin IAM untuk AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/getting-started-access.html) dan [Menyiapkan enkripsi AWS Glue di](https://docs.aws.amazon.com/glue/latest/dg/set-up-encryption.html) Panduan *AWS Glue Pengembang*.
+ Tindakan API Athena. Untuk daftar tindakan API di Athena, lihat [Tindakan](https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html) dalam *Referensi API Amazon Athena*.

Topik berikut memberikan informasi selengkapnya tentang izin untuk area tertentu di Athena.

**Topics**
+ [AWS kebijakan terkelola](security-iam-awsmanpol.md)
+ [Perimeter data](data-perimeters.md)
+ [Akses melalui koneksi JDBC dan ODBC](policy-actions.md)
+ [Kontrol akses ke Amazon S3 dari Athena](s3-permissions.md)
+ [Akses lintas akun ke bucket S3](cross-account-permissions.md)
+ [Akses ke database dan tabel di AWS Glue](fine-grained-access-to-glue-resources.md)
+ [Akses lintas akun ke katalog AWS Glue data](security-iam-cross-account-glue-catalog-access.md)
+ [Akses ke metadata terenkripsi di Katalog Data](access-encrypted-data-glue-data-catalog.md)
+ [Akses ke grup kerja dan tag](workgroups-access.md)
+ [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md)
+ [Kelompok kerja yang diaktifkan Pusat Identitas IAM](workgroups-identity-center.md)
+ [Konfigurasikan enkripsi minimum](workgroups-minimum-encryption.md)
+ [Konfigurasikan akses ke pernyataan yang disiapkan](security-iam-athena-prepared-statements.md)
+ [Gunakan tombol CalledVia konteks](security-iam-athena-calledvia.md)
+ [Izinkan akses ke Konektor Data Athena untuk Metastore Sarang Eksternal](hive-metastore-iam-access.md)
+ [Izinkan akses fungsi Lambda ke metastores Hive eksternal](hive-metastore-iam-access-lambda.md)
+ [Izin diperlukan untuk membuat konektor dan katalog Athena](athena-catalog-access.md)
+ [Izinkan akses ke Athena Federated Query](federated-query-iam-access.md)
+ [Izinkan akses ke UDFs](udf-iam-access.md)
+ [Izinkan akses untuk ML dengan Athena](machine-learning-iam-access.md)
+ [Aktifkan akses federasi ke Athena API](access-federation-saml.md)

# AWS kebijakan terkelola untuk Amazon Athena
<a name="security-iam-awsmanpol"></a>

Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. AWS Kebijakan terkelola dirancang untuk memberikan izin bagi banyak kasus penggunaan umum sehingga Anda dapat mulai menetapkan izin kepada pengguna, grup, dan peran.

Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan semua pelanggan. AWS Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan [kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang khusus untuk kasus penggunaan Anda.

Anda tidak dapat mengubah izin yang ditentukan dalam kebijakan AWS terkelola. Jika AWS memperbarui izin yang ditentukan dalam kebijakan AWS terkelola, pembaruan akan memengaruhi semua identitas utama (pengguna, grup, dan peran) yang dilampirkan kebijakan tersebut. AWS kemungkinan besar akan memperbarui kebijakan AWS terkelola saat baru Layanan AWS diluncurkan atau operasi API baru tersedia untuk layanan yang ada.

Untuk informasi selengkapnya, lihat [Kebijakan terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

## Pertimbangan saat menggunakan kebijakan terkelola dengan Athena
<a name="managed-policies-considerations"></a>

Kebijakan terkelola mudah digunakan dan diperbarui secara otomatis dengan tindakan yang diperlukan saat layanan berkembang. Saat menggunakan kebijakan terkelola dengan Athena, ingatlah hal-hal berikut:
+ Untuk mengizinkan atau menolak tindakan layanan Amazon Athena untuk diri sendiri atau pengguna lain yang menggunakan AWS Identity and Access Management (IAM), Anda melampirkan kebijakan berbasis identitas untuk utama, seperti pengguna atau grup. 
+ Setiap kebijakan berbasis identitas terdiri dari pernyataan yang menentukan tindakan yang diizinkan atau ditolak. Untuk informasi selengkapnya dan step-by-step petunjuk untuk melampirkan kebijakan ke pengguna, lihat [Melampirkan kebijakan terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) di Panduan Pengguna *IAM*. Untuk daftar tindakan, lihat bagian[Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/).
+  *Dikelola pelanggan*dan*inline*kebijakan berbasis identitas memungkinkan Anda menentukan tindakan Athena yang lebih terperinci dalam kebijakan untuk menyempurnakan akses. Kami menyarankan agar Anda menggunakan`AmazonAthenaFullAccess`kebijakan sebagai titik awal dan kemudian mengizinkan atau menolak tindakan tertentu yang tercantum dalam[Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Untuk informasi selengkapnya tentang kebijakan sebaris, lihat [Kebijakan terkelola dan kebijakan sebaris](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) di Panduan Pengguna *IAM*.
+ Jika Anda juga memiliki utama yang terhubung menggunakan JDBC, Anda harus memberikan mandat driver JDBC untuk aplikasi Anda. Untuk informasi selengkapnya, lihat [Kontrol akses melalui koneksi JDBC dan ODBC](policy-actions.md).
+ Jika Anda telah mengenkripsi Katalog AWS Glue Data, Anda harus menentukan tindakan tambahan dalam kebijakan IAM berbasis identitas untuk Athena. Untuk informasi selengkapnya, lihat [Konfigurasikan akses dari Athena ke metadata terenkripsi di AWS Glue Data Catalog](access-encrypted-data-glue-data-catalog.md).
+ Jika Anda membuat dan menggunakan grup kerja, pastikan kebijakan Anda termasuk akses yang relevan ke tindakan grup kerja. Untuk informasi detail, lihat [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md) dan [Contoh kebijakan workgroup](example-policies-workgroup.md). 

## AWS kebijakan terkelola: AmazonAthenaFullAccess
<a name="amazonathenafullaccess-managed-policy"></a>

Kebijakan terkelola `AmazonAthenaFullAccess` memberikan akses penuh ke Athena.

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
+ Pengguna dan grup di AWS IAM Identity Center:

  Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
+ Pengguna yang dikelola di IAM melalui penyedia identitas:

  Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
+ Pengguna IAM:
  + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
  + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

### Pengelompokan izin
<a name="amazonathenafullaccess-managed-policy-groupings"></a>

Parameter`AmazonAthenaFullAccess`dikelompokkan ke dalam kumpulan izin berikut.
+ **`athena`**— Memungkinkan utama akses ke sumber daya Athena.
+ **`glue`**— Memungkinkan akses kepala sekolah ke AWS Glue Katalog, database, tabel, dan partisi. Ini diperlukan agar kepala sekolah dapat menggunakan AWS Glue Data Catalog s dengan Athena.
+ **`s3`**— Memungkinkan utama untuk menulis dan membaca hasil kueri dari Amazon S3, untuk membaca tersedia secara publik contoh data Athena yang berada di Amazon S3, dan daftar bucket. Ini diperlukan agar utama dapat menggunakan Athena untuk bekerja dengan Amazon S3.
+ **`sns`**— Memungkinkan utama untuk daftar topik Amazon SNS dan mendapatkan atribut topik. Ini memungkinkan utama untuk menggunakan topik Amazon SNS dengan Athena untuk tujuan pemantauan dan peringatan.
+ **`cloudwatch`**— Memungkinkan kepala sekolah untuk membuat, membaca, dan menghapus alarm. CloudWatch Untuk informasi selengkapnya, lihat [Menggunakan CloudWatch dan EventBridge memantau kueri dan mengendalikan biaya](workgroups-control-limits.md).
+ **`lakeformation`**— Memungkinkan kepala sekolah untuk meminta kredensil sementara untuk mengakses data di lokasi danau data yang terdaftar di Lake Formation. Untuk informasi selengkapnya, lihat [Kontrol akses data yang mendasari](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html) di *Panduan Pengembang AWS Lake Formation*.
+ **`datazone`**— Memungkinkan kepala sekolah untuk mencantumkan DataZone proyek, domain, dan lingkungan Amazon. Untuk informasi tentang penggunaan DataZone di Athena, lihat. [Gunakan Amazon DataZone di Athena](datazone-using.md)
+ **`pricing`**— Menyediakan akses ke AWS Manajemen Penagihan dan Biaya. Untuk informasi selengkapnya, lihat [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html) di dalam *Referensi API AWS Manajemen Penagihan dan Biaya *. 

Untuk melihat izin kebijakan ini, lihat [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html)di Referensi Kebijakan AWS Terkelola.

**catatan**  
Anda harus secara eksplisit mengizinkan akses ke bucket Amazon S3 milik layanan untuk menyimpan kueri contoh dan kumpulan data sampel. Untuk informasi selengkapnya, lihat [Perimeter data](data-perimeters.md).

## AWS kebijakan terkelola: AWSQuicksight AthenaAccess
<a name="awsquicksightathenaaccess-managed-policy"></a>

`AWSQuicksightAthenaAccess`memberikan akses ke tindakan yang Quick butuhkan untuk integrasi dengan Athena. Anda dapat melampirkan kebijakan `AWSQuicksightAthenaAccess` ke identitas IAM Anda. Lampirkan kebijakan ini hanya untuk kepala sekolah yang menggunakan Quick with Athena. Kebijakan ini mencakup beberapa tindakan untuk Athena yang baik usang dan tidak termasuk dalam API publik saat ini, atau yang digunakan hanya dengan driver JDBC dan ODBC.

### Pengelompokan izin
<a name="awsquicksightathenaaccess-managed-policy-groupings"></a>

Parameter`AWSQuicksightAthenaAccess`dikelompokkan ke dalam kumpulan izin berikut.
+ **`athena`**— Memungkinkan utama untuk menjalankan kueri pada sumber daya Athena.
+ **`glue`**— Memungkinkan akses kepala sekolah ke AWS Glue Katalog, database, tabel, dan partisi. Ini diperlukan agar kepala sekolah dapat menggunakan AWS Glue Data Catalog s dengan Athena.
+ **`s3`**— Memungkinkan utama untuk menulis dan membaca hasil kueri dari Amazon S3.
+ **`lakeformation`**— Memungkinkan kepala sekolah untuk meminta kredensil sementara untuk mengakses data di lokasi danau data yang terdaftar di Lake Formation. Untuk informasi selengkapnya, lihat [Kontrol akses data yang mendasari](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html) di *Panduan Pengembang AWS Lake Formation*.

Untuk melihat izin kebijakan ini, lihat [AWSQuicksightAthenaAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSQuicksightAthenaAccess.html)di Referensi Kebijakan AWS Terkelola.

## Athena memperbarui kebijakan terkelola AWS
<a name="managed-policies-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola untuk Athena sejak layanan ini mulai melacak perubahan ini.


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
| [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy)— Pembaruan kebijakan yang ada | glue:GetCatalogsIzin glue:GetCatalog dan ditambahkan untuk memungkinkan pengguna Athena mengakses katalog AI SageMaker Lakehouse. | Januari 02, 2025 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada | glue:GetCatalogsIzin glue:GetCatalog dan ditambahkan untuk memungkinkan pengguna Athena mengakses katalog AI SageMaker Lakehouse. | Januari 02, 2025 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada |  Memungkinkan Athena menggunakan AWS Glue `GetCatalogImportStatus` API yang didokumentasikan secara publik untuk mengambil status impor katalog.  | Juni 18, 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada  |  `datazone:ListAccountEnvironments`Izin `datazone:ListDomains``datazone:ListProjects`,, dan ditambahkan untuk memungkinkan pengguna Athena bekerja dengan domain, proyek, dan lingkungan DataZone Amazon. Untuk informasi selengkapnya, lihat [Gunakan Amazon DataZone di Athena](datazone-using.md).  | Januari 3, 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada  |  `glue:GetColumnStatisticsTaskRuns`Izin `glue:StartColumnStatisticsTaskRun``glue:GetColumnStatisticsTaskRun`,, dan ditambahkan untuk memberi Athena hak AWS Glue menelepon untuk mengambil statistik untuk fitur pengoptimal berbasis biaya. Untuk informasi selengkapnya, lihat [Gunakan pengoptimal berbasis biaya](cost-based-optimizer.md).  | Januari 3, 2024 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada  |  Athena menambahkan `pricing:GetProducts` untuk menyediakan akses ke. AWS Manajemen Penagihan dan Biaya Untuk informasi selengkapnya, lihat [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html) di dalam *Referensi API AWS Manajemen Penagihan dan Biaya *.   | Januari 25, 2023 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – Pembaruan ke kebijakan yang sudah ada  |  Athena ditambahkan `cloudwatch:GetMetricData` untuk mengambil nilai metrik CloudWatch. Untuk informasi selengkapnya, lihat [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)di *Referensi Amazon CloudWatch API*.  | November 14, 2022 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy)dan [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy)— Pembaruan kebijakan yang ada  |  Athena`s3:PutBucketPublicAccessBlock`untuk mengaktifkan pemblokiran akses publik pada bucket yang dibuat oleh Athena.  | 7 Juli 2021 | 
|  Athena mulai melacak perubahan  |  Athena mulai melacak perubahan untuk kebijakan yang AWS dikelola.  | 7 Juli 2021 | 

# Perimeter data
<a name="data-perimeters"></a>

[Perimeter data](https://aws.amazon.com/identity/data-perimeters-on-aws/) adalah sekumpulan pagar pembatas izin di AWS lingkungan yang Anda gunakan untuk membantu memastikan bahwa hanya identitas tepercaya Anda yang mengakses sumber daya tepercaya dari jaringan yang diharapkan. 

Amazon Athena menggunakan bucket Amazon S3 milik layanan untuk menyimpan kueri contoh dan kumpulan data sampel. Jika Anda menggunakan perimeter data untuk mengontrol akses di lingkungan Anda, Anda harus secara eksplisit mengizinkan akses ke sumber daya milik layanan ini untuk menggunakan fitur Athena yang sesuai. 

 Tabel berikut mencantumkan ARN bucket Amazon S3 yang perlu diakses Athena, izin yang diperlukan, identitas yang digunakan oleh Athena, dan fitur yang bergantung pada bucket S3. Untuk mengizinkan akses, ganti ARN `<region>` di bucket dengan bucket Anda yang sebenarnya Wilayah AWS dan izinkan daftar bucket ini berdasarkan kontrol akses Amazon S3 Anda. 


**Perimeter data yang digunakan Athena**  

| ARN Sumber Daya | Izin yang diperlukan | Identitas yang digunakan untuk akses | Skenario akses | 
| --- | --- | --- | --- | 
|  arn:aws:s3:::athena-examples-<region>  | s3: GetObjects3: ListBucket | Kepala IAM mengakses Athena. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/data-perimeters.html)  | 

# Kontrol akses melalui koneksi JDBC dan ODBC
<a name="policy-actions"></a>

Untuk mendapatkan akses Layanan AWS dan sumber daya, seperti Athena dan bucket Amazon S3, berikan kredenal driver JDBC atau ODBC ke aplikasi Anda. Jika Anda menggunakan driver JDBC atau ODBC, pastikan bahwa kebijakan izin IAM mencakup semua tindakan yang tercantum di dalamnya. [AWS kebijakan terkelola: AWSQuicksight AthenaAccess](security-iam-awsmanpol.md#awsquicksightathenaaccess-managed-policy)

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Metode autentikasi
<a name="security-jdbc-odbc-access-authentication"></a>

Athena JDBC dan ODBC driver mendukung otentikasi berbasis SAML 2.0, termasuk penyedia identitas berikut:
+ Microsoft Active Directory Federation Services (AD FS)
+ Azure direktori aktif (AD)
+ Okta 
+ PingFederate

Untuk informasi lebih lanjut, lihat panduan instalasi dan konfigurasi untuk masing-masing driver, yang dapat diunduh dalam format PDF dari halaman driver [JDBC dan [ODBC](connect-with-odbc.md)](connect-with-jdbc.md). Untuk informasi tambahan, lihat catatan setelahnya.
+ [Aktifkan akses federasi ke Athena API](access-federation-saml.md)
+ [Gunakan Lake Formation dan driver JDBC atau ODBC untuk akses federasi ke Athena](security-athena-lake-formation-jdbc.md)
+  [Konfigurasikan sistem masuk tunggal menggunakan ODBC, SAMP 2.0, dan Penyedia Identitas Okta](okta-saml-sso.md)

Untuk informasi tentang versi terbaru dari driver JDBC dan ODBC dan dokumentasi mereka, lihat[Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md)dan[Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md).

# Kontrol akses ke Amazon S3 dari Athena
<a name="s3-permissions"></a>

Anda dapat memberikan akses ke lokasi Amazon S3 menggunakan kebijakan berbasis identitas, kebijakan sumber daya bucket, kebijakan titik akses, atau kombinasi apa pun di atas. Ketika aktor berinteraksi dengan Athena, izin mereka melewati Athena untuk menentukan apa yang dapat diakses Athena. Ini berarti bahwa pengguna harus memiliki izin untuk mengakses bucket Amazon S3 untuk menanyakannya dengan Athena.

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Perhatikan bahwa permintaan ke Amazon S3 berasal dari IPv4 alamat pribadi untuk Athena, bukan IP sumber yang ditentukan. `aws:SourceIp` Untuk alasan ini, Anda tidak dapat menggunakan `aws:SourceIp` kondisi untuk menolak akses ke tindakan Amazon S3 dalam kebijakan IAM tertentu. Anda juga tidak dapat membatasi atau mengizinkan akses ke sumber daya Amazon S3 berdasarkan kunci `aws:SourceVpce` atau `aws:SourceVpc` kondisi.

**catatan**  
Kelompok kerja Athena yang menggunakan autentikasi Pusat Identitas IAM mengharuskan Hibah Akses S3 dikonfigurasi untuk menggunakan identitas propagasi identitas tepercaya. Untuk informasi selengkapnya, lihat [Hibah Akses S3 dan identitas direktori](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-directory-ids.html) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

**Topics**
+ [Kebijakan berbasis identitas](#s3-permissions-identity-based-policies)
+ [Kebijakan sumber daya bucket](#s3-permissions-bucket-resource-policies)
+ [Kebijakan titik akses](#s3-permissions-aliases)
+ [CalledVia kunci konteks](#s3-permissions-calledvia)
+ [Sumber daya tambahan](#s3-permissions-additional-resources)

## Menggunakan kebijakan berbasis identitas untuk mengontrol akses ke bucket Amazon S3
<a name="s3-permissions-identity-based-policies"></a>

Kebijakan berbasis identitas terlampir pada pengguna, grup, atau peran IAM. Kebijakan ini memungkinkan Anda menentukan apa yang dapat dilakukan oleh identitas (izinnya). Anda dapat menggunakan kebijakan berbasis identitas untuk mengontrol akses ke bucket Amazon S3 Anda.

Kebijakan berbasis identitas berikut memungkinkan `Read` dan `Write` mengakses objek dalam bucket Amazon S3 tertentu. Untuk menggunakan kebijakan ini, ganti *italicized placeholder text* dengan nilai Anda sendiri.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

## Menggunakan kebijakan sumber daya bucket untuk mengontrol akses ke bucket Amazon S3
<a name="s3-permissions-bucket-resource-policies"></a>

Anda dapat menggunakan kebijakan bucket Amazon S3 untuk mengamankan akses ke objek di bucket sehingga hanya pengguna dengan izin yang sesuai yang dapat mengaksesnya. Untuk panduan [cara membuat kebijakan Amazon S3, lihat Menambahkan kebijakan bucket menggunakan konsol Amazon S3 di Panduan Pengguna](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) Amazon *S3*.

Contoh kebijakan izin berikut membatasi pengguna untuk membaca objek yang memiliki kunci `environment: production` tag dan nilai. Kebijakan contoh menggunakan kunci `s3:ExistingObjectTag` kondisi untuk menentukan kunci tag dan nilai.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/JohnDoe"
            },
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:ExistingObjectTag/environment": "production"
                }
            }
        }
    ]
}
```

------

Untuk contoh kebijakan bucket lainnya, lihat [Contoh kebijakan bucket Amazon S3 di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) Pengguna *Amazon S3*.

## Gunakan titik akses Amazon S3 untuk kontrol yang lebih tepat atas akses bucket
<a name="s3-permissions-aliases"></a>

Jika Anda memiliki kumpulan data bersama di bucket Amazon S3, mempertahankan kebijakan bucket tunggal yang mengelola akses untuk ratusan kasus penggunaan dapat menjadi tantangan.

Titik akses bucket Amazon S3, kebijakan, dan alias dapat membantu mengatasi masalah ini. Bucket dapat memiliki beberapa titik akses, masing-masing dengan kebijakan yang mengontrol akses ke bucket dengan cara yang berbeda. 

Untuk setiap titik akses yang Anda buat, Amazon S3 menghasilkan alias yang mewakili titik akses. Karena alias dalam format nama bucket Amazon S3, Anda dapat menggunakan alias dalam klausa pernyataan Anda `LOCATION` `CREATE TABLE` di Athena. Akses Athena ke bucket kemudian dikendalikan oleh kebijakan untuk titik akses yang diwakili alias. 

Untuk informasi selengkapnya, lihat [Tentukan lokasi tabel di Amazon S3](tables-location-format.md) dan [Menggunakan titik akses](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) di *Panduan Pengguna Amazon S3*.

## Gunakan tombol CalledVia konteks untuk mengizinkan hanya panggilan dari Athena ke layanan lain
<a name="s3-permissions-calledvia"></a>

Untuk keamanan tambahan, Anda dapat menggunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia)global. Kunci `aws:CalledVia` kondisi berisi daftar layanan yang Anda izinkan untuk memanggil layanan lain. Misalnya, Anda dapat mengizinkan `InvokeFunction` panggilan AWS Lambda hanya jika panggilan berasal dari Athena dengan menentukan nama `athena.amazonaws.com` utama layanan Athena untuk kunci konteks. `aws:CalledVia` Untuk informasi selengkapnya, lihat [Gunakan tombol CalledVia konteks untuk Athena](security-iam-athena-calledvia.md).

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

Untuk informasi detail dan contoh tentang cara memberikan akses Amazon S3, lihat sumber daya berikut:
+ [Contoh penelusuran: Mengelola akses](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access.html) di Panduan Pengguna *Amazon* S3.
+ [Bagaimana saya bisa memberikan akses lintas akun ke objek yang ada di bucket Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/) di pusat AWS pengetahuan.
+ [Konfigurasikan akses lintas akun di Athena ke bucket Amazon S3](cross-account-permissions.md).

# Konfigurasikan akses lintas akun di Athena ke bucket Amazon S3
<a name="cross-account-permissions"></a>

Skenario Amazon Athena yang umum memberikan akses ke pengguna di akun yang berbeda dari pemilik bucket sehingga mereka dapat melakukan kueri. Dalam kasus ini, gunakan kebijakan bucket untuk memberikan akses.

**catatan**  
Untuk informasi tentang akses lintas akun ke katalog AWS Glue data dari Athena, lihat. [Konfigurasikan akses lintas akun ke katalog AWS Glue data](security-iam-cross-account-glue-catalog-access.md)

Contoh kebijakan bucket berikut, dibuat dan diterapkan ke bucket`s3://amzn-s3-demo-bucket`oleh pemilik bucket, memberikan akses ke semua pengguna dalam akun`123456789123`, yang merupakan akun yang berbeda.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "MyPolicyID",
   "Statement": [
      {
          "Sid": "MyStatementSid",
          "Effect": "Allow",
          "Principal": {
             "AWS": "arn:aws:iam::123456789123:root"
          },
          "Action": [
             "s3:GetBucketLocation",
             "s3:GetObject",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads",
             "s3:ListMultipartUploadParts",
             "s3:AbortMultipartUpload"
          ],
          "Resource": [
             "arn:aws:s3:::amzn-s3-demo-bucket",
             "arn:aws:s3:::amzn-s3-demo-bucket/*"
          ]
       }
    ]
 }
```

------

Untuk memberikan akses ke pengguna tertentu di akun, ganti`Principal`kunci dengan kunci yang menentukan pengguna bukan`root`. Misalnya, untuk profil pengguna`Dave`, gunakan`arn:aws:iam::123456789123:user/Dave`.

## Konfigurasikan akses lintas akun ke bucket yang dienkripsi dengan kunci khusus AWS KMS
<a name="cross-account-permissions-kms"></a>

Jika Anda memiliki bucket Amazon S3 yang dienkripsi dengan kunci kustom AWS Key Management Service (AWS KMS), Anda mungkin perlu memberikan akses ke bucket Amazon S3 dari akun Amazon Web Services lainnya.

Memberikan akses ke bucket AWS KMS-enkripsi di Akun A kepada pengguna di Akun B memerlukan izin berikut:
+ Kebijakan bucket di Akun A harus memberikan akses ke peran yang diambil oleh Akun B.
+ Kebijakan AWS KMS utama di Akun A harus memberikan akses ke peran yang diambil oleh pengguna di Akun B.
+ Peran AWS Identity and Access Management (IAM) yang diasumsikan oleh Akun B harus memberikan akses ke bucket dan kunci di Akun A.

Prosedur berikut menjelaskan cara memberikan izin masing-masing.

**Untuk memberikan akses ke bucket di akun a ke pengguna di akun b**
+ Dari Akun A,[meninjau kebijakan bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)dan konfirmasikan bahwa ada pernyataan yang memungkinkan akses dari ID akun Akun B.

  Misalnya, kebijakan bucket berikut mengizinkan `s3:GetObject` akses ke ID akun`111122223333`:

------
#### [ JSON ]

****  

  ```
  {
    "Id": "ExamplePolicy1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ExampleStmt1",
        "Action": [
          "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "Principal": {
          "AWS": [
            "111122223333"
          ]
        }
      }
    ]
  }
  ```

------

**Untuk memberikan akses ke pengguna di akun b dari kebijakan AWS KMS kunci di akun a**

1. Dalam kebijakan AWS KMS utama untuk Akun A, berikan peran yang diasumsikan oleh izin Akun B untuk tindakan berikut:
   +  `kms:Encrypt` 
   +  `kms:Decrypt` 
   +  `kms:ReEncrypt*` 
   +  `kms:GenerateDataKey*` 
   +  `kms:DescribeKey` 

   Contoh berikut memberikan akses kunci ke hanya satu peran IAM.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowUseOfTheKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/role_name"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Dari Akun A, tinjau kebijakan [utama menggunakan tampilan Konsol Manajemen AWS kebijakan](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-policy-view).

1. Dalam kebijakan kunci, verifikasi bahwa pernyataan berikut mencantumkan akun B sebagai utama.

   ```
   "Sid": "Allow use of the key" 
   ```

1. Jika`"Sid": "Allow use of the key"`Pernyataan tidak ada, lakukan langkah-langkah berikut:

   1. Beralih untuk melihat kebijakan kunci [ menggunakan tampilan default konsol](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-default-view). 

   1.  Tambahkan ID akun akun B sebagai akun eksternal dengan akses ke kunci.

**Untuk memberikan akses ke bucket dan kunci di akun a dari peran IAM yang diasumsikan oleh akun b**

1. Dari Akun B, buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buka peran IAM yang terkait dengan pengguna di Akun B.

1. Tinjau daftar kebijakan izin yang diterapkan pada peran IAM.

1. Pastikan bahwa kebijakan diterapkan yang memberikan akses ke bucket.

   Contoh pernyataan berikut memberikan akses peran IAM ke `s3:GetObject` dan `s3:PutObject` operasi di bucket: `amzn-s3-demo-bucket`

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExampleStmt2",
         "Action": [
           "s3:GetObject",
           "s3:PutObject"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Pastikan bahwa kebijakan diterapkan yang memberikan akses ke kunci.
**catatan**  
Jika peran IAM yang diasumsikan oleh Akun B sudah memiliki [akses administrator](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html), maka Anda tidak perlu memberikan akses ke kunci dari kebijakan IAM pengguna.

   Pernyataan contoh berikut memberikan akses peran IAM untuk menggunakan kunci. `arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExampleStmt3",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey",
           "kms:Encrypt",
           "kms:GenerateDataKey",
           "kms:ReEncrypt*"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
       }
     ]
   }
   ```

------

## Konfigurasikan akses lintas akun ke objek bucket
<a name="cross-account-permissions-objects"></a>

Objek yang diunggah oleh akun (Akun C) selain akun yang dimiliki bucket (Akun A) mungkin memerlukan tingkat objek eksplisit ACLs yang memberikan akses baca ke akun kueri (Akun B). Untuk menghindari persyaratan ini, Akun C harus berperan dalam Akun A sebelum menempatkan objek di bucket Akun A. Untuk informasi selengkapnya, lihat[Bagaimana cara memberikan akses lintas akun ke objek yang ada di bucket Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/).

# Konfigurasikan akses ke database dan tabel di AWS Glue Data Catalog
<a name="fine-grained-access-to-glue-resources"></a>

Jika Anda menggunakan AWS Glue Data Catalog dengan Amazon Athena, Anda dapat menentukan kebijakan tingkat sumber daya untuk database dan tabel objek Katalog Data yang digunakan di Athena.

**catatan**  
Topik ini membahas keamanan tingkat database dan tabel. Untuk informasi tentang mengonfigurasi keamanan tingkat kolom, baris, dan sel, lihat [Pemfilteran data dan keamanan tingkat sel](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filtering.html) di Lake Formation. 

Anda menentukan izin level sumber daya di kebijakan berbasis identitas IAM.

**penting**  
Bagian ini membahas izin level sumber daya dalam kebijakan berbasis identitas IAM. Kebijakan ini berbeda dengan kebijakan berbasis sumber daya. *Untuk informasi selengkapnya tentang perbedaan, lihat Kebijakan [berbasis identitas dan kebijakan berbasis sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) di Panduan Pengguna IAM.*

Lihat topik berikut untuk tugas berikut: 


| Untuk melakukan tugas ini | Lihat topik berikut: | 
| --- | --- | 
| Buat kebijakan IAM yang mendefinisikan akses ke sumber daya | [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) di Panduan Pengguna IAM. | 
| Pelajari tentang kebijakan berbasis identitas IAM yang digunakan di AWS Glue | [Kebijakan berbasis identitas (kebijakan IAM) dalam Panduan Pengembang](https://docs.aws.amazon.com/glue/latest/dg/using-identity-based-policies.html).AWS Glue   | 

 **Di bagian ini** 
+  [Batasan](#access-to-glue-resources-limitations) 
+  [Konfigurasikan AWS Glue akses ke katalog dan database Anda per Wilayah AWS](#full-access-to-default-db-per-region) 
+  [Tentang kontrol akses untuk partisi tabel dan versi di AWS Glue](#access-to-glue-resources-table-partitions-and-versions) 
+  [Contoh izin database dan tingkat tabel](#examples-fine-grained-table-database-policies) 

## Batasan
<a name="access-to-glue-resources-limitations"></a>

Pertimbangkan batasan berikut saat Anda menggunakan kontrol akses tingkat database dan tabel untuk Athena dan AWS Glue Data Catalog Athena:
+ Kelompok kerja Athena yang mengaktifkan Pusat Identitas IAM mengharuskan Lake Formation dikonfigurasi untuk menggunakan identitas Pusat Identitas IAM. Untuk informasi selengkapnya, lihat [Mengintegrasikan Pusat Identitas IAM](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) di Panduan *AWS Lake Formation Pengembang*. 
+ Anda dapat membatasi akses hanya ke basis data dan tabel. Kontrol ini berlaku di tingkat tabel. Anda tidak dapat membatasi akses ke partisi individu dalam tabel. Untuk informasi selengkapnya, lihat [Tentang kontrol akses untuk partisi tabel dan versi di AWS Glue](#access-to-glue-resources-table-partitions-and-versions).
+  AWS Glue Data Catalog Berisi sumber daya berikut:`CATALOG`,`DATABASE`,`TABLE`, dan`FUNCTION`. 
**catatan**  
Dari daftar ini, sumber daya yang umum antara Athena dan AWS Glue Data Catalog adalah`TABLE`,`DATABASE`, dan `CATALOG` untuk setiap akun. `Function`khusus untuk AWS Glue. Untuk menghapus tindakan di Athena, Anda harus menyertakan izin untuk AWS Glue Tindakan. Lihat [Contoh izin database dan tingkat tabel](#examples-fine-grained-table-database-policies).

  Hierarki adalah sebagai berikut:`CATALOG`adalah leluhur dari semua`DATABASES`di setiap akun, dan masing-masing`DATABASE`adalah leluhur untuk semua`TABLES`dan`FUNCTIONS`. Misalnya, untuk tabel bernama`table_test`yang tergolong dalam basis data`db`dalam katalog di akun Anda, nenek moyangnya`db`dan katalog di akun Anda. Untuk`db`database, nenek moyangnya adalah katalog di akun Anda, dan keturunannya adalah tabel dan fungsi. Untuk informasi selengkapnya tentang struktur hierarkis sumber daya, lihat [Daftar Katalog Data ARNs dalam](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#data-catalog-resource-arns) *Panduan AWS Glue Pengembang*. 
+ Untuk tindakan Athena yang tidak dihapus pada sumber daya, seperti`CREATE DATABASE`,`CREATE TABLE`,`SHOW DATABASE`,`SHOW TABLE`, atau`ALTER TABLE`, Anda memerlukan izin untuk memanggil tindakan ini pada sumber daya (tabel atau basis data) dan semua nenek moyang sumber daya dalam Katalog Data. Misalnya, untuk tabel, nenek moyangnya adalah basis data yang menjadi miliknya, dan katalog untuk akun tersebut. Untuk basis data, nenek moyangnya adalah katalog untuk akun. Lihat [Contoh izin database dan tingkat tabel](#examples-fine-grained-table-database-policies). 
+ Untuk tindakan hapus di Athena, seperti `DROP DATABASE` atau`DROP TABLE`, Anda juga memerlukan izin untuk memanggil tindakan hapus pada semua leluhur dan keturunan sumber daya di Katalog Data. Misalnya, untuk menghapus basis data Anda memerlukan izin pada basis data, katalog, yang merupakan nenek moyangnya, dan semua tabel dan fungsi yang ditetapkan pengguna, yang merupakan keturunannya. Meja tidak memiliki keturunan. Untuk menjalankan`DROP TABLE`, Anda memerlukan izin untuk tindakan ini di atas tabel, basis data yang dimiliki, dan katalog. Lihat [Contoh izin database dan tingkat tabel](#examples-fine-grained-table-database-policies).

## Konfigurasikan AWS Glue akses ke katalog dan database Anda per Wilayah AWS
<a name="full-access-to-default-db-per-region"></a>

Agar Athena dapat bekerja dengan AWS Glue, kebijakan yang memberikan akses ke database Anda dan ke akun Anda per Wilayah AWS diperlukan. AWS Glue Data Catalog Untuk membuat database, `CreateDatabase` izin juga diperlukan. Dalam contoh kebijakan berikut, ganti nama Wilayah AWS, Akun AWS ID, dan database dengan nama Anda sendiri.

```
{
   "Sid": "DatabasePermissions",
   "Effect": "Allow",
   "Action": [
      "glue:GetDatabase", 
      "glue:GetDatabases",
      "glue:CreateDatabase"
   ],
   "Resource": [
     "arn:aws:glue:us-east-1:123456789012:catalog",
     "arn:aws:glue:us-east-1:123456789012:database/default"
   ]
}
```

## Tentang kontrol akses untuk partisi tabel dan versi di AWS Glue
<a name="access-to-glue-resources-table-partitions-and-versions"></a>

Di AWS Glue, tabel dapat memiliki partisi dan versi. Versi tabel dan partisi tidak dianggap sebagai sumber daya independen di AWS Glue. Akses ke versi tabel dan partisi diberikan dengan memberikan akses di atas tabel dan sumber leluhur untuk tabel. 

Untuk keperluan kontrol akses, izin akses berikut berlaku:
+ Kontrol berlaku di tingkat tabel. Anda dapat membatasi akses hanya ke basis data dan tabel. Misalnya, jika Anda mengizinkan akses ke tabel dipartisi, akses ini berlaku untuk semua partisi dalam tabel. Anda tidak dapat membatasi akses ke partisi individu dalam tabel. 
**penting**  
Untuk menjalankan tindakan AWS Glue di partisi, izin untuk tindakan partisi diperlukan di tingkat katalog, database, dan tabel. Memiliki akses ke partisi dalam tabel tidak cukup. Misalnya, untuk berjalan `GetPartitions` di atas tabel `myTable` dalam database`myDB`, Anda harus memberikan `glue:GetPartitions` izin pada katalog, `myDB` database, dan `myTable` sumber daya. 
+ Kontrol akses tidak berlaku untuk versi tabel. Seperti halnya partisi, akses ke versi tabel sebelumnya diberikan melalui akses ke versi tabel APIs di AWS Glue atas meja, dan ke leluhur tabel.

Untuk informasi tentang izin AWS Glue tindakan, lihat Izin [AWS Glue API: Referensi tindakan dan sumber daya di Panduan AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/api-permissions-reference.html) *Pengembang*. 

## Contoh izin database dan tingkat tabel
<a name="examples-fine-grained-table-database-policies"></a>

Tabel berikut mencantumkan contoh kebijakan berbasis identitas IAM yang memungkinkan akses ke database dan tabel di Athena. Kami merekomendasikan bahwa Anda mulai dengan contoh-contoh ini dan, tergantung pada kebutuhan Anda, menyesuaikan mereka untuk mengizinkan atau menolak tindakan tertentu untuk basis data tertentu dan tabel.

Contoh-contoh ini termasuk akses ke database dan katalog sehingga Athena dan dapat bekerja sama. AWS Glue Untuk beberapa AWS Wilayah, sertakan kebijakan serupa untuk setiap database dan katalog Anda, satu baris untuk setiap Wilayah. 

Dalam contoh, ganti `example_db` database dan `test` tabel dengan database dan nama tabel Anda sendiri.


| Pernyataan DDL | Contoh kebijakan akses IAM yang memberikan akses ke sumber daya | 
| --- | --- | 
| ALTER DATABASE | Memungkinkan Anda untuk mengubah properti untukexample\$1dbbasis data.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:UpdateDatabase"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />}</pre> | 
| BUAT BASIS DATA | Memungkinkan Anda untuk membuat basis data bernamaexample\$1db.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:CreateDatabase"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />}<br /></pre> | 
| CREATE TABLE | Memungkinkan Anda untuk membuat tabel bernamatestdiexample\$1dbbasis data.<pre>{<br />   "Sid": "DatabasePermissions",<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase", <br />      "glue:GetDatabases"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db"<br />   ]<br />},<br />{<br />   "Sid": "TablePermissions",<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetTables",<br />      "glue:GetTable",<br />      "glue:GetPartitions",<br />      "glue:CreateTable"<br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db",<br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />   ]<br />}</pre> | 
| DROP DATABASE | Memungkinkan Anda untuk menjatuhkanexample\$1dbdatabase, termasuk semua tabel di dalamnya.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:DeleteDatabase",<br />      "glue:GetTables", <br />      "glue:GetTable", <br />      "glue:DeleteTable" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/*", <br />     "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/example_db/*"<br />   ]<br /> }</pre> | 
| MEJA DROP | Memungkinkan Anda untuk menjatuhkan tabel dipartisi bernamatestdiexample\$1dbbasis data. Jika tabel Anda tidak memiliki partisi, jangan sertakan tindakan partisi.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetTable",<br />      "glue:DeleteTable", <br />      "glue:GetPartitions",<br />      "glue:GetPartition",<br />      "glue:DeletePartition" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />   ]<br /> }</pre> | 
| TABEL PERBAIKAN MSCK | Memungkinkan Anda memperbarui metadata katalog setelah menambahkan partisi kompatibel Hive ke tabel yang disebutkan test dalam database. example\$1db<pre>{<br />    "Effect": "Allow",<br />    "Action": [<br />        "glue:GetDatabase",<br />        "glue:CreateDatabase",<br />        "glue:GetTable",<br />        "glue:GetPartitions",<br />        "glue:GetPartition",<br />        "glue:BatchCreatePartition"<br />    ],<br />    "Resource": [<br />      "arn:aws:glue:us-east-1:123456789012:catalog",<br />      "arn:aws:glue:us-east-1:123456789012:database/example_db", <br />      "arn:aws:glue:us-east-1:123456789012:table/example_db/test"<br />    ]<br />}</pre> | 
| TAMPILKAN DATABASE | Memungkinkan Anda untuk daftar semua basis data di AWS Glue Data Catalog.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetDatabases" <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/*"<br />   ]<br /> }</pre> | 
| TAMPILKAN TABEL | Memungkinkan Anda untuk daftar semua tabel diexample\$1dbbasis data.<pre>{<br />   "Effect": "Allow",<br />   "Action": [<br />      "glue:GetDatabase",<br />      "glue:GetTables"    <br />   ],<br />   "Resource": [<br />     "arn:aws:glue:us-east-1:123456789012:catalog",<br />     "arn:aws:glue:us-east-1:123456789012:database/example_db",  <br />     "arn:aws:glue:us-east-1:123456789012:table/example_db/*"<br />   ]<br />}</pre> | 

# Konfigurasikan akses lintas akun ke katalog AWS Glue data
<a name="security-iam-cross-account-glue-catalog-access"></a>

Anda dapat menggunakan fitur AWS Glue katalog lintas akun Athena untuk mendaftarkan AWS Glue katalog dari akun selain milik Anda. Setelah Anda mengonfigurasi izin IAM yang diperlukan untuk AWS Glue dan daftarkan katalog sebagai Athena[DataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_DataCatalog.html)Sumber daya, 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](data-sources-glue-cross-account.md)

*Untuk informasi selengkapnya tentang akses lintas akun AWS Glue, lihat [Memberikan akses lintas akun di Panduan Pengembang](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html).AWS Glue *

## Sebelum Anda mulai
<a name="security-iam-cross-account-glue-catalog-access-before-you-start"></a>

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](work-with-data-stores.md)- Berisi topik tentang penggunaan Athena dengan AWS Glue, Hive, atau Lambda sumber katalog data.
+ [Contoh kebijakan Katalog Data](datacatalogs-example-policies.md)- Menunjukkan bagaimana menulis kebijakan yang mengontrol akses ke katalog data.
+ [Gunakan AWS CLI metastores with Hive](datastores-hive-cli.md)- Menunjukkan cara menggunakan metastores AWS CLI with Hive, tetapi berisi kasus penggunaan yang berlaku untuk sumber data lainnya.

## Pertimbangan dan batasan
<a name="security-iam-cross-account-glue-catalog-access-considerations-and-limitations"></a>

Saat ini, akses AWS Glue katalog lintas akun Athena memiliki batasan sebagai berikut:
+ Fitur ini hanya tersedia di Wilayah AWS mana mesin Athena versi 2 atau yang lebih baru didukung. Untuk informasi selengkapnya tentang versi mesin Aurora, lihat [Pembuatan versi mesin Athena](engine-versions.md). Untuk memutakhirkan versi engine untuk workgroup, lihat[Ubah versi mesin Athena](engine-versions-changing.md).
+ Ketika 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 menyertakan akun lintas akun AWS Glue katalog tidak didukung.
+ Katalog yang dienkripsi menggunakan kunci AWS 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 terkelola pelanggan dan kunci AWS terkelola, lihat [Kunci dan AWS kunci pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt                     ) di *Panduan AWS Key Management Service Pengembang*. 

## Memulai
<a name="security-iam-cross-account-glue-catalog-getting-started"></a>

Dalam skenario berikut, akun “peminjam” (666666666666) ingin menjalankan `SELECT` kueri yang mengacu pada AWS Glue katalog milik akun “pemilik” (99999999999999), seperti pada contoh berikut:

```
SELECT * FROM ownerCatalog.tpch1000.customer
```

Dalam prosedur berikut, Langkah 1a dan 1b menunjukkan cara memberikan akses akun peminjam ke AWS Glue sumber daya akun pemilik, baik dari sisi peminjam maupun pemilik. Contoh memberikan akses ke database`tpch1000`dan tabel`customer`. Ubah nama contoh ini agar sesuai dengan kebutuhan Anda.

### Langkah 1a: Buat peran peminjam dengan kebijakan untuk mengakses sumber daya pemilik AWS Glue
<a name="security-iam-cross-account-glue-catalog-access-step-1a"></a>

Untuk membuat peran akun peminjam dengan kebijakan untuk mengakses AWS Glue sumber daya akun pemilik, Anda dapat menggunakan konsol AWS Identity and Access Management (IAM) atau API [IAM](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html). Prosedur berikut berlaku jika Anda menggunakan konsol IAM.

**Untuk membuat peran dan kebijakan peminjam untuk mengakses sumber daya akun pemilik AWS Glue**

1. Masuk ke konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)dari akun peminjam.

1. Di panel navigasi, perluas **Manajemen akses**, lalu pilih **Kebijakan**.

1. Pilih **Buat kebijakan**.

1. Untuk **editor Kebijakan**, pilih **JSON**.

1. Di editor kebijakan, masukkan kebijakan berikut, lalu modifikasi sesuai dengan kebutuhan Anda:

------
#### [ JSON ]

****  

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

------

1. Pilih **Berikutnya**.

1. Pada halaman **Tinjau dan buat**, untuk **nama Kebijakan**, masukkan nama untuk kebijakan (misalnya,**CrossGluePolicyForBorrowerRole**).

1. Pilih **Buat kebijakan**.

1. Di panel navigasi, pilih **Peran**.

1. Pilih **Buat peran**.

1. Pada halaman **Pilih entitas tepercaya**, pilih **Akun AWS**, lalu pilih **Berikutnya**.

1. Pada halaman **Tambahkan izin**, masukkan nama kebijakan yang Anda buat ke dalam kotak pencarian (misalnya,**CrossGluePolicyForBorrowerRole**).

1. Pilih kotak centang di samping nama kebijakan, lalu pilih **Berikutnya**.

1. Pada **Nama, tinjau, dan buat**, untuk **Nama peran**, masukkan nama untuk peran (misalnya, **CrossGlueBorrowerRole**).

1. Pilih **Buat peran**.

### Langkah 1b: Buat kebijakan pemilik untuk memberikan AWS Glue akses ke peminjam
<a name="security-iam-cross-account-glue-catalog-access-step-1b"></a>

Untuk memberikan AWS Glue akses dari akun pemilik (99999999999999) ke peran peminjam, Anda dapat menggunakan konsol atau operasi API. AWS Glue AWS Glue [PutResourcePolicy](https://docs.aws.amazon.com/glue/latest/webapi/API_PutResourcePolicy.html) Prosedur berikut menggunakan AWS Glue konsol.

**Untuk memberikan AWS Glue akses ke akun peminjam dari pemilik**

1. Masuk ke AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)dari akun pemilik.

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

1. Di**Izin**, 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.

------
#### [ JSON ]

****  

   ```
   {
       "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 selesai, kami sarankan Anda menggunakan [AWS Glue API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api.html) untuk melakukan beberapa pengujian panggilan lintas akun untuk mengonfirmasi bahwa izin dikonfigurasi seperti yang Anda harapkan.

### Langkah 2: Peminjam mendaftarkan AWS Glue Data Catalog yang menjadi milik akun pemilik
<a name="security-iam-cross-account-glue-catalog-access-step-2"></a>

Prosedur berikut menunjukkan cara menggunakan konsol Athena untuk mengonfigurasi akun Amazon Web Services pemilik sebagai sumber data. AWS Glue Data Catalog Untuk informasi tentang menggunakan operasi API alih-alih konsol untuk mendaftarkan katalog, lihat[(Opsional) Gunakan API untuk mendaftarkan Katalog Data Athena milik akun pemilik](#security-iam-cross-account-glue-catalog-access-step-2-api).

**Untuk mendaftarkan AWS Glue Data Catalog milik akun lain**

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Jika panel navigasi konsol tidak terlihat, pilih menu ekspansi di sebelah kiri.  
![\[Pilih menu ekspansi.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/nav-pane-expansion.png)

1. Perluas **Administrasi**, lalu pilih **Sumber data**.

1. Di kanan atas, pilih **Buat sumber data**.

1. Pada halaman **Pilih sumber data**, untuk **Sumber data**, pilih **S3 - AWS Glue Data Catalog**, lalu pilih **Berikutnya**.

1. Pada halaman **Masukkan detail sumber data**, di **AWS Glue Data Catalog**bagian, untuk **Pilih AWS Glue Data Catalog**, pilih **AWS Glue Data Catalog di akun lain**.

1. Untuk **detail sumber data**, masukkan informasi berikut:
   + **Nama sumber data** — Masukkan nama yang ingin Anda gunakan dalam kueri SQL Anda 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.

1. (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](tags.md).

1. Pilih **Berikutnya**.

1. 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.

1. Pilih **Sumber data dan katalog**. Katalog data yang Anda daftarkan tercantum di kolom **Nama sumber data**.

1. Untuk melihat atau mengedit informasi tentang katalog data, pilih katalog, lalu pilih **Tindakan**, **Edit**.

1. Untuk menghapus katalog data baru, pilih katalog, lalu pilih **Tindakan**, **Hapus**.

### Langkah 3: Peminjam mengirimkan kueri
<a name="security-iam-cross-account-glue-catalog-access-step-4"></a>

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](https://docs.aws.amazon.com/athena/latest/APIReference/API_QueryExecutionContext.html)

## (Opsional) Konfigurasikan izin Amazon S3 tambahan
<a name="security-iam-cross-account-glue-catalog-access-additional-s3-permissions"></a>
+ 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.
+ Operasi lintas akun DDL tertentu seperti [MSCK REPAIR TABLE](msck-repair-table.md) 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 menyetel izin bucket ACL?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/set-bucket-permissions.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

## (Opsional) Gunakan katalog secara dinamis
<a name="security-iam-cross-account-glue-catalog-access-dynamic-catalogs"></a>

Dalam beberapa kasus Anda mungkin ingin cepat melakukan pengujian terhadap lintas akun AWS Glue katalog tanpa langkah prasyarat mendaftarkannya. Anda dapat secara dinamis melakukan cross-akun kueri tanpa membuat`DataCatalog`objek sumber daya jika izin IAM dan Amazon S3 yang diperlukan 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:<arn>`“, tempat`<arn>`adalah[AWS Glue Data Catalog ARN](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#data-catalog-resource-arns)yang ingin Anda gunakan. Dalam contoh, Athena menggunakan sintaks ini untuk secara dinamis menunjuk ke katalog AWS Glue data akun 999999999999 seolah-olah Anda telah membuat objek secara terpisah untuk itu. `DataCatalog`

### Catatan untuk menggunakan katalog dinamis
<a name="security-iam-cross-account-glue-catalog-access-notes-dynamic-catalogs"></a>

Jika Anda menggunakan katalog dinamis, ingat poin-poin berikut.
+ Penggunaan Katalog dinamis memerlukan izin IAM yang biasanya Anda gunakan untuk operasi API Katalog Data Athena. Perbedaan utama adalah bahwa nama sumber daya Katalog Data mengikuti`glue:*`Konvensi penamaan.
+ Katalog ARN harus milik Wilayah yang sama tempat kueri sedang dijalankan.
+ Jika menggunakan katalog dinamis dalam kueri DDLL atau tampilan, mengelilinginya dengan lolos tanda kutip ganda (`\"`). Jika menggunakan katalog dinamis dalam kueri DDL, mengelilingi dengan karakter backtick (```).

## (Opsional) Gunakan API untuk mendaftarkan Katalog Data Athena milik akun pemilik
<a name="security-iam-cross-account-glue-catalog-access-step-2-api"></a>

Alih-alih menggunakan konsol Athena seperti yang dijelaskan pada Langkah 2, Anda dapat menggunakan operasi API untuk mendaftarkan Katalog Data milik akun pemilik.

Pembuat [DataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_DataCatalog.html)sumber daya Athena harus memiliki izin yang diperlukan untuk menjalankan operasi API Athena. [CreateDataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html) Tergantung pada kebutuhan Anda, akses ke operasi API tambahan mungkin diperlukan. Untuk informasi selengkapnya, lihat [Contoh kebijakan Katalog Data](datacatalogs-example-policies.md).

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 membuat`DataCatalog`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 akan melihat `ownerCatalog` kapan memanggil operasi [ListDataCatalogs](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDataCatalogs.html)API.

## Sumber daya tambahan
<a name="security-iam-cross-account-glue-catalog-access-additional-resources"></a>
+ [Daftarkan Katalog Data dari akun lain](data-sources-glue-cross-account.md)
+ [Konfigurasikan akses lintas akun ke berbagi AWS Glue Data Catalog menggunakan Amazon](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html) Athena dalam AWS panduan Pola Panduan *Preskriptif*.
+ [Kueri lintas akun AWS Glue Data Catalog menggunakan Amazon](https://aws.amazon.com/blogs/big-data/query-cross-account-aws-glue-data-catalogs-using-amazon-athena/) Athena di Blog Big *AWS Data*
+ [Memberikan akses lintas akun di Panduan](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html) *Pengembang AWS Glue * 

# Konfigurasikan akses dari Athena ke metadata terenkripsi di AWS Glue Data Catalog
<a name="access-encrypted-data-glue-data-catalog"></a>

Jika Anda menggunakan AWS Glue Data Catalog dengan Amazon Athena, Anda dapat mengaktifkan enkripsi di AWS Glue Data Catalog menggunakan AWS Glue konsol atau API. Untuk selengkapnya, lihat [Mengenkripsi katalog data Anda](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) di Panduan *AWS Glue Pengembang*.

Jika AWS Glue Data Catalog dienkripsi, Anda harus menambahkan tindakan berikut ke semua kebijakan yang digunakan untuk mengakses Athena:

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

# Konfigurasikan akses ke grup kerja dan tag
<a name="workgroups-access"></a>

Grup kerja adalah sumber daya yang dikelola oleh Athena. Oleh karena itu, jika kebijakan grup kerja Anda menggunakan tindakan yang mengambil`workgroup`sebagai masukan, Anda harus menentukan ARN grup kerja sebagai berikut, tempat`workgroup-name`adalah nama grup kerja Anda:

```
"Resource": [arn:aws:athena:region:AWSAcctID:workgroup/workgroup-name]
```

Misalnya, untuk grup kerja bernama`test_workgroup`di`us-west-2`Wilayah untuk akun Amazon Web Services`123456789012`, menentukan grup kerja sebagai sumber daya yang menggunakan ARN berikut:

```
"Resource":["arn:aws:athena:us-east-2:123456789012:workgroup/test_workgroup"]
```

Untuk mengakses grup kerja yang diaktifkan propagasi identitas tepercaya (TIP), pengguna IAM Identity Center harus ditetapkan ke `IdentityCenterApplicationArn` yang dikembalikan oleh respons tindakan API Athena. [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)
+ Untuk daftar kebijakan grup kerja, lihat[Contoh kebijakan workgroup](example-policies-workgroup.md).
+ Untuk daftar kebijakan berbasis tanda untuk grup kerja, lihat[Gunakan kebijakan kontrol akses IAM berbasis tag](tags-access-control.md).
+ Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk grup kerja, lihat [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md).
+ Untuk daftar lengkap tindakan Amazon Athena, lihat nama tindakan API di[Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). 
+ Untuk informasi selengkapnya tentang kebijakan IAM, lihat [Membuat kebijakan dengan editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) di *Panduan Pengguna IAM*. 

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

# Menggunakan kebijakan IAM untuk mengontrol akses workgroup
<a name="workgroups-iam-policy"></a>

Untuk mengontrol akses ke grup kerja, gunakan izin IAM tingkat sumber daya atau kebijakan IAM berbasis identitas. Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

**catatan**  
Untuk mengakses grup kerja yang diaktifkan propagasi identitas tepercaya, pengguna IAM Identity Center harus ditetapkan ke `IdentityCenterApplicationArn` yang dikembalikan oleh respons tindakan API Athena. [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)

Prosedur berikut khusus untuk Athena. 

Untuk informasi khusus IAM, lihat tautan yang tercantum di akhir bagian ini. Untuk informasi tentang contoh kebijakan grup kerja JSON, lihat. [Contoh kebijakan workgroup](example-policies-workgroup.md)

**Untuk menggunakan editor visual di konsol IAM untuk membuat kebijakan workgroup**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi yang ada di sebelah kiri, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pada tab **Editor visual**, pilih **Pilih layanan**. Pilih Athena untuk ditambahkan ke kebijakan.

1. Pilih **Pilih tindakan**, kemudian pilih tindakan untuk ditambahkan ke kebijakan. Editor visual menunjukkan tindakan yang tersedia di Athena. Untuk informasi selengkapnya, lihat [Kunci tindakan, sumber daya, dan kondisi untuk Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) di Referensi *Otorisasi Layanan*.

1. Pilih **tambahkan tindakan**untuk mengetik tindakan tertentu atau gunakan wildcard (\$1) untuk menentukan beberapa tindakan. 

   Secara default, kebijakan yang Anda buat mengizinkan tindakan yang Anda pilih. Jika Anda memilih satu atau lebih tindakan yang mendukung izin level sumber daya ke sumber daya `workgroup` di Athena, editor akan mencantumkan sumber daya `workgroup` tersebut. 

1. Pilih **Sumber daya** untuk menentukan grup kerja tertentu untuk kebijakan Anda. Misalnya kebijakan grup kerja JSON, lihat. [Contoh kebijakan workgroup](example-policies-workgroup.md)

1. Tentukan sumber daya `workgroup` sebagai berikut:

   ```
   arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>
   ```

1. Pada halaman **Tinjau kebijakan**, ketik **Nama** dan **Deskripsi** (opsional) untuk kebijakan yang Anda buat. Tinjau ringkasan kebijakan untuk memastikan bahwa Anda memberikan izin yang dimaksud. 

1. Pilih **Buat kebijakan** untuk menyimpan kebijakan baru Anda.

1. Lampirkan kebijakan berbasis identitas ini ke pengguna, grup, atau peran.

Untuk informasi selengkapnya, lihat topik berikut di *Referensi Otorisasi Layanan* dan *Panduan Pengguna IAM:*
+  [Tindakan, sumber daya, dan kunci kondisi untuk Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html) 
+  [Membuat kebijakan dengan editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) 
+  [Menambahkan dan menghapus kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 
+  [Mengontrol akses ke sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources) 

Misalnya kebijakan grup kerja JSON, lihat. [Contoh kebijakan workgroup](example-policies-workgroup.md)

Untuk daftar lengkap tindakan Amazon Athena, lihat nama tindakan API di[Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). 

# Contoh kebijakan workgroup
<a name="example-policies-workgroup"></a>

Bagian ini mencakup contoh kebijakan yang dapat Anda gunakan untuk mengaktifkan berbagai tindakan pada kelompok kerja. Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Workgroup adalah sumber daya IAM yang dikelola oleh Athena. Oleh karena itu, jika kebijakan workgroup Anda menggunakan tindakan yang diambil `workgroup` sebagai input, Anda harus menentukan ARN workgroup sebagai berikut:

```
"Resource": [arn:aws:athena:<region>:<user-account>:workgroup/<workgroup-name>]
```

`<workgroup-name>`Dimana nama workgroup Anda. Misalnya, untuk kelompok kerja bernama`test_workgroup`, tentukan sebagai sumber daya sebagai berikut:

```
"Resource": ["arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"]
```

Untuk daftar lengkap tindakan Amazon Athena, lihat nama tindakan API di[Referensi API Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Untuk informasi selengkapnya tentang kebijakan IAM, lihat [Membuat kebijakan dengan editor visual](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor) di *Panduan Pengguna IAM*. Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk grup kerja, lihat [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md).
+  [Example policy for full access to all workgroups](#example1-full-access-all-wkgs) 
+  [Example policy for full access to a specified workgroup](#example2-full-access-this-wkg) 
+  [Example policy for running queries in a specified workgroup](#example3-user-access) 
+  [Example policy for running queries in the primary workgroup](#example4-run-in-primary-access) 
+  [Example policy for management operations on a specified workgroup](#example5-manage-wkgs-access) 
+  [Example policy for listing workgroups](#example6-list-all-wkgs-access) 
+  [Example policy for running and stopping queries in a specific workgroup](#example7-run-queries-access) 
+  [Example policy for working with named queries in a specific workgroup](#example8-named-queries-access) 
+  [Example policy for working with Spark notebooks](#example9-spark-workgroup) 

**Example Contoh kebijakan untuk akses penuh ke semua kelompok kerja**  
Kebijakan berikut memungkinkan akses penuh ke semua sumber daya grup kerja yang mungkin ada di akun. Kami menyarankan Anda menggunakan kebijakan ini untuk pengguna di akun Anda yang harus mengelola dan mengelola grup kerja untuk semua pengguna lain.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk akses penuh ke workgroup tertentu**  
Kebijakan berikut memungkinkan akses penuh ke satu sumber daya grup kerja tertentu, yang diberi nama`workgroupA`. Anda dapat menggunakan kebijakan ini untuk pengguna dengan kontrol penuh atas grup kerja tertentu.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions",
                "athena:ListWorkGroups",
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:GetDatabase",
                "athena:ListTableMetadata",
                "athena:GetTableMetadata"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:BatchGetQueryExecution",
                "athena:GetQueryExecution",
                "athena:ListQueryExecutions",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution",
                "athena:GetQueryResults",
                "athena:GetQueryResultsStream",
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:BatchGetNamedQuery",
                "athena:ListNamedQueries",
                "athena:DeleteNamedQuery",
                "athena:CreatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:ListPreparedStatements",
                "athena:UpdatePreparedStatement",
                "athena:DeletePreparedStatement"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:DeleteWorkGroup",
                "athena:UpdateWorkGroup",
                "athena:GetWorkGroup",
                "athena:CreateWorkGroup"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk menjalankan kueri di workgroup tertentu**  
Dalam kebijakan berikut, pengguna diizinkan untuk menjalankan kueri dalam yang ditentukan`workgroupA`, dan melihatnya. Pengguna tidak diperbolehkan melakukan tugas manajemen untuk workgroup itu sendiri, seperti memperbarui atau menghapusnya. Perhatikan bahwa kebijakan contoh tidak membatasi pengguna hanya pada grup kerja ini atau menolak akses ke grup kerja lain.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions",
                "athena:ListWorkGroups",
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:GetDatabase",
                "athena:ListTableMetadata",
                "athena:GetTableMetadata"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:GetWorkGroup", 
                "athena:BatchGetQueryExecution",
                "athena:GetQueryExecution",
                "athena:ListQueryExecutions",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution",
                "athena:GetQueryResults",
                "athena:GetQueryResultsStream",
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:BatchGetNamedQuery",
                "athena:ListNamedQueries",
                "athena:DeleteNamedQuery",
                "athena:CreatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:ListPreparedStatements",
                "athena:UpdatePreparedStatement",
                "athena:DeletePreparedStatement"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA"
            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk menjalankan kueri di workgroup utama**  
Anda dapat memodifikasi contoh sebelumnya untuk memungkinkan pengguna tertentu juga menjalankan kueri di workgroup utama.   
Sebaiknya Anda menambahkan sumber daya workgroup utama untuk semua pengguna yang dikonfigurasi untuk menjalankan kueri di grup kerja yang ditunjuk. Menambahkan sumber daya ini ke kebijakan pengguna grup kerja mereka berguna jika grup kerja yang ditunjuk dihapus atau dinonaktifkan. Dalam hal ini, mereka dapat terus menjalankan kueri di workgroup utama.
Untuk mengizinkan pengguna di akun Anda menjalankan kueri di grup kerja utama, tambahkan baris yang berisi ARN grup kerja utama ke bagian sumber daya[Example policy for running queries in a specified workgroup](#example3-user-access), seperti pada contoh berikut.  

```
arn:aws:athena:us-east-1:123456789012:workgroup/primary"
```

**Example Contoh kebijakan untuk operasi manajemen pada workgroup tertentu**  
Dalam kebijakan berikut, pengguna diizinkan untuk membuat, menghapus, memperoleh detail, dan memperbarui grup kerja`test_workgroup`.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListEngineVersions"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "athena:CreateWorkGroup",
                "athena:GetWorkGroup",
                "athena:DeleteWorkGroup",
                "athena:UpdateWorkGroup"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"
            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk daftar kelompok kerja**  
Kebijakan berikut memungkinkan semua pengguna untuk mencantumkan semua grup kerja:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListWorkGroups"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example Contoh kebijakan untuk menjalankan dan menghentikan kueri di grup kerja tertentu**  
Dalam kebijakan ini, pengguna diizinkan untuk menjalankan kueri di grup kerja:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"
            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk bekerja dengan kueri bernama dalam kelompok kerja tertentu**  
Dalam kebijakan berikut, pengguna memiliki izin untuk membuat, menghapus, dan memperoleh informasi tentang kueri bernama di grup kerja yang ditentukan:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:CreateNamedQuery",
                "athena:GetNamedQuery",
                "athena:DeleteNamedQuery"
            ],
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/test_workgroup"            ]
        }
    ]
}
```

**Example Contoh kebijakan untuk bekerja dengan notebook Spark di Athena**  
Gunakan kebijakan seperti berikut ini untuk bekerja dengan notebook Spark di Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreatingWorkGroupWithDefaults",
            "Action": [
                "athena:CreateWorkGroup",
                "s3:CreateBucket",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy",
                "s3:GetBucketLocation",
                "athena:ImportNotebook"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*",
                "arn:aws:s3:::123456789012-us-east-1-athena-results-bucket-*",
                "arn:aws:iam::123456789012:role/service-role/AWSAthenaSparkExecutionRole-*",
                "arn:aws:iam::123456789012:policy/service-role/AWSAthenaSparkRolePolicy-*"
            ]
        },
        {
            "Sid": "AllowRunningCalculations",
            "Action": [
                "athena:ListWorkGroups",
                "athena:GetWorkGroup",
                "athena:StartSession",
                "athena:CreateNotebook",
                "athena:ListNotebookMetadata",
                "athena:ListNotebookSessions",
                "athena:GetSessionStatus",
                "athena:GetSession",
                "athena:GetNotebookMetadata",
                "athena:CreatePresignedNotebookUrl"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/Demo*"
        },
        {
            "Sid": "AllowListWorkGroupAndEngineVersions",
            "Action": [
                "athena:ListWorkGroups",
                "athena:ListEngineVersions"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

# Gunakan grup kerja Athena yang diaktifkan Pusat Identitas IAM
<a name="workgroups-identity-center"></a>

[Propagasi identitas tepercaya](https://docs.aws.amazon.com//singlesignon/latest/userguide/trustedidentitypropagation-overview.html) adalah AWS IAM Identity Center fitur yang Layanan AWS dapat digunakan oleh administrator terhubung untuk memberikan dan mengaudit akses ke data layanan. Akses ke data ini didasarkan pada atribut pengguna seperti asosiasi grup. Menyiapkan propagasi identitas tepercaya memerlukan kolaborasi antara administrator yang terhubung Layanan AWS dan administrator Pusat Identitas IAM. Untuk informasi lebih lanjut, lihat [Prasyarat](https://docs.aws.amazon.com//singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html) dan pertimbangan.

Dengan [IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html), Anda dapat mengelola keamanan masuk untuk identitas tenaga kerja Anda, juga dikenal sebagai pengguna tenaga kerja. IAM Identity Center menyediakan satu tempat di mana Anda dapat membuat atau menghubungkan pengguna tenaga kerja dan mengelola akses mereka secara terpusat di semua AWS akun dan aplikasi mereka. Anda dapat menggunakan izin multi-akun untuk menetapkan akses pengguna ini. Akun AWS Anda dapat menggunakan penugasan aplikasi untuk menetapkan akses pengguna ke aplikasi yang diaktifkan IAM Identity Center, aplikasi cloud, dan aplikasi Customer Security Assertion Markup Language (SAFL 2.0). Untuk informasi selengkapnya, lihat [Propagasi identitas tepercaya di seluruh aplikasi](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation.html) di *Panduan AWS IAM Identity Center Pengguna*.

Dukungan Athena SQL untuk propagasi identitas tepercaya tersedia di EMR Studio dan Unified Studio. SageMaker Setiap platform menyediakan antarmuka khusus untuk menggunakan TIP dengan Athena. 

Saat menggunakan Athena SQL di EMR Studio dengan identitas IAM Identity Center, Anda memiliki dua opsi workgroup:
+ **Reguler WorkGroups** - Tidak diperlukan tugas pengguna/grup.
+ **Kelompok kerja yang diaktifkan IAM Identity Center** — Memerlukan penetapan users/groups melalui konsol IAM Identity Center atau API.

Untuk kedua opsi, Anda dapat menjalankan kueri menggunakan antarmuka Athena SQL di EMR Studio dengan IAM Identity Center diaktifkan. 

## Pertimbangan dan batasan
<a name="workgroups-identity-center-considerations-and-limitations"></a>

Saat Anda menggunakan propagasi identitas Tepercaya dengan Amazon Athena, pertimbangkan hal-hal berikut:
+ Anda tidak dapat mengubah metode otentikasi untuk workgroup setelah workgroup dibuat.
  + Workgroup Athena SQL yang ada tidak dapat dimodifikasi untuk mendukung grup kerja yang diaktifkan IAM Identity Center. Workgroup Athena SQL yang ada dapat menyebarkan identitas ke layanan hilir.
  + Kelompok kerja yang diaktifkan IAM Identity Center tidak dapat dimodifikasi untuk mendukung izin IAM tingkat sumber daya atau kebijakan IAM berbasis identitas.
+ Untuk mengakses grup kerja yang diaktifkan propagasi identitas Tepercaya, pengguna IAM Identity Center harus ditetapkan ke `IdentityCenterApplicationArn` yang dikembalikan oleh respons tindakan API Athena. [GetWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetWorkGroup.html)
+ Hibah Akses Amazon S3 harus dikonfigurasi untuk menggunakan identitas propagasi identitas tepercaya. Untuk informasi selengkapnya, lihat [Hibah Akses S3 dan identitas direktori perusahaan di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-directory-ids.html) Pengguna *Amazon* S3.
+ Kelompok kerja Athena yang mengaktifkan Pusat Identitas IAM mengharuskan Lake Formation dikonfigurasi untuk menggunakan identitas Pusat Identitas IAM. Untuk informasi konfigurasi, lihat [Mengintegrasikan Pusat Identitas IAM](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) di Panduan *AWS Lake Formation Pengembang*.
+ Secara default, waktu kueri habis setelah 30 menit di IAM Identity Center mengaktifkan grup kerja. Anda dapat meminta peningkatan batas waktu kueri, tetapi maksimum kueri dapat dijalankan di grup kerja propagasi identitas tepercaya adalah satu jam. 
+ Perubahan hak pengguna atau grup dalam kelompok kerja propagasi identitas tepercaya dapat memerlukan waktu hingga satu jam untuk diterapkan.
+ Kueri di workgroup Athena yang menggunakan propagasi identitas Tepercaya tidak dapat dijalankan langsung dari konsol Athena. Mereka harus dijalankan dari antarmuka Athena di EMR Studio yang mengaktifkan IAM Identity Center. *Untuk informasi selengkapnya tentang penggunaan Athena di EMR Studio, lihat Menggunakan [editor SQL Amazon Athena di EMR Studio di Panduan Manajemen EMR Amazon](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-athena.html).*
+ Perbanyakan identitas tepercaya tidak kompatibel dengan fitur Athena berikut.
  + `aws:CalledVia`kunci konteks untuk grup kerja yang diaktifkan Pusat Identitas IAM.
  + Athena untuk kelompok kerja Spark.
  + Akses federasi ke Athena API.
  + Akses federasi ke Athena menggunakan Lake Formation dan Athena JDBC dan ODBC driver.
+ Anda dapat menggunakan propagasi identitas Tepercaya dengan Athena hanya dalam hal berikut: Wilayah AWS
  + `us-east-2`— AS Timur (Ohio)
  + `us-east-1`- AS Timur (Virginia N.)
  + `us-west-1`— AS Barat (California N.)
  + `us-west-2`— AS Barat (Oregon)
  + `af-south-1`— Afrika (Cape Town)
  + `ap-east-1`— Asia Pasifik (Hong Kong)
  + `ap-southeast-3`— Asia Pasifik (Jakarta)
  + `ap-south-1`— Asia Pasifik (Mumbai)
  + `ap-northeast-3`— Asia Pasifik (Osaka)
  + `ap-northeast-2`- Asia Pasifik (Seoul)
  + `ap-southeast-1`— Asia Pasifik (Singapura)
  + `ap-southeast-2`— Asia Pasifik (Sydney)
  + `ap-northeast-1`— Asia Pasifik (Tokyo)
  + `ca-central-1`— Kanada (Tengah)
  + `eu-central-1`— Eropa (Frankfurt)
  + `eu-central-2`— Eropa (Zurich)
  + `eu-west-1`— Eropa (Irlandia)
  + `eu-west-2`— Eropa (London)
  + `eu-south-1`— Eropa (Milan)
  + `eu-west-3`- Eropa (Paris)
  + `eu-north-1`— Eropa (Stockholm)
  + `me-south-1`- Timur Tengah (Bahrain)
  + `sa-east-1`— Amerika Selatan (São Paulo)

## Izin yang diperlukan
<a name="workgroups-identity-center-required-permissions"></a>

Pengguna IAM dari admin yang membuat grup kerja yang diaktifkan Pusat Identitas IAM di konsol Athena harus memiliki kebijakan berikut yang dilampirkan.
+ Kebijakan yang `AmazonAthenaFullAccess` dikelola. Lihat perinciannya di [AWS kebijakan terkelola: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy).
+ Kebijakan inline berikut yang memungkinkan tindakan IAM dan IAM Identity Center:

------
#### [ JSON ]

****  

  ```
  { "Version":"2012-10-17",		 	 	  "Statement": [ { "Action": [ "iam:createRole",
      "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "identitystore:ListUsers",
      "identitystore:ListGroups", "identitystore:CreateUser", "identitystore:CreateGroup",
      "sso:ListInstances", "sso:CreateInstance", "sso:DeleteInstance", "sso:ListTrustedTokenIssuers",
      "sso:DescribeTrustedTokenIssuer", "sso:ListApplicationAssignments",
      "sso:DescribeRegisteredRegions", "sso:GetManagedApplicationInstance",
      "sso:GetSharedSsoConfiguration", "sso:PutApplicationAssignmentConfiguration",
      "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationGrant",
      "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAccessScope",
      "sso:ListDirectoryAssociations", "sso:CreateApplicationAssignment",
      "sso:DeleteApplicationAssignment", "organizations:ListDelegatedAdministrators",
      "organizations:DescribeAccount", "organizations:DescribeOrganization",
      "organizations:CreateOrganization", "sso-directory:SearchUsers", "sso-directory:SearchGroups",
      "sso-directory:CreateUser" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [
      "iam:PassRole" ], "Effect": "Allow", "Resource": [
          "arn:aws:iam::111122223333:role/service-role/AWSAthenaSQLRole-*"
      ] } ] }
  ```

------

## Membuat Pusat Identitas IAM mengaktifkan workgroup Athena
<a name="workgroups-identity-center-creating-an-identity-center-enabled-athena-workgroup"></a>

Prosedur berikut menunjukkan langkah-langkah dan opsi yang terkait dengan membuat grup kerja Athena yang diaktifkan Pusat Identitas IAM. Untuk deskripsi opsi konfigurasi lain yang tersedia untuk kelompok kerja Athena, lihat. [Buat grup kerja](creating-workgroups.md)

**Untuk membuat workgroup yang diaktifkan SSO di konsol Athena**

1. Buka konsol Athena di [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. **Di panel navigasi konsol Athena, pilih Workgroups.**

1. Pada **Grup Kerja**, pilih **Buat grup kerja**.

1. Pada halaman **Buat workgroup**, untuk **nama Workgroup**, masukkan nama untuk workgroup.

1. Untuk **mesin Analytics**, gunakan default **Athena SQL**.

1. Untuk **Otentikasi**, pilih Pusat **Identitas IAM**.

1. Untuk **peran Layanan untuk akses Pusat Identitas IAM**, pilih peran layanan yang ada, atau buat yang baru.

   Athena memerlukan izin untuk mengakses Pusat Identitas IAM untuk Anda. Peran layanan diperlukan bagi Athena untuk melakukan ini. Peran layanan adalah peran IAM yang Anda kelola yang mengizinkan AWS layanan untuk mengakses AWS layanan lain atas nama Anda. Untuk menanyakan katalog gabungan atau menjalankan UDF, perbarui peran layanan dengan izin Lambda yang sesuai. Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*.

1. Perluas **konfigurasi hasil Kueri**, lalu masukkan atau pilih jalur Amazon S3 untuk **Lokasi hasil kueri**.

1. (Opsional) Pilih **Enkripsi hasil kueri**. Secara default, SSE-S3 didukung. Untuk menggunakan SSE-KMS dan CSE-KMS dengan lokasi hasil kueri, berikan hibah ke **peran Layanan untuk Pusat Identitas IAM** dari Amazon S3 Access Grants. Untuk informasi selengkapnya, lihat [Contoh kebijakan peran](#workgroups-identity-center-access-grant-location-sample-role-policy).

1. (Opsional) Pilih **Buat awalan S3 berbasis identitas pengguna**.

   Saat Anda membuat grup kerja yang diaktifkan Pusat Identitas IAM, opsi **Aktifkan Hibah Akses S3** dipilih secara default. Anda dapat menggunakan Amazon S3 Access Grants untuk mengontrol akses ke lokasi hasil kueri Athena (awalan) di Amazon S3. Untuk informasi selengkapnya tentang Hibah Akses Amazon S3, lihat [Mengelola akses dengan Hibah Akses Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

   Di grup kerja Athena yang menggunakan autentikasi Pusat Identitas IAM, Anda dapat mengaktifkan pembuatan lokasi hasil kueri berbasis identitas yang diatur oleh Hibah Akses Amazon S3. Awalan Amazon S3 berbasis identitas pengguna ini memungkinkan pengguna di workgroup Athena menjaga hasil kueri mereka terisolasi dari pengguna lain di workgroup yang sama.

   Saat Anda mengaktifkan opsi awalan pengguna, Athena menambahkan ID pengguna sebagai awalan jalur Amazon S3 ke lokasi keluaran hasil kueri untuk grup kerja (misalnya,). `s3://amzn-s3-demo-bucket/${user_id}` Untuk menggunakan fitur ini, Anda harus mengkonfigurasi Access Grants untuk mengizinkan hanya izin pengguna ke lokasi yang memiliki `user_id` awalan. Untuk contoh kebijakan peran lokasi Amazon S3 Access Grants yang membatasi akses ke hasil kueri Athena, lihat. [Contoh kebijakan peran](#workgroups-identity-center-access-grant-location-sample-role-policy) 
**catatan**  
Memilih opsi awalan identitas pengguna S3 secara otomatis memungkinkan opsi penggantian pengaturan sisi klien untuk grup kerja, seperti yang dijelaskan pada langkah berikutnya. Opsi override setelan sisi klien adalah persyaratan untuk fitur awalan identitas pengguna.

1. Perluas **Pengaturan**, lalu konfirmasikan bahwa **Override pengaturan sisi klien dipilih**.

   Saat Anda memilih **Ganti setelan sisi klien, pengaturan** workgroup diberlakukan di tingkat workgroup untuk semua klien di workgroup. Untuk informasi selengkapnya, lihat [Ganti pengaturan sisi klien](workgroups-settings-override.md).

1. (Opsional) Buat pengaturan konfigurasi lain yang Anda perlukan seperti yang dijelaskan dalam[Buat grup kerja](creating-workgroups.md).

1. Pilih **Buat grup kerja**.

1. Gunakan bagian **Workgroups** pada konsol Athena untuk menetapkan pengguna atau grup dari direktori Pusat Identitas IAM Anda ke grup kerja Athena yang diaktifkan Pusat Identitas IAM Anda.

## Contoh kebijakan peran
<a name="workgroups-identity-center-access-grant-location-sample-role-policy"></a>

Contoh berikut menunjukkan kebijakan untuk peran yang akan dilampirkan ke lokasi Amazon S3 Access Grant yang membatasi akses ke hasil kueri Athena. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Condition": {
                "ArnNotEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringNotEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Deny",
            "Resource": "*",
            "Sid": "ExplicitDenyS3"
        },
        {
            "Action": [
                "kms:*"
            ],
            "Effect": "Deny",
            "NotResource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}",
            "Sid": "ExplictDenyKMS"
        },
        {
            "Action": [
                "s3:ListMultipartUploadParts",
                "s3:GetObject"
            ],
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*",
            "Sid": "ObjectLevelReadPermissions"
        },
        {
            "Action": [
                "s3:PutObject",
                "s3:AbortMultipartUpload"
            ],
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                "aws:ResourceAccount": "111122223333"
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION/${identitystore:UserId}/*",
            "Sid": "ObjectLevelWritePermissions"
        },
        {
            "Action": "s3:ListBucket",
            "Condition": {
                "ArnEquals": {
                    "s3:AccessGrantsInstanceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                },
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                },
                "StringLikeIfExists": {
                    "s3:prefix": [
                        "${identitystore:UserId}",
                        "${identitystore:UserId}/*"
                    ]
                }
            },
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::ATHENA-QUERY-RESULT-LOCATION",
            "Sid": "BucketLevelReadPermissions"
        },
        {
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/${keyid}",
            "Sid": "KMSPermissions"
        }
    ]
}
```

------

# Konfigurasikan enkripsi minimum untuk grup kerja
<a name="workgroups-minimum-encryption"></a>

Sebagai administrator workgroup Athena SQL, Anda dapat menerapkan tingkat enkripsi minimal di Amazon S3 untuk semua hasil kueri dari workgroup. Anda dapat menggunakan fitur ini untuk memastikan bahwa hasil kueri tidak pernah disimpan dalam bucket Amazon S3 dalam status tidak terenkripsi.

Ketika pengguna dalam grup kerja dengan enkripsi minimum diaktifkan mengirimkan kueri, mereka hanya dapat mengatur enkripsi ke tingkat minimum yang Anda konfigurasikan, atau ke tingkat yang lebih tinggi jika tersedia. Athena mengenkripsi hasil kueri pada tingkat yang ditentukan saat pengguna menjalankan kueri atau pada tingkat yang ditetapkan dalam workgroup.

Level berikut tersedia:
+ **Dasar** **- Enkripsi sisi server Amazon S3 dengan kunci terkelola Amazon S3 (SSE\$1S3).**
+ **Menengah** - Enkripsi Sisi Server dengan kunci terkelola KMS (**SSE\$1KMS**).
+ **Advanced** - Enkripsi sisi klien dengan kunci terkelola KMS (**CSE\$1KMS**).

## Pertimbangan dan batasan
<a name="workgroups-minimum-encryption-considerations-and-limitations"></a>
+ Fitur enkripsi minimum tidak tersedia untuk grup kerja yang diaktifkan Apache Spark.
+ Fitur enkripsi minimum hanya berfungsi jika workgroup tidak mengaktifkan opsi **[Override setelan sisi klien](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)**.
+ Jika workgroup mengaktifkan opsi **Override setelan sisi klien, setelan** enkripsi workgroup akan berlaku, dan setelan enkripsi minimum tidak berpengaruh.
+ Tidak ada biaya untuk mengaktifkan fitur ini.

## Aktifkan enkripsi minimum untuk grup kerja
<a name="workgroups-minimum-encryption-enabling"></a>

Anda dapat mengaktifkan tingkat enkripsi minimum untuk hasil kueri dari workgroup Athena SQL saat Anda membuat atau memperbarui workgroup. Untuk melakukan ini, Anda dapat menggunakan konsol Athena, Athena API, atau. AWS CLI

### Gunakan konsol Athena untuk mengaktifkan enkripsi minimum
<a name="workgroups-minimum-encryption-enabling-using-the-athena-console"></a>

Untuk mulai membuat atau mengedit grup kerja menggunakan konsol Athena, [lihat Membuat](https://docs.aws.amazon.com/athena/latest/ug/workgroups-create-update-delete.html#creating-workgroups) grup kerja [atau](https://docs.aws.amazon.com/athena/latest/ug/workgroups-create-update-delete.html#editing-workgroups) Mengedit grup kerja. Saat mengonfigurasi workgroup Anda, gunakan langkah-langkah berikut untuk mengaktifkan enkripsi minimum.

**Untuk mengonfigurasi tingkat enkripsi minimum untuk hasil kueri grup kerja**

1. Hapus **opsi Ganti pengaturan sisi klien**, atau verifikasi bahwa itu tidak dipilih.

1. Pilih opsi **Enkripsi hasil kueri**.

1. ****Untuk **jenis Enkripsi**, pilih metode enkripsi yang ingin Athena gunakan untuk hasil kueri grup kerja Anda (**SSE\$1S3, SSE\$1KMS, atau CSE\$1KMS**).**** Jenis enkripsi ini sesuai dengan tingkat keamanan dasar, menengah, dan lanjutan.

1. Untuk menerapkan metode enkripsi yang Anda pilih sebagai tingkat enkripsi minimum untuk semua pengguna, pilih **Tetapkan *encryption\$1method* sebagai enkripsi minimum**.

   Saat Anda memilih opsi ini, tabel menunjukkan hierarki enkripsi dan tingkat enkripsi yang akan diizinkan pengguna saat jenis enkripsi yang Anda pilih menjadi minimum.

1. **Setelah Anda membuat workgroup atau memperbarui konfigurasi workgroup Anda, pilih **Buat workgroup** atau Simpan perubahan.**

### Gunakan Athena API atau AWS CLI untuk mengaktifkan enkripsi minimum
<a name="workgroups-minimum-encryption-enabling-using-the-athena-api-or-cli"></a>

Bila Anda menggunakan [UpdateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_UpdateWorkGroup.html)API [CreateWorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateWorkGroup.html)atau untuk membuat atau memperbarui workgroup Athena SQL, atur [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html#athena-Type-WorkGroupConfiguration-EnforceWorkGroupConfiguration)ke, [EnableMinimumEncryptionConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroupConfiguration.html#athena-Type-WorkGroupConfiguration-EnableMinimumEncryptionConfiguration)ke `false``true`, dan gunakan [EncryptionOption](https://docs.aws.amazon.com/athena/latest/APIReference/API_EncryptionConfiguration.html#athena-Type-EncryptionConfiguration-EncryptionOption)untuk menentukan jenis enkripsi.

Di AWS CLI, gunakan [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-work-group.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-work-group.html)perintah [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-work-group.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-work-group.html)or dengan `--configuration-updates` parameter `--configuration` atau dan tentukan opsi yang sesuai dengan yang ada untuk API.

# Konfigurasikan akses ke pernyataan yang disiapkan
<a name="security-iam-athena-prepared-statements"></a>

Topik ini mencakup izin IAM untuk pernyataan yang disiapkan di. Amazon Athena Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang pernyataan siap, lihat[Gunakan kueri berparameter](querying-with-prepared-statements.md).

Izin IAM berikut diperlukan untuk membuat, mengelola, dan mengeksekusi pernyataan siap.

```
athena:CreatePreparedStatement
athena:UpdatePreparedStatement
athena:GetPreparedStatement
athena:ListPreparedStatements
athena:DeletePreparedStatement
```

Gunakan izin ini seperti yang ditunjukkan dalam tabel berikut.


****  

| Untuk melakukannya: | Gunakan izin ini | 
| --- | --- | 
| JalankanPREPAREkueri | athena:StartQueryExecution athena:CreatePreparedStatement | 
| Jalankan ulangPREPAREquery untuk memperbarui pernyataan siap yang ada | athena:StartQueryExecution athena:UpdatePreparedStatement | 
| Jalankan sebuahEXECUTEkueri | athena:StartQueryExecution athena:GetPreparedStatement | 
| JalankanDEALLOCATE PREPAREkueri | athena:StartQueryExecution athena:DeletePreparedStatement | 

## Contoh
<a name="security-iam-athena-prepared-statements-example"></a>

Contoh berikut IAM kebijakan memberikan izin untuk mengelola dan menjalankan pernyataan siap pada akun tertentu ID dan grup kerja.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "athena:CreatePreparedStatement",
                "athena:UpdatePreparedStatement",
                "athena:GetPreparedStatement",
                "athena:DeletePreparedStatement",
                "athena:ListPreparedStatements"
            ],
            "Resource": [
                "arn:aws:athena:*:111122223333:workgroup/<workgroup-name>"
            ]
        }
    ]
}
```

------

# Gunakan tombol CalledVia konteks untuk Athena
<a name="security-iam-athena-calledvia"></a>

Ketika [kepala sekolah](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) membuat [permintaan](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-request) AWS, AWS mengumpulkan informasi permintaan ke dalam *konteks permintaan* yang mengevaluasi dan mengotorisasi permintaan. Anda dapat menggunakan elemen `Condition` dari kebijakan JSON untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. *Kunci konteks syarat global adalah* berbagai kunci syarat dengan prefiks `aws:`.

## Tentang kunci aws:CalledVia konteks
<a name="security-iam-athena-calledvia-the-awscalledvia-context-key"></a>

Anda dapat menggunakan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia) kunci konteks syarat global untuk membandingkan layanan dalam kebijakan dengan layanan yang membuat permintaan atas nama utama IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke Layanan AWS, layanan itu mungkin menggunakan kredensi kepala sekolah untuk membuat permintaan berikutnya ke layanan lain. Kunci `aws:CalledVia` berisi daftar yang dipesan dari setiap layanan dalam rantai yang membuat permintaan atas nama utama.

Dengan menentukan nama utama layanan untuk kunci `aws:CalledVia` konteks, Anda dapat membuat kunci konteks Layanan AWS-spesifik. Misalnya, Anda dapat menggunakan`aws:CalledVia`kondisi kunci untuk membatasi permintaan hanya yang dibuat dari Athena. Untuk menggunakan`aws:CalledVia`kondisi kunci dalam kebijakan dengan Athena, Anda menentukan nama utama layanan Athena`athena.amazonaws.com`, seperti pada contoh berikut.

```
 ...
    "Condition": {
        "ForAnyValue:StringEquals": { 
            "aws:CalledVia": "athena.amazonaws.com"
        }
    }
...
```

Anda dapat menggunakan`aws:CalledVia`untuk memastikan pemanggil hanya memiliki akses ke sumber daya (seperti fungsi Lambda) jika mereka memanggil sumber daya dari Athena.

**catatan**  
Kunci `aws:CalledVia` konteks tidak kompatibel dengan fitur propagasi identitas tepercaya.

## Tambahkan kunci CalledVia konteks untuk akses ke fungsi Lambda
<a name="security-iam-athena-calledvia-example-policy-to-add-an-optional-calledvia-context-key-for-fine-grained-access-to-a-lambda-function"></a>

Athena membutuhkan penelepon untuk memiliki`lambda:InvokeFunction`izin untuk memanggil fungsi Lambda terkait dengan kueri. Pernyataan berikut menentukan bahwa pengguna dapat memanggil fungsi Lambda hanya dari Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:OneAthenaLambdaFunction",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Contoh berikut menunjukkan penambahan pernyataan sebelumnya ke kebijakan yang memungkinkan pengguna menjalankan dan membaca kueri gabungan. Utama yang diizinkan untuk melakukan tindakan ini dapat menjalankan kueri yang menentukan katalog Athena terkait dengan sumber data gabungan. Namun, utama tidak dapat mengakses fungsi Lambda terkait kecuali fungsi dipanggil melalui Athena.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0", 
            "Effect": "Allow",
            "Action": [ 
                "athena:GetWorkGroup", 
                "s3:PutObject", 
                "s3:GetObject", 
                "athena:StartQueryExecution", 
                "s3:AbortMultipartUpload",  
                "athena:StopQueryExecution", 
                "athena:GetQueryExecution", 
                "athena:GetQueryResults", 
                "s3:ListMultipartUploadParts" 
            ], 
            "Resource": [ 
                "arn:aws:athena:*:111122223333:workgroup/WorkGroupName",
                "arn:aws:s3:::MyQueryResultsBucket/*", 
                "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"
            ] 
        }, 
        {
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": "athena:ListWorkGroups", 
            "Resource": "*" 
        }, 
        {
            "Sid": "VisualEditor2", 
            "Effect": "Allow", 
            "Action": 
                [ 
                "s3:ListBucket", 
                "s3:GetBucketLocation" 
                ], 
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket" 
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction", 
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction"
            ], 
            "Condition": {
                "ForAnyValue:StringEquals": { 
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }            
    ]
}
```

------

Untuk informasi selengkapnya tentang kunci syarat `CalledVia`, lihat [AWS kunci konteks syarat global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam *Panduan Pengguna IAM*.

# Izinkan akses ke Konektor Data Athena untuk Metastore Sarang Eksternal
<a name="hive-metastore-iam-access"></a>

Contoh kebijakan izin dalam topik ini menunjukkan diperlukan tindakan diperbolehkan dan sumber daya yang mereka diizinkan. Periksa kebijakan ini dengan hati-hati dan memodifikasi mereka sesuai dengan kebutuhan Anda sebelum Anda melampirkan kebijakan izin yang sama untuk identitas IAM.
+  [Example Policy to Allow an IAM Principal to Query Data Using Athena Data Connector for External Hive Metastore](#hive-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create an Athena Data Connector for External Hive Metastore](#hive-creating-iam) 

**Example — Izinkan prinsipal IAM untuk menanyakan data menggunakan Athena Data Connector untuk External Hive Metastore**  
Kebijakan berikut dilampirkan pada utama IAM selain[AWS kebijakan terkelola: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), yang memberikan akses penuh ke tindakan Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:layer:MyAthenaLambdaLayer:*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"
        }
    ]
}
```


**Penjelasan perizinan**  

| Tindakan yang diizinkan | Penjelasan | 
| --- | --- | 
|  <pre>"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:PutObject",<br />"s3:ListMultipartUploadParts",<br />"s3:AbortMultipartUpload"</pre>  |  `s3`tindakan memungkinkan membaca dari dan menulis ke sumber daya yang ditentukan sebagai`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillLocation"`, di mana *MyLambdaSpillLocation* mengidentifikasi keranjang tumpahan yang ditentukan dalam konfigurasi fungsi atau fungsi Lambda yang dipanggil. Pengidentifikasi *arn:aws:lambda:\$1:*MyAWSAcctId*:layer:*MyAthenaLambdaLayer*:\$1* sumber daya hanya diperlukan jika Anda menggunakan lapisan Lambda untuk membuat dependensi runtime kustom guna mengurangi ukuran artefak fungsi pada waktu penerapan. Parameter`*`di posisi terakhir adalah wildcard untuk versi layer.  | 
|  <pre>"lambda:GetFunction",<br />"lambda:GetLayerVersion",<br />"lambda:InvokeFunction"</pre>  | Mengizinkan kueri untuk memanggil AWS Lambda fungsi yang ditentukan dalam blok. Resource Misalnyaarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, di mana MyAthenaLambdaFunction menentukan nama fungsi Lambda yang akan dipanggil. Beberapa fungsi dapat ditentukan seperti yang ditunjukkan pada contoh. | 

**Example — Izinkan kepala sekolah IAM untuk membuat Konektor Data Athena untuk Metastore Sarang Eksternal**  
Kebijakan berikut dilampirkan pada utama IAM selain[AWS kebijakan terkelola: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), yang memberikan akses penuh ke tindakan Athena.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:ListFunctions",
                "lambda:GetLayerVersion",
                "lambda:InvokeFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:PublishLayerVersion",
                "lambda:DeleteLayerVersion",
                "lambda:UpdateFunctionConfiguration",
                "lambda:PutFunctionConcurrency",
                "lambda:DeleteFunctionConcurrency"
            ],
            "Resource": "arn:aws:lambda:*:111122223333: function: MyAthenaLambdaFunctionsPrefix*"
        }
    ]
}
```
 **Penjelasan Izin**   
Memungkinkan kueri untuk memanggil AWS Lambda fungsi untuk AWS Lambda fungsi yang ditentukan dalam blok. `Resource` Misalnya`arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunction`, di mana *MyAthenaLambdaFunction* menentukan nama fungsi Lambda yang akan dipanggil. Beberapa fungsi dapat ditentukan seperti yang ditunjukkan pada contoh.

# Izinkan akses fungsi Lambda ke metastores Hive eksternal
<a name="hive-metastore-iam-access-lambda"></a>

Untuk memanggil fungsi Lambda di akun Anda, Anda harus membuat peran yang memiliki izin berikut:
+ `AWSLambdaVPCAccessExecutionRole`— Izin [peran AWS Lambda eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) untuk mengelola antarmuka jaringan elastis yang menghubungkan fungsi Anda ke VPC. Pastikan bahwa Anda memiliki cukup jumlah antarmuka jaringan dan alamat IP yang tersedia.
+ `AmazonAthenaFullAccess`— Kebijakan yang [AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy)dikelola memberikan akses penuh ke Athena.
+ Sebuah kebijakan Amazon S3 untuk memungkinkan fungsi Lambda untuk menulis ke S3 dan untuk memungkinkan Athena untuk membaca dari S3.

Sebagai contoh, kebijakan berikut mendefinisikan izin untuk lokasi tumpahan`s3:\\mybucket\spill`.

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/spill" ] } ] }
```

------

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Buat fungsi Lambda
<a name="hive-metastore-iam-access-lambda-creating-lambda-functions"></a>

Untuk membuat fungsi Lambda di akun Anda, izin pengembangan fungsi atau peran `AWSLambdaFullAccess` diperlukan. Untuk informasi selengkapnya, lihat [Kebijakan IAM berbasis identitas](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html) untuk. AWS Lambda

[Karena Athena menggunakan AWS Serverless Application Repository untuk membuat fungsi Lambda, superuser atau administrator yang membuat fungsi Lambda juga harus memiliki kebijakan IAM untuk mengizinkan kueri federasi Athena.](federated-query-iam-access.md)

## Konfigurasikan izin untuk pendaftaran katalog dan operasi API metadata
<a name="hive-metastore-iam-access-lambda-catalog-registration-and-metadata-api-operations"></a>

Untuk akses API ke pendaftaran katalog dan operasi metadata, Anda dapat menggunakan kebijakan [AmazonAthenaFullAccess terkelola](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy). Jika Anda tidak menggunakan `AmazonAthenaFullAccess` kebijakan, tambahkan operasi API berikut ke kebijakan Athena Anda:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:GetDataCatalog",
                "athena:CreateDataCatalog",
                "athena:UpdateDataCatalog",
                "athena:DeleteDataCatalog",
                "athena:GetDatabase",
                "athena:ListDatabases",
                "athena:GetTableMetadata",
                "athena:ListTableMetadata"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## Panggil fungsi Lambda di seluruh wilayah
<a name="hive-metastore-iam-access-lambda-cross-region-invocation"></a>

Secara default, Athena memanggil fungsi Lambda didefinisikan di wilayah yang sama. Untuk memanggil fungsi Lambda di Wilayah AWS selain wilayah tempat Anda menjalankan kueri Athena, gunakan ARN lengkap dari fungsi Lambda. 

Contoh berikut menunjukkan bagaimana katalog di Wilayah Eropa (Frankfurt) dapat menentukan fungsi Lambda di Wilayah Timur AS (Virginia N.) untuk mengambil data dari metastore Hive di Wilayah Eropa (Frankfurt).

```
arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new     
```

Jika Anda menentukan ARN penuh dengan cara ini, Athena dapat memanggil`external-hms-service-new`Fungsi Lambda`us-east-1`untuk mengambil data metastore Hive dari`eu-central-1`.

**catatan**  
Katalog harus terdaftar sama dengan Wilayah AWS yang Anda gunakan untuk menjalankan kueri Athena.

## Panggil fungsi Lambda di seluruh akun
<a name="hive-metastore-iam-access-lambda-cross-account-invocation"></a>

Kadang-kadang Anda mungkin memerlukan akses ke metastore Hive dari akun yang berbeda. Misalnya, untuk menjalankan metastore Hive, Anda dapat menggunakan akun yang berbeda dari akun yang Anda gunakan untuk kueri Athena. grup yang berbeda atau tim mungkin menjalankan Hive metastore dengan akun yang berbeda dalam VPC mereka. Atau Anda mungkin ingin mengakses metadata dari metastores Hive berbeda dari grup atau tim yang berbeda.

Athena menggunakan[AWS Lambda dukungan untuk akses lintas akun](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/)untuk mengaktifkan akses lintas rekening untuk Hive Metastores.

**catatan**  
Perhatikan bahwa akses lintas rekening untuk Athena biasanya menyiratkan akses rekening lintas untuk kedua metadata dan data di Amazon S3.

Bayangkan skenario berikut:
+ Akun`111122223333`mengatur fungsi Lambda`external-hms-service-new`pada kita-timur-1 di Athena untuk mengakses Hive Metastore berjalan pada cluster EMR.
+ Akun`111122223333`ingin memungkinkan akun 444455556666 untuk mengakses data Hive Metastore.

Untuk memberikan `444455556666` akses akun ke fungsi Lambda`external-hms-service-new`, akun `111122223333` menggunakan perintah berikut AWS CLI `add-permission`. Perintah telah diformat untuk dibaca.

```
$ aws --profile perf-test lambda add-permission
      --function-name external-hms-service-new
      --region us-east-1
      --statement-id Id-ehms-invocation2
      --action "lambda:InvokeFunction"
      --principal arn:aws:iam::444455556666:user/perf1-test
{
    "Statement": "{\"Sid\":\"Id-ehms-invocation2\",
                   \"Effect\":\"Allow\",
                   \"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:user/perf1-test\"},
                   \"Action\":\"lambda:InvokeFunction\",
                   \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new\"}"
}
```

Untuk memeriksa izin Lambda, gunakan`get-policy`seperti pada contoh berikut. Perintah telah diformat untuk dibaca.

```
$ aws --profile perf-test lambda get-policy 
      --function-name arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new 
      --region us-east-1
{
    "RevisionId": "711e93ea-9851-44c8-a09f-5f2a2829d40f",
    "Policy": "{\"Version\":\"2012-10-17\",		 	 	 
                \"Id\":\"default\",
                \"Statement\":[{\"Sid\":\"Id-ehms-invocation2\",
                                \"Effect\":\"Allow\",
                                \"Principal\":{\"AWS\":\"arn:aws:iam::444455556666:user/perf1-test\"},
                                \"Action\":\"lambda:InvokeFunction\",
                                \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new\"}]}"
}
```

Setelah menambahkan izin, Anda dapat menggunakan ARN lengkap dari fungsi Lambda`us-east-1`seperti berikut saat anda menentukan katalog`ehms`:

```
arn:aws:lambda:us-east-1:111122223333:function:external-hms-service-new
```

Untuk informasi tentang doa lintas wilayah, lihat[Panggil fungsi Lambda di seluruh wilayah](#hive-metastore-iam-access-lambda-cross-region-invocation)sebelumnya dalam topik ini.

### Berikan akses lintas akun ke data
<a name="hive-metastore-iam-access-lambda-granting-cross-account-access-to-data"></a>

Sebelum Anda dapat menjalankan kueri Athena, Anda harus memberikan akses lintas rekening ke data di Amazon S3. Anda dapat melakukannya dengan salah satu cara berikut:
+ Memperbarui kebijakan daftar kontrol akses bucket Amazon S3 dengan[ID pengguna kanonis](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html).
+ Menambahkan akses akun lintas ke kebijakan bucket Amazon S3.

Sebagai contoh, tambahkan kebijakan berikut untuk Amazon S3 bucket kebijakan di akun`111122223333`untuk mengizinkan akun`444455556666`Untuk membaca data dari lokasi Amazon S3 yang ditentukan.

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Sid": "Stmt1234567890123", "Effect":
    "Allow", "Principal": { "AWS":
        "arn:aws:iam::444455556666:user/perf1-test"
    }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::athena-test/lambda/dataset/*" } ]
    }
```

------

**catatan**  
Anda mungkin perlu untuk memberikan akses rekening lintas ke Amazon S3 tidak hanya untuk data Anda, tetapi juga untuk Amazon S3 lokasi tumpahan Anda. Fungsi Lambda Anda tumpahan data tambahan ke lokasi tumpahan saat ukuran objek respon melebihi ambang batas yang diberikan. Lihat awal topik ini untuk kebijakan sampel.

Dalam contoh saat ini, setelah akses lintas rekening diberikan kepada`444455556666,` `444455556666`dapat menggunakan katalog`ehms`sendiri`account`untuk kueri tabel yang didefinisikan dalam akun`111122223333`.

Pada contoh berikut, profil SQL Workbench`perf-test-1`Untuk akun`444455556666`. kueri menggunakan katalog`ehms`untuk mengakses metastore Hive dan data Amazon S3 pada akun`111122223333`.

![\[Mengakses data Hive metastore dan Amazon S3 di seluruh akun di SQL Workbench.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/hive-metastore-iam-access-lambda-1.png)


# Izin diperlukan untuk membuat konektor dan katalog Athena
<a name="athena-catalog-access"></a>

Untuk memanggil `CreateDataCatalog` Athena, Anda harus membuat peran yang memiliki izin berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
  "Sid": "ECR",
  "Effect": "Allow",
  "Action": [
  "ecr:BatchGetImage",
  "ecr:GetDownloadUrlForLayer"
  ],
  "Resource": "arn:aws:ecr:*:*:repository/*"
  },
  {
  "Effect": "Allow",
  "Action": [
  "s3:GetObject",
  "glue:TagResource",
  "glue:GetConnection",
  "glue:CreateConnection",
  "glue:DeleteConnection",
  "glue:UpdateConnection",
  "serverlessrepo:CreateCloudFormationTemplate",
  "serverlessrepo:GetCloudFormationTemplate",
  "cloudformation:CreateStack",
  "cloudformation:DeleteStack",
  "cloudformation:DescribeStacks",
  "cloudformation:CreateChangeSet",
  "cloudformation:DescribeAccountLimits",
  "cloudformation:CreateStackSet",
  "cloudformation:ValidateTemplate",
  "cloudformation:CreateUploadBucket",
  "cloudformation:DescribeStackDriftDetectionStatus",
  "cloudformation:ListExports",
  "cloudformation:ListStacks",
  "cloudformation:EstimateTemplateCost",
  "cloudformation:ListImports",
  "lambda:InvokeFunction",
  "lambda:GetFunction",
  "lambda:DeleteFunction",
  "lambda:CreateFunction",
  "lambda:TagResource",
  "lambda:ListFunctions",
  "lambda:GetAccountSettings",
  "lambda:ListEventSourceMappings",
  "lambda:ListVersionsByFunction",
  "lambda:GetFunctionConfiguration",
  "lambda:PutFunctionConcurrency",
  "lambda:UpdateFunctionConfiguration",
  "lambda:UpdateFunctionCode",
  "lambda:DeleteFunctionConcurrency",
  "lambda:RemovePermission",
  "lambda:AddPermission",
  "lambda:ListTags",
  "lambda:GetAlias",
  "lambda:GetPolicy",
  "lambda:ListAliases",
  "ec2:DescribeSecurityGroups",
  "ec2:DescribeSubnets",
  "ec2:DescribeVpcs",
  "secretsmanager:ListSecrets",
  "glue:GetCatalogs"
  ],
  "Resource": "*"
  },
  {
  "Effect": "Allow",
  "Action": [
  "iam:AttachRolePolicy",
  "iam:DetachRolePolicy",
  "iam:DeleteRolePolicy",
  "iam:PutRolePolicy",
  "iam:GetRolePolicy",
  "iam:CreateRole",
  "iam:TagRole",
  "iam:DeleteRole",
  "iam:GetRole",
  "iam:PassRole",
  "iam:ListRoles",
  "iam:ListAttachedRolePolicies",
  "iam:ListRolePolicies",
  "iam:GetPolicy",
  "iam:UpdateRole"
  ],
  "Resource": [
  "arn:aws:iam::*:role/RoleName",
  "arn:aws:iam::111122223333:policy/*"
  ]
  }
  ]
  }
```

------

# Izinkan akses ke Kueri Federasi Athena: Contoh kebijakan
<a name="federated-query-iam-access"></a>

Contoh kebijakan izin dalam topik ini menunjukkan diperlukan tindakan diperbolehkan dan sumber daya yang mereka diizinkan. Periksa kebijakan ini dengan saksama dan mengubahnya sesuai dengan kebutuhan Anda sebelum melampirkannya ke identitas IAM.

[Untuk informasi tentang melampirkan kebijakan ke identitas IAM, lihat [Menambahkan dan menghapus izin identitas IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).](https://docs.aws.amazon.com/IAM/latest/UserGuide/)
+  [Example policy to allow an IAM principal to run and return results using Athena Federated Query](#fed-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create a Data Source Connector](#fed-creating-iam) 

**Example — Izinkan prinsipal IAM untuk menjalankan dan mengembalikan hasil menggunakan Athena Federated Query**  
Kebijakan izin berbasis identitas berikut memungkinkan tindakan yang diperlukan pengguna atau pimpinan IAM lainnya untuk menggunakan Kueri Gabungan Athena. Utama yang diizinkan untuk melakukan tindakan ini dapat menjalankan kueri yang menentukan katalog Athena yang terkait dengan sumber data gabungan.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Athena",
            "Effect": "Allow",
            "Action": [
                "athena:GetDataCatalog",
                "athena:GetQueryExecution",
                "athena:GetQueryResults",
                "athena:GetWorkGroup",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "arn:aws:athena:*:111122223333:workgroup/WorkgroupName",
                "arn:aws:athena:us-east-1:111122223333:datacatalog/DataCatalogName"
            ]
        },
        {
            "Sid": "ListAthenaWorkGroups",
            "Effect": "Allow",
            "Action": "athena:ListWorkGroups",
            "Resource": "*"
        },
        {
            "Sid": "Lambda",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:OneAthenaLambdaFunction",
                "arn:aws:lambda:*:111122223333:function:AnotherAthenaLambdaFunction"
            ]
        },
        {
            "Sid": "S3",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:ListMultipartUploadParts",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::MyLambdaSpillBucket",
                "arn:aws:s3:::MyLambdaSpillBucket/*",
                "arn:aws:s3:::MyQueryResultsBucket",
                "arn:aws:s3:::MyQueryResultsBucket/*"
            ]
        }
    ]
}
```


**Penjelasan perizinan**  

| Tindakan yang diizinkan | Penjelasan | 
| --- | --- | 
|  <pre> "athena:GetQueryExecution", <br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StartQueryExecution",<br /> "athena:StopQueryExecution"</pre>  |  Athena izin yang diperlukan untuk menjalankan kueri gabungan.  | 
|  <pre> "athena:GetDataCatalog",<br /> "athena:GetQueryExecution,"<br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StartQueryExecution",<br /> "athena:StopQueryExecution"</pre>  |  Izin Athena yang diperlukan untuk menjalankan kueri tampilan federasi. `GetDataCatalog`Tindakan ini diperlukan untuk tampilan.  | 
|  <pre>"lambda:InvokeFunction"</pre>  | Memungkinkan kueri untuk memanggil AWS Lambda fungsi untuk AWS Lambda fungsi yang ditentukan dalam blok. Resource Misalnyaarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, di mana MyAthenaLambdaFunction menentukan nama fungsi Lambda yang akan dipanggil. Seperti yang ditunjukkan pada contoh, beberapa fungsi dapat ditentukan. | 
|  <pre>"s3:AbortMultipartUpload",<br />"s3:GetBucketLocation",<br />"s3:GetObject",<br />"s3:ListBucket",<br />"s3:ListMultipartUploadParts",<br />"s3:PutObject"</pre>  |  `s3:GetBucketLocation`Izin `s3:ListBucket` dan diperlukan untuk mengakses bucket keluaran kueri untuk prinsipal IAM yang berjalan. `StartQueryExecution` `s3:PutObject`,`s3:ListMultipartUploadParts`, dan `s3:AbortMultipartUpload` izinkan penulisan hasil kueri ke semua sub-folder bucket hasil kueri seperti yang ditentukan oleh pengidentifikasi `arn:aws:s3:::MyQueryResultsBucket/*` sumber daya, di mana *MyQueryResultsBucket* keranjang hasil kueri Athena. Untuk informasi selengkapnya, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md). `s3:GetObject`memungkinkan pembacaan hasil kueri dan riwayat kueri untuk sumber daya yang ditentukan sebagai`arn:aws:s3:::MyQueryResultsBucket`, di mana *MyQueryResultsBucket* keranjang hasil kueri Athena. `s3:GetObject`juga memungkinkan membaca dari sumber daya yang ditentukan sebagai`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"`, di mana *MyLambdaSpillPrefix* ditentukan dalam konfigurasi fungsi Lambda atau fungsi yang dipanggil.  | 

**Example — Izinkan prinsipal IAM untuk membuat konektor sumber data**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:ListVersionsByFunction",
                "iam:CreateRole",
                "lambda:GetFunctionConfiguration",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "lambda:PutFunctionConcurrency",
                "iam:PassRole",
                "iam:DetachRolePolicy",
                "lambda:ListTags",
                "iam:ListAttachedRolePolicies",
                "iam:DeleteRolePolicy",
                "lambda:DeleteFunction",
                "lambda:GetAlias",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:GetPolicy",
                "lambda:InvokeFunction",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:UpdateFunctionConfiguration",
                "iam:DeleteRole",
                "lambda:UpdateFunctionCode",
                "s3:GetObject",
                "lambda:AddPermission",
                "iam:UpdateRole",
                "lambda:DeleteFunctionConcurrency",
                "lambda:RemovePermission",
                "iam:GetRolePolicy",
                "lambda:GetPolicy"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*",
                "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*",
                "arn:aws:iam::*:role/RoleName",
                "arn:aws:iam::111122223333:policy/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateUploadBucket",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:ListExports",
                "cloudformation:ListStacks",
                "cloudformation:ListImports",
                "lambda:ListFunctions",
                "iam:ListRoles",
                "lambda:GetAccountSettings",
                "ec2:DescribeSecurityGroups",
                "cloudformation:EstimateTemplateCost",
                "ec2:DescribeVpcs",
                "lambda:ListEventSourceMappings",
                "cloudformation:DescribeAccountLimits",
                "ec2:DescribeSubnets",
                "cloudformation:CreateStackSet",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudformation:*",
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:*:transform/Serverless-*",
                "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*",
                "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "serverlessrepo:*",
            "Resource": "arn:aws:serverlessrepo:*:*:applications/*"
        },
        {
            "Sid": "ECR",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/*"
        }
    ]
}
```


**Penjelasan perizinan**  

| Tindakan yang diizinkan | Penjelasan | 
| --- | --- | 
|  <pre>"lambda:CreateFunction",<br />"lambda:ListVersionsByFunction",<br />"lambda:GetFunctionConfiguration",<br />"lambda:PutFunctionConcurrency",<br />"lambda:ListTags",<br />"lambda:DeleteFunction",<br />"lambda:GetAlias",<br />"lambda:InvokeFunction",<br />"lambda:GetFunction",<br />"lambda:ListAliases",<br />"lambda:UpdateFunctionConfiguration",<br />"lambda:UpdateFunctionCode",<br />"lambda:AddPermission",<br />"lambda:DeleteFunctionConcurrency",<br />"lambda:RemovePermission",<br />"lambda:GetPolicy"<br />"lambda:GetAccountSettings",<br />"lambda:ListFunctions",<br />"lambda:ListEventSourceMappings",<br /></pre>  |  Memungkinkan penciptaan dan pengelolaan fungsi Lambda terdaftar sebagai sumber daya. Dalam contoh, awalan nama digunakan dalam pengenal sumber daya`arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*`, di mana `MyAthenaLambdaFunctionsPrefix` awalan bersama digunakan dalam nama grup fungsi Lambda sehingga tidak perlu ditentukan secara individual sebagai sumber daya. Anda dapat menentukan satu atau lebih sumber daya fungsi Lambda.  | 
|  <pre>"s3:GetObject"</pre>  | Memungkinkan membaca bucket yang AWS Serverless Application Repository membutuhkan seperti yang ditentukan oleh pengenal arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/\$1 sumber daya. Bucket ini mungkin spesifik untuk akun Anda. | 
|  <pre>"cloudformation:*"</pre>  |  Memungkinkan pembuatan dan pengelolaan CloudFormation tumpukan yang ditentukan oleh sumber `MyCFStackPrefix` daya. Tumpukan dan stackset ini adalah cara AWS Serverless Application Repository menyebarkan konektor dan. UDFs  | 
|  <pre>"serverlessrepo:*"</pre>  | Memungkinkan pencarian, melihat, menerbitkan, dan memperbarui aplikasi di AWS Serverless Application Repository, yang ditentukan oleh pengenal arn:aws:serverlessrepo:\$1:\$1:applications/\$1 sumber daya. | 
|  <pre>"ecr:BatchGetImage",<br />"ecr:GetDownloadUrlForLayer"</pre>  |  Memungkinkan fungsi Lambda yang dibuat untuk mengakses gambar ECR konektor federasi.  | 

# Izinkan akses ke Athena UDFs: Contoh kebijakan
<a name="udf-iam-access"></a>

Contoh kebijakan izin dalam topik ini menunjukkan diperlukan tindakan diperbolehkan dan sumber daya yang mereka diizinkan. Periksa kebijakan ini dengan hati-hati dan memodifikasi mereka sesuai dengan kebutuhan Anda sebelum Anda melampirkan kebijakan izin yang sama untuk identitas IAM.
+  [Example Policy to Allow an IAM Principal to Run and Return Queries that Contain an Athena UDF Statement](#udf-using-iam) 
+  [Example Policy to Allow an IAM Principal to Create an Athena UDF](#udf-creating-iam) 

**Example — Izinkan prinsipal IAM untuk menjalankan dan mengembalikan kueri yang berisi pernyataan Athena UDF**  
Kebijakan izin berbasis identitas berikut memungkinkan tindakan yang pengguna atau utama IAM lainnya memerlukan untuk menjalankan permintaan yang menggunakan pernyataan Athena UDF.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "athena:StartQueryExecution",
                "lambda:InvokeFunction",
                "athena:GetQueryResults",
                "s3:ListMultipartUploadParts",
                "athena:GetWorkGroup",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "athena:StopQueryExecution",
                "athena:GetQueryExecution",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:athena:*:MyAWSAcctId:workgroup/MyAthenaWorkGroup",
                "arn:aws:s3:::MyQueryResultsBucket/*",
                "arn:aws:lambda:*:MyAWSAcctId:function:OneAthenaLambdaFunction",
                "arn:aws:lambda:*:MyAWSAcctId:function:AnotherAthenaLambdaFunction"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "athena:ListWorkGroups",
            "Resource": "*"
        }
    ]
}
```


**Penjelasan perizinan**  

| Tindakan yang diizinkan | Penjelasan | 
| --- | --- | 
|  <pre>"athena:StartQueryExecution",<br /> "athena:GetQueryResults",<br /> "athena:GetWorkGroup",<br /> "athena:StopQueryExecution",<br /> "athena:GetQueryExecution",<br /></pre>  |  Athena izin yang diperlukan untuk menjalankan kueri di`MyAthenaWorkGroup`kelompok kerja.  | 
|  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:AbortMultipartUpload"</pre>  |  `s3:PutObject`dan `s3:AbortMultipartUpload` izinkan penulisan hasil kueri ke semua sub-folder bucket hasil kueri seperti yang ditentukan oleh pengidentifikasi `arn:aws:s3:::MyQueryResultsBucket/*` sumber daya, di mana *MyQueryResultsBucket* keranjang hasil kueri Athena. Untuk informasi selengkapnya, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md). `s3:GetObject`memungkinkan pembacaan hasil kueri dan riwayat kueri untuk sumber daya yang ditentukan sebagai`arn:aws:s3:::MyQueryResultsBucket`, di mana *MyQueryResultsBucket* keranjang hasil kueri Athena. Untuk informasi selengkapnya, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md). `s3:GetObject`juga memungkinkan membaca dari sumber daya yang ditentukan sebagai`"arn:aws:s3:::MyLambdaSpillBucket/MyLambdaSpillPrefix*"`, di mana *MyLambdaSpillPrefix* ditentukan dalam konfigurasi fungsi Lambda atau fungsi yang dipanggil.  | 
|  <pre>"lambda:InvokeFunction"</pre>  | Mengizinkan kueri untuk memanggil AWS Lambda fungsi yang ditentukan dalam blok. Resource Misalnyaarn:aws:lambda:\$1:MyAWSAcctId:function:MyAthenaLambdaFunction, di mana MyAthenaLambdaFunction menentukan nama fungsi Lambda yang akan dipanggil. Beberapa fungsi dapat ditentukan seperti yang ditunjukkan pada contoh. | 

**Example — Izinkan kepala IAM untuk membuat UDF Athena**  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:ListVersionsByFunction",
                "iam:CreateRole",
                "lambda:GetFunctionConfiguration",
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "lambda:PutFunctionConcurrency",
                "iam:PassRole",
                "iam:DetachRolePolicy",
                "lambda:ListTags",
                "iam:ListAttachedRolePolicies",
                "iam:DeleteRolePolicy",
                "lambda:DeleteFunction",
                "lambda:GetAlias",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:GetPolicy",
                "lambda:InvokeFunction",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:UpdateFunctionConfiguration",
                "iam:DeleteRole",
                "lambda:UpdateFunctionCode",
                "s3:GetObject",
                "lambda:AddPermission",
                "iam:UpdateRole",
                "lambda:DeleteFunctionConcurrency",
                "lambda:RemovePermission",
                "iam:GetRolePolicy",
                "lambda:GetPolicy"
            ],
            "Resource": [
                "arn:aws:lambda:*:111122223333:function:MyAthenaLambdaFunctionsPrefix*",
                "arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/*",
                "arn:aws:iam::*:role/RoleName",
                "arn:aws:iam::111122223333:policy/*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateUploadBucket",
                "cloudformation:DescribeStackDriftDetectionStatus",
                "cloudformation:ListExports",
                "cloudformation:ListStacks",
                "cloudformation:ListImports",
                "lambda:ListFunctions",
                "iam:ListRoles",
                "lambda:GetAccountSettings",
                "ec2:DescribeSecurityGroups",
                "cloudformation:EstimateTemplateCost",
                "ec2:DescribeVpcs",
                "lambda:ListEventSourceMappings",
                "cloudformation:DescribeAccountLimits",
                "ec2:DescribeSubnets",
                "cloudformation:CreateStackSet",
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudformation:*",
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/aws-serverless-repository-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:111122223333:stack/serverlessrepo-MyCFStackPrefix*/*",
                "arn:aws:cloudformation:*:*:transform/Serverless-*",
                "arn:aws:cloudformation:*:111122223333:stackset/aws-serverless-repository-MyCFStackPrefix*:*",
                "arn:aws:cloudformation:*:111122223333:stackset/serverlessrepo-MyCFStackPrefix*:*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "serverlessrepo:*",
            "Resource": "arn:aws:serverlessrepo:*:*:applications/*"
        },
        {
            "Sid": "ECR",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/*"
        }
    ]
}
```


**Penjelasan perizinan**  

| Tindakan yang diizinkan | Penjelasan | 
| --- | --- | 
|  <pre>"lambda:CreateFunction",<br />"lambda:ListVersionsByFunction",<br />"lambda:GetFunctionConfiguration",<br />"lambda:PutFunctionConcurrency",<br />"lambda:ListTags",<br />"lambda:DeleteFunction",<br />"lambda:GetAlias",<br />"lambda:InvokeFunction",<br />"lambda:GetFunction",<br />"lambda:ListAliases",<br />"lambda:UpdateFunctionConfiguration",<br />"lambda:UpdateFunctionCode",<br />"lambda:AddPermission",<br />"lambda:DeleteFunctionConcurrency",<br />"lambda:RemovePermission",<br />"lambda:GetPolicy"<br />"lambda:GetAccountSettings",<br />"lambda:ListFunctions",<br />"lambda:ListEventSourceMappings",<br /></pre>  |  Memungkinkan penciptaan dan pengelolaan fungsi Lambda terdaftar sebagai sumber daya. Dalam contoh, awalan nama digunakan dalam pengenal sumber daya`arn:aws:lambda:*:MyAWSAcctId:function:MyAthenaLambdaFunctionsPrefix*`, di mana *MyAthenaLambdaFunctionsPrefix* awalan bersama digunakan dalam nama grup fungsi Lambda sehingga tidak perlu ditentukan secara individual sebagai sumber daya. Anda dapat menentukan satu atau lebih sumber daya fungsi Lambda.  | 
|  <pre>"s3:GetObject"</pre>  | Memungkinkan membaca bucket yang AWS Serverless Application Repository membutuhkan seperti yang ditentukan oleh pengidentifikasi arn:aws:s3:::awsserverlessrepo-changesets-1iiv3xa62ln3m/\$1 sumber daya. | 
|  <pre>"cloudformation:*"</pre>  |  Memungkinkan pembuatan dan pengelolaan CloudFormation tumpukan yang ditentukan oleh sumber *MyCFStackPrefix* daya. Tumpukan dan stackset ini adalah cara AWS Serverless Application Repository menyebarkan konektor dan. UDFs  | 
|  <pre>"serverlessrepo:*"</pre>  | Memungkinkan pencarian, melihat, menerbitkan, dan memperbarui aplikasi di AWS Serverless Application Repository, yang ditentukan oleh pengidentifikasi arn:aws:serverlessrepo:\$1:\$1:applications/\$1 sumber daya. | 

# Izinkan akses untuk ML dengan Athena
<a name="machine-learning-iam-access"></a>

IAM utama yang menjalankan kueri ML Athena harus diizinkan menjalankan tindakan `sagemaker:invokeEndpoint` untuk titik akhir Sagemaker yang mereka gunakan. Sertakan pernyataan kebijakan yang mirip dengan berikut dalam kebijakan izin berbasis identitas yang melekat pada identitas pengguna. Selain itu, lampirkan[AWS kebijakan terkelola: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy), yang memberikan akses penuh ke tindakan Athena, atau kebijakan inline yang dimodifikasi yang memungkinkan subset tindakan.

Ganti `arn:aws:sagemaker:region:AWSAcctID:ModelEndpoint` dalam contoh dengan ARN atau titik akhir model ARNs yang akan digunakan dalam kueri. Untuk informasi selengkapnya, lihat [Kunci tindakan, sumber daya, dan kondisi untuk SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html) di *Referensi Otorisasi Layanan*.

```
{
            "Effect": "Allow",
            "Action": [
                "sagemaker:invokeEndpoint"
            ],
            "Resource": "arn:aws:sagemaker:us-west-2:123456789012:workteam/public-crowd/default"
}
```

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

# Aktifkan akses federasi ke Athena API
<a name="access-federation-saml"></a>

Bagian ini membahas akses gabungan yang memungkinkan pengguna atau aplikasi klien di organisasi Anda untuk menghubungi operasi API Amazon Athena. Dalam hal ini, pengguna organisasi Anda tidak memiliki akses langsung ke Athena. Sebagai gantinya, Anda mengelola kredensi pengguna di luar AWS Microsoft Active Directory. Dukungan Active Directory[SAML 2.0](https://wiki.oasis-open.org/security)(Keamanan Penegasan Markup Language 2.0).

Untuk mengotentikasi pengguna dalam skenario ini, gunakan driver JDBC atau ODBC dengan SAML.2.0 dukungan untuk mengakses Active Directory Federation Services (ADFS) 3.0 dan mengaktifkan aplikasi klien untuk memanggil Athena API operasi.

Untuk informasi selengkapnya tentang dukungan SAMP 2.0 AWS, lihat [Tentang federasi SAMP 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) di Panduan Pengguna *IAM*. 

**catatan**  
Akses gabungan ke API Athena didukung untuk jenis tertentu penyedia identitas (IdP), Active Directory Federation Service (ADFS 3.0), yang merupakan bagian dari Windows Server. Akses federasi tidak kompatibel dengan fitur propagasi identitas terpercaya IAM Identity Center. Akses dibuat melalui versi driver JDBC atau ODBC yang mendukung SAML 2.0. Untuk informasi selengkapnya, lihat [Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md) dan [Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md).

**Topics**
+ [Sebelum Anda mulai](#access-federation-before-you-begin)
+ [Memahami proses otentikasi](#access-federation-diagram)
+ [Prosedur: Aktifkan akses federasi berbasis SAMP ke Athena API](#access-federation-procedure)

## Sebelum Anda mulai
<a name="access-federation-before-you-begin"></a>

 Sebelum menggunakan fungsi , pastikan untuk melengkapi prasyarat berikut: 
+ Di dalam organisasi Anda, instal dan konfigurasikan ADFS 3.0 sebagai IdP Anda.
+ Menginstal dan mengonfigurasi versi terbaru yang tersedia dari driver JDBC atau ODBC pada klien yang digunakan untuk mengakses Athena. Driver harus menyertakan dukungan untuk akses gabungan kompatibel dengan SAML 2.0. Untuk informasi selengkapnya, lihat [Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md) dan [Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md).

## Memahami proses otentikasi
<a name="access-federation-diagram"></a>

Diagram berikut menggambarkan proses otentikasi akses federasi ke Athena API.

![\[Diagram akses federasi ke Athena API.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/athena-saml-based-federation.png)


1. Pengguna dalam organisasi Anda menggunakan aplikasi klien untuk meminta autentikasi dari organisasi Anda. IdP adalah ADFS 3.0.

1.  mengautentikasi pengguna terhadap toko identitas organisasi Anda.

1.  menyusun pernyataan SAML dengan informasi tentang pengguna dan mengirimkan pertanyaan ke aplikasi klien.

1. Driver JDBC atau ODBC memanggil operasi AWS Security Token Service [AssumeRoleWithSAMP](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API, meneruskannya parameter berikut:
   + ARN penyedia SAML
   + ARN peran untuk mengasumsikan
   + Pernyataan SAML dari IdP

   Untuk informasi selengkapnya, lihat [AssumeRoleWithSAMP](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html), di *Referensi AWS Security Token Service API*.

1. Tanggapan API ke aplikasi klien meliputi kredensial keamanan sementara.

1. Aplikasi klien menggunakan kredensial keamanan sementara untuk menghubungi operasi API Athena, memungkinkan pengguna mengakses operasi API Athena.

## Prosedur: Aktifkan akses federasi berbasis SAMP ke Athena API
<a name="access-federation-procedure"></a>

Prosedur ini menetapkan kepercayaan antara IDP organisasi Anda dan akun AWS Anda untuk mengaktifkan akses federasi berbasis SAML ke operasi Amazon Athena API.

**Untuk mengaktifkan akses gabungan ke API Athena:**

1. Di organisasi Anda, daftar AWS sebagai penyedia layanan (SP) di IDP Anda. Proses ini dikenal sebagai*Mengonfigurasi kepercayaan pihak*. *Untuk informasi selengkapnya, lihat [Mengonfigurasi IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) pada Panduan Pengguna IAM.* Sebagai bagian dari tugas ini, lakukan langkah-langkah berikut:

   1. Dapatkan dokumen metadata SAML sampel dari URL ini: [https://signin.aws.amazon.com/static/saml-metadata.xml](https://signin.aws.amazon.com/static/saml-metadata.xml).

   1. Di IDP (ADFS) organisasi Anda, buat file XMLmetadata setara yang menjelaskan IDP Anda sebagai penyedia identitas. AWS File metadata Anda harus menyertakan nama penerbit, tanggal pembuatan, tanggal kedaluwarsa, dan kunci yang AWS digunakan untuk memvalidasi tanggapan otentikasi (pernyataan) dari organisasi Anda. 

1. Di konsol IAM, buat entitas penyedia identitas SAML. Untuk informasi selengkapnya, lihat [Membuat penyedia identitas SAMP](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) di *Panduan Pengguna IAM*. Sebagai bagian dari langkah ini, lakukan hal berikut: 

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Upload dokumen metadata SAML yang dihasilkan oleh IdP (ADFS) di langkah 1 dalam prosedur ini. 

1. Di konsol IAM, buat satu atau lebih IAM role untuk IdP Anda. Untuk informasi selengkapnya, lihat [Membuat peran untuk Penyedia Identitas pihak ketiga (federasi)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) di *Panduan Pengguna IAM*. Sebagai bagian dari langkah ini, lakukan hal berikut: 
   + Dalam kebijakan izin peran, cantumkan tindakan yang diizinkan untuk dilakukan oleh pengguna dari organisasi Anda di AWS. 
   + Dalam kebijakan kepercayaan peran, tetapkan entitas penyedia SAML yang Anda buat di Langkah 2 prosedur ini sebagai utama. 

   Ini membangun hubungan kepercayaan antara organisasi Anda dan AWS.

1. Dalam organisasi , Anda mendefinisikan pernyataan yang memetakan pengguna atau grup dalam organisasi Anda ke IAM role. Pemetaan pengguna dan grup untuk IAM role juga dikenal sebagai*Aturan klaim*. Perhatikan bahwa pengguna dan grup yang berbeda pada organisasi Anda mungkin memetakan IAM role yang berbeda. 

   Untuk informasi tentang mengonfigurasi pemetaan di ADFS, lihat posting blog: [Mengaktifkan federasi untuk AWS menggunakan Windows Active Directory, ADFS,](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) dan SAMP 2.0.

1. Menginstal dan mengonfigurasi driver JDBC atau ODBC dengan dukungan SAML 2.0. Untuk informasi selengkapnya, lihat [Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md) dan [Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md).

1. Tentukan string koneksi dari aplikasi Anda ke driver JDBC atau ODBC. Untuk informasi tentang rangkaian koneksi yang harus digunakan aplikasi Anda, lihat topik*“Menggunakan penyedia kredensials Active Directory Federation Services (ADFS)”*di*JDBC Driver Instalasi dan Panduan Konfigurasi*, atau topik serupa di*ODBC Driver instalasi dan konfigurasi panduan*tersedia sebagai unduhan PDF dari[Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md)dan[Connect ke Amazon Athena dengan ODBC](connect-with-odbc.md)topik.

   Berikut ini adalah ringkasan level tinggi mengonfigurasi string koneksi ke driver:

   1. Di`AwsCredentialsProviderClass configuration`, mengatur`com.simba.athena.iamsupport.plugin.AdfsCredentialsProvider`untuk menunjukkan bahwa Anda ingin menggunakan otentikasi berbasis SAML 2.0 melalui ADFS IdP. 

   1. Untuk`idp_host`, memberikan nama host ADFS IdP server.

   1. Untuk`idp_port`, menyediakan nomor port yang ADFS IdP mendengarkan untuk permintaan pernyataan SAML.

   1. Untuk`UID`dan`PWD`, berikan kredensial pengguna domain AD. Saat menggunakan driver di Windows, jika`UID`dan`PWD`tidak disediakan, driver mencoba untuk mendapatkan kredensial pengguna yang masuk ke mesin Windows.

   1. Opsional, set`ssl_insecure`ke`true`. Dalam kasus ini, driver tidak memeriksa keaslian sertifikat SSL untuk ADFS IdP server. Pengaturan ke `true` diperlukan jika sertifikat SSL ADFS iDP belum dikonfigurasi untuk dipercaya oleh driver.

   1. Untuk mengaktifkan pemetaan pengguna domain direktori aktif atau grup untuk satu atau lebih IAM role (seperti yang disebutkan dalam langkah 4 prosedur ini), dalam`preferred_role`untuk koneksi JDBC atau ODBC, menentukan IAM role (ARN) untuk mengasumsikan untuk koneksi driver. Menentukan`preferred_role`bersifat opsional, dan berguna jika peran bukan peran pertama yang tercantum dalam aturan klaim.

   Sebagai hasil dari prosedur ini, tindakan berikut terjadi:

   1. [Driver JDBC atau ODBC memanggil AWS STS[AssumeRoleWithSAMP](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API, dan meneruskannya pernyataan, seperti yang ditunjukkan pada langkah 4 diagram arsitektur.](#access-federation-diagram) 

   1. AWS memastikan bahwa permintaan untuk mengambil peran berasal dari idP yang direferensikan di entitas penyedia SAMP. 

   1. Jika permintaan berhasil, operasi AWS STS [AssumeRoleWithSAMP API mengembalikan satu set kredensil](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) keamanan sementara, yang digunakan aplikasi klien Anda untuk membuat permintaan yang ditandatangani ke Athena. 

      Aplikasi Anda sekarang memiliki informasi tentang pengguna saat ini dan dapat mengakses Athena secara pemrograman. 

# Log dan pantau Athena
<a name="security-logging-monitoring"></a>

Untuk mendeteksi insiden, menerima peringatan saat insiden terjadi, dan menanggapinya, gunakan opsi ini dengan Amazon Athena: 
+ **Memantau Athena dengan AWS CloudTrail** — [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau di Layanan AWS Athena. Ini menangkap panggilan dari konsol Athena dan panggilan kode ke operasi API Athena sebagai peristiwa. Anda dapat menentukan permintaan yang dibuat ke Athena, alamat IP tempat permintaan dibuat, siapa yang membuat permintaan, kapan permintaan dibuat, dan detail tambahan. Untuk informasi selengkapnya, lihat [Log panggilan API Amazon Athena dengan AWS CloudTrail](monitor-with-cloudtrail.md).

  Anda juga dapat menggunakan Athena untuk menanyakan file CloudTrail log tidak hanya untuk Athena, tetapi untuk yang lain. Layanan AWS Untuk informasi selengkapnya, lihat [AWS CloudTrail Log kueri](cloudtrail-logs.md).
+ **Pantau penggunaan Athena dengan dan CloudTrail Amazon Quick — [Amazon Quick](https://aws.amazon.com/quicksight/)** adalah layanan intelijen bisnis bertenaga cloud yang dikelola sepenuhnya yang memungkinkan Anda membuat dasbor interaktif yang dapat diakses organisasi Anda dari perangkat apa pun. Untuk contoh solusi yang menggunakan CloudTrail dan Amazon Quick untuk memantau penggunaan Athena, lihat posting blog AWS Big Data [Bagaimana Realtor.com memantau penggunaan Amazon Athena](https://aws.amazon.com/blogs/big-data/analyzing-amazon-athena-usage-by-teams-within-a-real-estate-company/) dengan dan Cepat. AWS CloudTrail 
+ **Gunakan EventBridge dengan Athena -** Amazon EventBridge memberikan aliran peristiwa sistem yang mendekati waktu nyata yang menggambarkan perubahan sumber daya. AWS EventBridge menyadari perubahan operasional saat terjadi, meresponsnya, dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk merespons lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. Peristiwa dipancarkan atas dasar upaya terbaik. Untuk informasi selengkapnya, lihat [Memulai Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) *di Panduan EventBridge Pengguna Amazon*.
+ **Gunakan grup kerja untuk memisahkan pengguna, tim, aplikasi, atau beban kerja, dan untuk menetapkan batas kueri dan mengontrol biaya kueri** — Anda dapat melihat metrik terkait kueri di Amazon CloudWatch, mengontrol biaya kueri dengan mengonfigurasi batas jumlah data yang dipindai, membuat ambang batas, dan memicu tindakan, seperti alarm Amazon SNS, saat ambang batas ini dilanggar. Untuk informasi selengkapnya, lihat [Gunakan kelompok kerja untuk mengontrol akses kueri dan biaya](workgroups-manage-queries-control-costs.md). Gunakan izin IAM level sumber daya untuk mengontrol akses ke grup kerja tertentu. Lihat informasi yang lebih lengkap di [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md) dan [Menggunakan CloudWatch dan EventBridge memantau kueri dan mengendalikan biaya](workgroups-control-limits.md).

**Topics**
+ [Log panggilan API Amazon Athena dengan AWS CloudTrail](monitor-with-cloudtrail.md)

# Log panggilan API Amazon Athena dengan AWS CloudTrail
<a name="monitor-with-cloudtrail"></a>

Athena terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau di Layanan AWS Athena. 

CloudTrail menangkap semua panggilan API untuk Athena sebagai acara. Panggilan yang direkam meliputi panggilan dari konsol Athena dan panggilan kode ke operasi API Athena. Jika Anda membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail acara secara terus menerus ke bucket Amazon S3, termasuk acara untuk Athena. Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat peristiwa terbaru di CloudTrail konsol dalam **Riwayat acara**. 

Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke Athena, alamat IP dari mana permintaan itu dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan. 

Untuk mempelajari selengkapnya CloudTrail, lihat [Panduan AWS CloudTrail Pengguna](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

Anda dapat menggunakan Athena untuk menanyakan file CloudTrail log dari Athena itu sendiri dan dari yang lain. Layanan AWS Untuk informasi lebih lanjut, lihat[AWS CloudTrail Log kueri](cloudtrail-logs.md),[Sarang JSON SerDe](hive-json-serde.md), dan posting Blog AWS Big Data [Gunakan pernyataan CTAS dengan Amazon Athena untuk mengurangi biaya dan meningkatkan](https://aws.amazon.com/blogs/big-data/using-ctas-statements-with-amazon-athena-to-reduce-cost-and-improve-performance/) kinerja, yang CloudTrail digunakan untuk memberikan wawasan tentang penggunaan Athena.

## Tentang Athena informasi di CloudTrail
<a name="athena-info-in-cloudtrail"></a>

CloudTrail diaktifkan di akun Amazon Web Services Anda saat Anda membuat akun. Ketika aktivitas terjadi di Athena, aktivitas tersebut dicatat dalam suatu CloudTrail peristiwa bersama dengan acara AWS layanan lainnya dalam riwayat **Acara**. Anda dapat melihat, mencari, dan mengunduh kejadian terbaru di akun Amazon Web Services Anda. Untuk informasi selengkapnya, lihat [Melihat peristiwa dengan riwayat CloudTrail acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

Untuk catatan peristiwa yang sedang berlangsung di akun Amazon Web Services Anda, termasuk peristiwa untuk Athena, buatlah jejak. *Jejak* memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Secara default, saat Anda membuat jejak di konsol, jejak tersebut berlaku untuk semua Wilayah AWS. Jejak mencatat peristiwa dari semua Wilayah di AWS partisi dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengonfigurasi lainnya Layanan AWS untuk menganalisis lebih lanjut dan menindaklanjuti data peristiwa yang dikumpulkan dalam CloudTrail log. Untuk informasi selengkapnya, lihat berikut: 
+ [Gambaran umum untuk membuat jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail layanan dan integrasi yang didukung](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Mengonfigurasi notifikasi Amazon SNS untuk CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Menerima file CloudTrail log dari beberapa wilayah](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) dan [Menerima file CloudTrail log dari beberapa akun](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Semua tindakan Athena dicatat oleh CloudTrail dan didokumentasikan dalam Referensi API [Amazon Athena](https://docs.aws.amazon.com/athena/latest/APIReference/). Misalnya, panggilan ke [StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html)dan [GetQueryResults](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html)tindakan menghasilkan entri dalam file CloudTrail log.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan hal berikut ini: 
+ Apakah permintaan itu dibuat dengan kredenal pengguna root atau AWS Identity and Access Management (IAM).
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna gabungan.
+ Apakah permintaan tersebut dibuat oleh Layanan AWS lain.

Untuk informasi selengkapnya, lihat [Elemen userIdentity CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Memahami entri file log Athena
<a name="understanding-ate-log-file-entries"></a>

Trail adalah konfigurasi yang memungkinkan pengiriman peristiwa sebagai file log ke bucket Amazon S3 yang Anda tentukan. CloudTrail file log berisi satu atau lebih entri log. Peristiwa mewakili permintaan tunggal dari sumber manapun dan mencakup informasi tentang tindakan yang diminta, tanggal dan waktu tindakan, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, jadi file tersebut tidak muncul dalam urutan tertentu. 

**catatan**  
Untuk mencegah pengungkapan informasi sensitif yang tidak diinginkan, `queryString` entri dalam `CreateNamedQuery` log `StartQueryExecution` dan log memiliki nilai. `***OMITTED***` Ini dengan desain. Untuk mengakses string kueri yang sebenarnya, Anda dapat menggunakan Athena [GetQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_GetQueryExecution.html)API dan meneruskan nilai `responseElements.queryExecutionId` dari log. CloudTrail 

Contoh berikut menunjukkan entri CloudTrail log untuk:
+  [StartQueryExecution(Berhasil)](#startqueryexecution-successful) 
+  [StartQueryExecution (Gagal)](#startqueryexecution-failed) 
+  [CreateNamedQuery](#createnamedquery) 

### StartQueryExecution (berhasil)
<a name="startqueryexecution-successful"></a>

```
{
 "eventVersion":"1.05",
 "userIdentity":{
    "type":"IAMUser",
    "principalId":"EXAMPLE_PRINCIPAL_ID",
    "arn":"arn:aws:iam::123456789012:user/johndoe",
    "accountId":"123456789012",
    "accessKeyId":"EXAMPLE_KEY_ID",
    "userName":"johndoe"
 },
 "eventTime":"2017-05-04T00:23:55Z",
 "eventSource":"athena.amazonaws.com",
 "eventName":"StartQueryExecution",
 "awsRegion":"us-east-1",
 "sourceIPAddress":"77.88.999.69",
 "userAgent":"aws-internal/3",
 "requestParameters":{
    "clientRequestToken":"16bc6e70-f972-4260-b18a-db1b623cb35c",
    "resultConfiguration":{
       "outputLocation":"s3://amzn-s3-demo-bucket/test/"
    },
    "queryString":"***OMITTED***"
 },
 "responseElements":{
    "queryExecutionId":"b621c254-74e0-48e3-9630-78ed857782f9"
 },
 "requestID":"f5039b01-305f-11e7-b146-c3fc56a7dc7a",
 "eventID":"c97cf8c8-6112-467a-8777-53bb38f83fd5",
 "eventType":"AwsApiCall",
 "recipientAccountId":"123456789012"
}
```

### StartQueryExecution (gagal)
<a name="startqueryexecution-failed"></a>

```
{
 "eventVersion":"1.05",
 "userIdentity":{
  "type":"IAMUser",
  "principalId":"EXAMPLE_PRINCIPAL_ID",
  "arn":"arn:aws:iam::123456789012:user/johndoe",
  "accountId":"123456789012",
  "accessKeyId":"EXAMPLE_KEY_ID",
  "userName":"johndoe"
  },
 "eventTime":"2017-05-04T00:21:57Z",
 "eventSource":"athena.amazonaws.com",
 "eventName":"StartQueryExecution",
 "awsRegion":"us-east-1",
 "sourceIPAddress":"77.88.999.69",
 "userAgent":"aws-internal/3",
 "errorCode":"InvalidRequestException",
 "errorMessage":"Invalid result configuration. Should specify either output location or result configuration",
 "requestParameters":{
  "clientRequestToken":"ca0e965f-d6d8-4277-8257-814a57f57446",
  "queryString":"***OMITTED***"
  },
 "responseElements":null,
 "requestID":"aefbc057-305f-11e7-9f39-bbc56d5d161e",
 "eventID":"6e1fc69b-d076-477e-8dec-024ee51488c4",
 "eventType":"AwsApiCall",
 "recipientAccountId":"123456789012"
}
```

### CreateNamedQuery
<a name="createnamedquery"></a>

```
{
  "eventVersion":"1.05",
  "userIdentity":{
     "type":"IAMUser",
     "principalId":"EXAMPLE_PRINCIPAL_ID",
     "arn":"arn:aws:iam::123456789012:user/johndoe",
     "accountId":"123456789012",
     "accessKeyId":"EXAMPLE_KEY_ID",
     "userName":"johndoe"
  },
  "eventTime":"2017-05-16T22:00:58Z",
  "eventSource":"athena.amazonaws.com",
  "eventName":"CreateNamedQuery",
  "awsRegion":"us-west-2",
  "sourceIPAddress":"77.88.999.69",
  "userAgent":"aws-cli/1.11.85 Python/2.7.10 Darwin/16.6.0 botocore/1.5.48",
  "requestParameters":{
     "name":"johndoetest",
     "queryString":"***OMITTED***",
     "database":"default",
     "clientRequestToken":"fc1ad880-69ee-4df0-bb0f-1770d9a539b1"
     },
  "responseElements":{
     "namedQueryId":"cdd0fe29-4787-4263-9188-a9c8db29f2d6"
     },
  "requestID":"2487dd96-3a83-11e7-8f67-c9de5ac76512",
  "eventID":"15e3d3b5-6c3b-4c7c-bc0b-36a8dd95227b",
  "eventType":"AwsApiCall",
  "recipientAccountId":"123456789012"
},
```

# Validasi kepatuhan untuk
<a name="security-compliance-validation"></a>

Auditor pihak ketiga menilai keamanan dan kepatuhan sebagai bagian dari beberapa program AWS kepatuhan. Ini mencakup SOC, PCI, FedRAMP, dan lainnya.

Untuk daftar Layanan AWS dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS dalam lingkup berdasarkan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/). Untuk informasi umum, lihat [Program kepatuhan AWS](https://aws.amazon.com/compliance/programs/).

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Tanggung jawab kepatuhan Anda saat menggunakan ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. AWS menyediakan sumber daya berikut untuk membantu kepatuhan:
+ [Panduan memulai cepat keamanan dan kepatuhan — Panduan](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) penerapan ini membahas pertimbangan arsitektur dan memberikan langkah-langkah untuk menerapkan lingkungan dasar yang berfokus pada keamanan dan kepatuhan. AWS
+ [Arsitektur untuk keamanan dan kepatuhan HIPAA di Amazon Web Services](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) — Whitepaper ini menjelaskan bagaimana perusahaan dapat menggunakan AWS untuk membuat aplikasi yang sesuai dengan HIPAA.
+ [AWS sumber daya kepatuhan](https://aws.amazon.com/compliance/resources/) - Kumpulan buku kerja dan panduan ini mungkin berlaku untuk industri dan lokasi Anda.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html)— Ini Layanan AWS menilai seberapa baik konfigurasi sumber daya Anda mematuhi praktik internal, pedoman industri, dan peraturan.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Ini Layanan AWS memberikan pandangan komprehensif tentang keadaan keamanan Anda di dalamnya AWS yang membantu Anda memeriksa kepatuhan Anda terhadap standar industri keamanan dan praktik terbaik.

# Ketahanan di Athena
<a name="security-resilience"></a>

Infrastruktur AWS global dibangun di sekitar Wilayah AWS dan Availability Zones. Wilayah AWS menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang dan mengoperasikan aplikasi dan basis data yang secara otomatis melakukan failover di antara Zona Ketersediaan tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur biasa yang terdiri dari satu atau beberapa pusat data. 

Untuk informasi selengkapnya tentang Wilayah AWS dan Availability Zone, lihat [infrastruktur AWS global](https://aws.amazon.com/about-aws/global-infrastructure/).

Selain infrastruktur AWS global, menawarkan beberapa fitur untuk membantu mendukung ketahanan data dan kebutuhan cadangan Anda.

Athena tidak memiliki server, sehingga tidak ada infrastruktur untuk disiapkan atau dikelola. Athena sangat tersedia dan menjalankan kueri menggunakan sumber daya komputasi di beberapa Availability Zone, secara otomatis merutekan kueri dengan tepat jika Availability Zone tertentu tidak terjangkau. Athena menggunakan Amazon S3 sebagai penyimpanan data yang mendasarinya, membuat data Anda sangat tersedia dan tahan lama. Amazon S3 menyediakan infrastruktur tahan lama untuk menyimpan data penting dan dirancang untuk daya tahan 99,999999999% objek. Data Anda disimpan secara berlebihan di berbagai fasilitas dan beberapa perangkat di setiap fasilitas.

# Keamanan infrastruktur di Athena
<a name="security-infrastructure"></a>

Sebagai layanan terkelola, dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Gunakan kebijakan IAM untuk membatasi akses ke operasi Athena. Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) di *Panduan Pengguna IAM*.

[Kebijakan terkelola](security-iam-awsmanpol.md) Athena mudah digunakan, dan diperbarui secara otomatis dengan tindakan yang diperlukan seiring berkembangnya layanan. Kebijakan yang dikelola pelanggan dan inline memungkinkan Anda untuk menyempurnakan kebijakan dengan menentukan tindakan Athena yang lebih terperinci dalam kebijakan. Memberikan akses yang sesuai ke lokasi data Amazon S3. Untuk informasi dan skenario mendetail tentang cara memberikan akses Amazon S3, lihat [Contoh penelusuran: Mengelola akses di Panduan Pengembang Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access.html) Penyimpanan *Sederhana Amazon*. Untuk informasi selengkapnya dan contoh tindakan Amazon S3 yang diizinkan, lihat kebijakan bucket contoh di [Akses Lintas Akun](cross-account-permissions.md). 

**Topics**
+ [Connect ke Amazon Athena menggunakan antarmuka VPC endpoint](interface-vpc-endpoint.md)

# Connect ke Amazon Athena menggunakan antarmuka VPC endpoint
<a name="interface-vpc-endpoint"></a>

Anda dapat meningkatkan postur keamanan VPC Anda dengan menggunakan antarmuka VPC [endpoint ()AWS PrivateLink dan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) di Virtual Private Cloud ([AWS Glue VPC](https://docs.aws.amazon.com/glue/latest/dg/vpc-endpoint.html)) Anda. Endpoint VPC antarmuka meningkatkan keamanan dengan memberi Anda kontrol atas tujuan apa yang dapat dicapai dari dalam VPC Anda. Setiap titik akhir VPC diwakili oleh satu atau lebih [antarmuka jaringan Elastic](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENIs) dengan alamat IP pribadi di subnet VPC Anda.

Titik akhir VPC antarmuka menghubungkan VPC Anda langsung ke Athena tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans dalam VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi dengan API Athena.

Untuk menggunakan Athena melalui VPC Anda, Anda harus terhubung dari sebuah instans yang ada di dalam VPC atau menghubungkan jaringan privat Anda ke VPC Anda dengan menggunakan Amazon Virtual Private Network (VPN) atau Direct Connect. Untuk informasi tentang Amazon VPN, lihat [Koneksi VPN](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html) di *Panduan Pengguna Amazon Virtual Private Cloud*. Untuk selengkapnya AWS Direct Connect, lihat [Membuat sambungan](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) di *Panduan Direct Connect Pengguna*.

[Athena mendukung titik akhir VPC di semua tempat Wilayah AWS Amazon [VPC](https://docs.aws.amazon.com/general/latest/gr/rande.html#vpc_region) dan Athena tersedia.](https://docs.aws.amazon.com/general/latest/gr/rande.html#athena)

Anda dapat membuat titik akhir VPC antarmuka untuk terhubung ke Athena menggunakan perintah or (). Konsol Manajemen AWS AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Membuat titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint).

Setelah Anda membuat titik akhir VPC antarmuka, jika Anda mengaktifkan nama host [DNS pribadi](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns) untuk titik akhir, titik akhir Athena default (https://athena. *Region*.amazonaws.com) menyelesaikan ke titik akhir VPC Anda.

Jika Anda tidak mengaktifkan nama host DNS privat, Amazon VPC menyediakan nama titik akhir DNS yang dapat Anda gunakan dalam format berikut:

```
VPC_Endpoint_ID.athena.Region.vpce.amazonaws.com
```

Untuk informasi selengkapnya, lihat [Titik akhir VPC Antarmuka (AWS PrivateLink) di Panduan](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) Pengguna Amazon *VPC*.

Athena mendukung panggilan ke semua [tindakan API-nya](https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html) di dalam VPC Anda.

## Membuat kebijakan titik akhir VPC untuk Athena
<a name="api-private-link-policy"></a>

Anda dapat membuat kebijakan untuk titik akhir VPC Amazon untuk Athena untuk menentukan batasan seperti berikut:
+ **Principal** — Prinsipal yang dapat melakukan tindakan.
+ **Tindakan** — Tindakan yang dapat dilakukan.
+ **Sumber daya** — Sumber daya di mana tindakan dapat dilakukan.
+ **Hanya identitas tepercaya** — Gunakan `aws:PrincipalOrgId` kondisi untuk membatasi akses hanya ke kredensyal yang merupakan bagian dari organisasi Anda. AWS Ini dapat membantu mencegah akses oleh kepala sekolah yang tidak diinginkan. 
+ **Hanya sumber daya tepercaya** — Gunakan `aws:ResourceOrgId` kondisi untuk mencegah akses ke sumber daya yang tidak diinginkan. 
+ **Hanya identitas dan sumber daya tepercaya** — Buat kebijakan gabungan untuk titik akhir VPC yang membantu mencegah akses ke prinsip dan sumber daya yang tidak diinginkan. 

*Untuk informasi selengkapnya, lihat [Mengontrol akses ke layanan dengan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) di *Panduan Pengguna Amazon VPC* dan Lampiran [2 — Contoh kebijakan titik akhir VPC](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/appendix-2-vpc-endpoint-policy-examples.html) di Whitepaper Membangun perimeter data. AWS AWS*

**Example — Kebijakan titik akhir VPC**  
Contoh berikut memungkinkan permintaan oleh identitas organisasi untuk sumber daya organisasi dan memungkinkan permintaan oleh prinsipal AWS layanan.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "my-org-id",
                    "aws:ResourceOrgID": "my-org-id"
                }
            }
        },
        {
            "Sid": "AllowRequestsByAWSServicePrincipals",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Tentang titik akhir VPC di subnet bersama
<a name="interface-vpc-endpoint-shared-subnets"></a>

Anda tidak dapat membuat, mendeskripsikan, memodifikasi, atau menghapus titik akhir VPC di subnet yang dibagikan dengan Anda. Namun, Anda dapat menggunakan titik akhir VPC di subnet yang dibagikan dengan Anda. Untuk informasi tentang berbagi VPC, lihat [Membagikan VPC Anda dengan akun lain di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html) Amazon *VPC*.

# Analisis konfigurasi dan kerentanan di Athena
<a name="security-vulnerability-management"></a>

Athena tidak memiliki server, jadi tidak ada infrastruktur untuk diatur atau dikelola. AWS menangani tugas-tugas keamanan dasar, seperti sistem operasi tamu (OS) dan patch database, konfigurasi firewall, dan pemulihan bencana. Prosedur ini telah ditinjau dan disertifikasi oleh pihak ketiga yang sesuai. Untuk detail selengkapnya, lihat AWS sumber daya berikut:
+  [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) 
+ [Praktik terbaik untuk keamanan, identitas, & kepatuhan](https://aws.amazon.com/architecture/security-identity-compliance/)

# Gunakan Athena untuk menanyakan data yang terdaftar dengan AWS Lake Formation
<a name="security-athena-lake-formation"></a>

[AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html)memungkinkan Anda menentukan dan menerapkan kebijakan akses tingkat database, tabel, dan kolom saat menggunakan kueri Athena untuk membaca data yang disimpan di Amazon S3 atau diakses melalui sumber data gabungan. Lake Formation menyediakan lapisan otorisasi dan tata kelola pada data yang disimpan di Amazon S3 atau katalog data federasi. Anda dapat menggunakan hierarki izin di Lake Formation untuk memberikan atau mencabut izin untuk membaca objek katalog data seperti basis data, tabel, dan kolom. Lake Formation menyederhanakan pengelolaan izin dan memungkinkan Anda menerapkan kontrol akses ketat (FGAC) untuk data Anda.

Anda dapat menggunakan Athena untuk mengkueri kedua data yang terdaftar dengan Lake Formation dan data yang tidak terdaftar dengan Lake Formation.

Izin Lake Formation berlaku saat menggunakan Athena untuk menanyakan data sumber dari lokasi Amazon S3 atau katalog data yang terdaftar di Lake Formation. Izin Lake Formation juga berlaku saat Anda membuat database dan tabel yang mengarah ke lokasi data Amazon S3 atau katalog data terdaftar.

Izin Lake Formation tidak berlaku saat menulis objek, juga tidak berlaku saat menanyakan data atau metadata yang tidak terdaftar di Lake Formation. Untuk data sumber dan metadata yang tidak terdaftar di Lake Formation, akses ditentukan oleh kebijakan dan tindakan izin IAM. AWS Glue Lokasi hasil kueri Athena di Amazon S3 tidak dapat didaftarkan dengan Lake Formation, dan kebijakan izin IAM untuk akses kontrol Amazon S3. Selain itu, Lake Formation izin tidak berlaku untuk riwayat permintaan Athena. Anda dapat menggunakan grup kerja Athena untuk mengontrol akses ke riwayat kueri.

Untuk informasi lebih lanjut tentang Lake Formation, lihat [Lake Formation FAQs](https://aws.amazon.com/lake-formation/faqs/) dan [Panduan AWS Lake Formation Pengembang](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

## Terapkan izin Lake Formation ke database dan tabel yang ada
<a name="lf-athena-apply-lf-permissions-to-existing-databases-and-tables"></a>

Jika Anda baru mengenal Athena dan Anda menggunakan Lake Formation untuk mengonfigurasi akses ke data kueri, Anda tidak perlu mengonfigurasi kebijakan IAM sehingga pengguna dapat membaca data dan membuat metadata. Anda dapat menggunakan Lake Formation untuk mengelola izin.

Mendaftarkan data dengan Lake Formation dan memperbarui kebijakan izin IAM bukan merupakan persyaratan. Jika data tidak terdaftar di Lake Formation, pengguna Athena yang memiliki izin yang sesuai dapat melanjutkan kueri data yang tidak terdaftar di Lake Formation.

Jika Anda memiliki pengguna Athena yang menanyakan data Amazon S3 yang tidak terdaftar di Lake Formation, Anda dapat memperbarui izin IAM untuk Amazon S3—dan, jika AWS Glue Data Catalog berlaku—sehingga Anda dapat menggunakan izin Lake Formation untuk mengelola akses pengguna secara terpusat. Untuk izin untuk membaca lokasi data Amazon S3, Anda dapat memperbarui berbasis sumber daya dan kebijakan berbasis identitas untuk memodifikasi izin Amazon S3. Untuk akses ke metadata, jika Anda mengonfigurasi kebijakan tingkat sumber daya untuk kontrol akses berbutir halus, Anda AWS Glue dapat menggunakan izin Lake Formation untuk mengelola akses. 

Untuk informasi selengkapnya, lihat [Konfigurasikan akses ke database dan tabel di AWS Glue Data Catalog](fine-grained-access-to-glue-resources.md) dan [Memutakhirkan izin AWS Glue data ke AWS Lake Formation model di](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html) Panduan *AWS Lake Formation Pengembang*.

**Topics**
+ [Terapkan izin Lake Formation ke database dan tabel yang ada](#lf-athena-apply-lf-permissions-to-existing-databases-and-tables)
+ [Cara kerja akses data](lf-athena-access.md)
+ [Pertimbangan dan batasan](lf-athena-limitations.md)
+ [Akses lintas akun](lf-athena-limitations-cross-account.md)
+ [Kelola izin pengguna](lf-athena-user-permissions.md)
+ [Gunakan Lake Formation dan JDBC atau ODBC untuk akses federasi](security-athena-lake-formation-jdbc.md)

# Bagaimana Athena mengakses data yang terdaftar di Lake Formation
<a name="lf-athena-access"></a>

Alur kerja akses yang dijelaskan di bagian ini berlaku saat Anda menjalankan kueri Athena di lokasi Amazon S3, katalog data, atau objek metadata yang terdaftar di Lake Formation. Untuk informasi selengkapnya, lihat [Mendaftarkan data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html) di *Panduan AWS Lake Formation Pengembang*. Selain mendaftarkan data, administrator Lake Formation menerapkan izin Lake Formation yang memberikan atau mencabut akses ke metadata di katalog data AWS Glue Data Catalog, atau lokasi data di Amazon S3. Untuk informasi selengkapnya, lihat [Keamanan dan kontrol akses ke metadata dan data](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html#security-data-access-permissions) di Panduan *AWS Lake Formation Pengembang*.

Setiap kali kepala sekolah Athena (pengguna, grup, atau peran) menjalankan kueri pada data yang terdaftar menggunakan Lake Formation, Lake Formation memverifikasi bahwa kepala sekolah memiliki izin Lake Formation yang sesuai ke database, tabel, dan lokasi sumber data yang sesuai untuk kueri. Jika utama memiliki akses, Lake Formation*vends*sementara mandat untuk Athena, dan permintaan berjalan.

Diagram berikut menunjukkan cara kerja penjual kredenal di Athena query-by-query berdasarkan `SELECT` kueri hipotetis pada tabel dengan lokasi Amazon S3 atau katalog data yang terdaftar di Lake Formation:

![\[Alur kerja penjual kredenal untuk kueri pada tabel Athena.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/lake-formation-athena-security.png)


1. utama menjalankan kueri `SELECT` di Athena.

1. Athena menganalisis kueri dan memeriksa izin Lake Formation untuk melihat apakah utama telah diberikan akses ke kolom tabel dan tabel.

1. Jika utama memiliki akses, Athena meminta mandat dari Lake Formation. Jika prinsipal*tidak*memiliki akses, Athena masalah akses ditolak kesalahan.

1. Lake Formation mengeluarkan kredensil ke Athena untuk digunakan saat membaca data dari Amazon S3 atau katalog, bersama dengan daftar kolom yang diizinkan.

1. Athena menggunakan kredensi sementara Lake Formation untuk menanyakan data dari Amazon S3 atau katalog. Setelah kueri selesai, Athena membuang mandat.

# Pertimbangan dan batasan untuk menanyakan data yang terdaftar di Lake Formation
<a name="lf-athena-limitations"></a>

Pertimbangkan hal berikut saat menggunakan Athena untuk kueri data yang terdaftar di Lake Formation. Untuk informasi tambahan, lihat [Masalah yang diketahui AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/limitations.html) di *Panduan AWS Lake Formation Pengembang*.

**Topics**
+ [Metadata kolom terlihat oleh pengguna tanpa izin data ke kolom dalam beberapa keadaan](#lf-athena-limitations-column-metadata)
+ [Bekerja dengan izin Lake Formation untuk tampilan](#lf-athena-limitations-permissions-to-views)
+ [Dukungan Iceberg DDL](#lf-athena-limitations-iceberg-ddl-operations)
+ [Kontrol akses halus Formasi Danau dan kelompok kerja Athena](#lf-athena-limitations-fine-grained-access-control)
+ [Lokasi hasil kueri Athena di Amazon S3 tidak terdaftar di Lake Formation](#lf-athena-limitations-query-results-location)
+ [Gunakan workgroup Athena untuk membatasi akses ke riwayat kueri](#lf-athena-limitations-use-workgroups-to-limit-access-to-query-history)
+ [CSE-KMS Amazon S3 yang terdaftar di Lake Formation tidak dapat ditanyakan di Athena](#lf-athena-limitations-cse-kms)
+ [Lokasi data yang dipartisi yang terdaftar dengan Lake Formation harus dalam subdirektori tabel](#lf-athena-limitations-partioned-data-locations)
+ [Buat tabel sebagai kueri pilih (CTAS) memerlukan izin tulis Amazon S3](#lf-athena-limitations-ctas-queries)
+ [Izin DESCRIBE diperlukan pada database default](#lf-athena-limitations-describe-default)

## Metadata kolom terlihat oleh pengguna yang tidak sah dalam beberapa keadaan dengan Avro dan kustom SerDe
<a name="lf-athena-limitations-column-metadata"></a>

Otorisasi level kolom Lake Formation mencegah pengguna mengakses data dalam kolom yang pengguna tidak memiliki izin Lake Formation. Namun, dalam situasi tertentu, pengguna dapat mengakses metadata yang menjelaskan semua kolom dalam tabel, termasuk kolom yang mereka tidak memiliki izin untuk data.

Hal ini terjadi ketika metadata kolom disimpan dalam properti tabel untuk tabel menggunakan format penyimpanan Apache Avro atau menggunakan kustom Serializer/Deserializer (SerDe) di mana skema tabel didefinisikan dalam properti tabel bersama dengan definisi. SerDe Saat menggunakan Athena dengan Lake Formation, sebaiknya Anda meninjau isi properti tabel yang Anda daftarkan dengan Lake Formation dan, jika memungkinkan, batasi informasi yang tersimpan di properti tabel untuk mencegah metadata sensitif terlihat oleh pengguna.

## Memahami Lake Formation dan pemandangan
<a name="lf-athena-limitations-permissions-to-views"></a>

Untuk data yang terdaftar di Lake Formation, pengguna Athena dapat membuat`VIEW`hanya jika mereka memiliki izin Lake Formation ke tabel, kolom, dan sumber lokasi data Amazon S3 tempat`VIEW`didasarkan. Setelah`VIEW`dibuat di Athena, izin Lake Formation dapat diterapkan ke`VIEW`. Izin level kolom tidak tersedia untuk`VIEW`. Pengguna yang memiliki izin Lake Formation ke`VIEW`tetapi tidak memiliki izin ke tabel dan kolom tempat tampilan didasarkan tidak dapat menggunakan`VIEW`untuk kueri data. Namun, pengguna dengan campuran izin ini dapat menggunakan pernyataan seperti`DESCRIBE VIEW`,`SHOW CREATE VIEW`, dan`SHOW COLUMNS`Untuk melihat`VIEW`Metadata. Untuk alasan ini, pastikan untuk menyelaraskan izin Lake Formation untuk setiap`VIEW`dengan izin tabel yang mendasari. Filter sel yang didefinisikan pada tabel tidak berlaku `VIEW` untuk tabel itu. Nama tautan sumber daya harus memiliki nama yang sama dengan sumber daya di akun asal. Ada batasan tambahan saat bekerja dengan tampilan dalam pengaturan lintas akun. Untuk informasi selengkapnya tentang menyiapkan izin untuk tampilan bersama di seluruh akun, lihat[Konfigurasikan akses Katalog Data lintas akun](lf-athena-limitations-cross-account.md).

## Dukungan Iceberg DDL
<a name="lf-athena-limitations-iceberg-ddl-operations"></a>

Athena saat ini tidak mendukung operasi DDL pada tabel Gunung Es yang lokasinya terdaftar di Lake Formation. Mencoba menjalankan kueri DDL pada salah satu tabel Iceberg ini dapat mengembalikan kesalahan akses Amazon S3 yang ditolak atau gagal dengan batas waktu kueri. Operasi DDL pada tabel Iceberg mengharuskan pengguna untuk memiliki akses langsung Amazon S3 ke lokasi tabel Iceberg.

## Kontrol akses halus Formasi Danau dan kelompok kerja Athena
<a name="lf-athena-limitations-fine-grained-access-control"></a>

Pengguna di workgroup Athena yang sama dapat melihat data yang telah dikonfigurasi oleh kontrol akses berbutir halus Lake Formation agar dapat diakses oleh workgroup. *Untuk informasi selengkapnya tentang penggunaan kontrol akses berbutir halus di Lake Formation, lihat [Mengelola kontrol akses berbutir halus menggunakan AWS Lake Formation](https://aws.amazon.com/blogs/big-data/manage-fine-grained-access-control-using-aws-lake-formation/) di Blog Big Data.AWS * 

## Lokasi hasil kueri Athena di Amazon S3 tidak terdaftar di Lake Formation
<a name="lf-athena-limitations-query-results-location"></a>

Hasil kueri lokasi di Amazon S3 untuk Athena tidak dapat didaftarkan dengan Lake Formation. Izin Lake Formation tidak membatasi akses ke lokasi ini. Kecuali Anda membatasi akses, pengguna Athena dapat mengakses file hasil kueri dan metadata saat mereka tidak memiliki izin Lake Formation untuk data tersebut. Untuk menghindari hal ini, kami sarankan Anda menggunakan grup kerja untuk menentukan lokasi untuk hasil kueri dan menyelaraskan keanggotaan grup kerja dengan Lake Formation izin. Anda kemudian dapat menggunakan kebijakan izin IAM untuk membatasi akses ke lokasi hasil permintaan. Untuk informasi selengkapnya tentang string kueri, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md).

## Gunakan workgroup Athena untuk membatasi akses ke riwayat kueri
<a name="lf-athena-limitations-use-workgroups-to-limit-access-to-query-history"></a>

Sejarah kueri Athena mengekspos daftar kueri disimpan dan string kueri lengkap. Kecuali Anda menggunakan grup kerja untuk memisahkan akses ke riwayat kueri, pengguna Athena yang tidak berwenang untuk meminta data di Lake Formation dapat melihat string kueri yang dijalankan pada data tersebut, termasuk nama kolom, kriteria pemilihan, dan sebagainya. Kami menyarankan Anda menggunakan grup kerja untuk memisahkan riwayat permintaan, dan menyelaraskan keanggotaan Athena grup kerja dengan izin Lake Formation untuk membatasi akses. Untuk informasi selengkapnya, lihat [Gunakan kelompok kerja untuk mengontrol akses kueri dan biaya](workgroups-manage-queries-control-costs.md).

## Kueri tabel terenkripsi CSE\$1KMS terdaftar dengan Lake Formation
<a name="lf-athena-limitations-cse-kms"></a>

Tabel Open Table Format (OTF) seperti Apache Iceberg yang memiliki karakteristik berikut tidak dapat ditanyakan dengan Athena:
+ Tabel didasarkan pada lokasi data Amazon S3 yang terdaftar di Lake Formation.
+ Objek di Amazon S3 dienkripsi menggunakan enkripsi sisi klien (CSE).
+ Enkripsi menggunakan kunci yang AWS KMS dikelola pelanggan ()`CSE_KMS`.

Untuk menanyakan tabel non-OTF yang dienkripsi dengan `CSE_KMS` kunci), tambahkan blok berikut ke kebijakan AWS KMS kunci yang Anda gunakan untuk enkripsi CSE. *<KMS\$1KEY\$1ARN>*adalah ARN dari AWS KMS kunci yang mengenkripsi data. *<IAM-ROLE-ARN>*adalah ARN dari peran IAM yang mendaftarkan lokasi Amazon S3 di Lake Formation.

```
{
    "Sid": "Allow use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "*"
    },
    "Action": "kms:Decrypt",
    "Resource": "<KMS-KEY-ARN>",
    "Condition": {
        "ArnLike": {
            "aws:PrincipalArn": "<IAM-ROLE-ARN>"
        }
    }
}
```

## Lokasi data yang dipartisi yang terdaftar dengan Lake Formation harus dalam subdirektori tabel
<a name="lf-athena-limitations-partioned-data-locations"></a>

tabel dipartisi terdaftar dengan Lake Formation harus memiliki data dipartisi dalam direktori yang subdirektori dari tabel di Amazon S3. Misalnya, tabel dengan lokasi`s3://amzn-s3-demo-bucket/mytable`dan partisi`s3://amzn-s3-demo-bucket/mytable/dt=2019-07-11`,`s3://amzn-s3-demo-bucket/mytable/dt=2019-07-12`, dan sebagainya dapat didaftarkan dengan Lake Formation dan bertanya menggunakan Athena. Di sisi lain, tabel dengan lokasi`s3://amzn-s3-demo-bucket/mytable`dan partisi yang terletak di`s3://amzn-s3-demo-bucket/dt=2019-07-11`,`s3://amzn-s3-demo-bucket/dt=2019-07-12`, dan sebagainya, tidak dapat didaftarkan di Lake Formation. Karena partisi tersebut bukan subdirektori dari`s3://amzn-s3-demo-bucket/mytable`, mereka juga tidak dapat dibaca dari Athena.

## Buat tabel sebagai kueri pilih (CTAS) memerlukan izin tulis Amazon S3
<a name="lf-athena-limitations-ctas-queries"></a>

Buat Tabel Sebagai Laporan (CTAS) memerlukan akses menulis ke lokasi Amazon S3 tabel. Untuk menjalankan kueri CTAS pada data yang terdaftar dengan Lake Formation, pengguna Athena harus memiliki izin IAM untuk menulis ke tabel lokasi Amazon S3 selain izin Pembentukan Danau yang sesuai untuk membaca lokasi data. Untuk informasi selengkapnya, lihat [Buat tabel dari hasil kueri (CTAS)](ctas.md).

## Izin DESCRIBE diperlukan pada database default
<a name="lf-athena-limitations-describe-default"></a>

`DESCRIBE`Izin Lake Formation diperlukan pada `default` database sehingga Lake Formation dapat melihatnya. Contoh AWS CLI perintah berikut memberikan `DESCRIBE` izin pada `default` database untuk pengguna `datalake_user1` dalam AWS akun`111122223333`.

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Database": {"Name":"default"}}
```

Untuk informasi selengkapnya, lihat [DESKRIPSIKAN](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html#perm-describe) di *Panduan AWS Lake Formation Pengembang*.

# Konfigurasikan akses Katalog Data lintas akun
<a name="lf-athena-limitations-cross-account"></a>

Untuk mengakses katalog data di akun lain, Anda dapat menggunakan AWS Glue fitur lintas akun Athena atau mengatur akses lintas akun di Lake Formation.

## Opsi A: Konfigurasikan akses Katalog Data lintas akun di Athena
<a name="lf-athena-limitations-cross-account-glue"></a>

Anda dapat menggunakan fitur AWS Glue katalog lintas akun Athena untuk mendaftarkan katalog di akun Anda. Kemampuan ini hanya tersedia di mesin Athena versi 2 dan versi yang lebih baru dan terbatas pada penggunaan wilayah yang sama antar akun. Untuk informasi selengkapnya, lihat [Daftarkan Katalog Data dari akun lain](data-sources-glue-cross-account.md).

Jika Katalog Data yang akan dibagikan memiliki kebijakan sumber daya yang dikonfigurasi AWS Glue, katalog tersebut harus diperbarui untuk mengizinkan akses ke AWS Resource Access Manager dan memberikan izin ke Akun B untuk menggunakan Katalog Data Akun A.

Untuk informasi selengkapnya, lihat [Konfigurasikan akses lintas akun ke katalog AWS Glue data](security-iam-cross-account-glue-catalog-access.md).

## Opsi B: Konfigurasikan akses lintas akun di Lake Formation
<a name="lf-athena-limitations-cross-account-glue-lf-xacct"></a>

AWS Lake Formation memungkinkan Anda menggunakan satu akun untuk mengelola Katalog Data pusat. Anda dapat menggunakan fitur ini untuk menerapkan[Akses lintas akun](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-cross-account.html)untuk metadata Katalog Data dan data yang mendasari. Misalnya, akun pemilik dapat memberikan akun (penerima) lain izin `SELECT` terhadap tabel. 

Untuk basis data bersama atau tabel untuk muncul di Athena Kueri Editor, Anda[buat tautan sumber daya](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html)di Lake Formation ke basis data bersama atau tabel. Saat akun penerima di Lake Formation menanyakan tabel pemilik, [CloudTrail](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-logging.html)menambahkan peristiwa akses data ke log untuk akun penerima dan akun pemilik.

Untuk tampilan bersama, ingatlah hal-hal berikut:
+ Kueri dijalankan pada link sumber daya target, bukan pada tabel sumber atau tampilan, dan kemudian output dibagikan ke akun target.
+ Tidak cukup hanya berbagi pandangan. Semua tabel yang terlibat dalam membuat tampilan harus menjadi bagian dari pangsa lintas akun.
+ Nama tautan sumber daya yang dibuat pada sumber daya bersama harus cocok dengan nama sumber daya di akun pemilik. Jika nama tidak cocok, pesan kesalahan seperti Gagal menganalisis tampilan tersimpan 'awsdatacatalog. *my-lf-resource-link*. *my-lf-view*': baris 3:3: Skema *schema\$1name* tidak ada terjadi.

Untuk informasi selengkapnya tentang akses lintas akun di Lake Formation, lihat sumber daya berikut di *Panduan AWS Lake Formation Pengembang:*

 [Akses lintas akun](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-cross-account.html) 

 [Cara kerja tautan sumber daya di Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html) 

 [Pencatatan lintas akun CloudTrail ](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-logging.html) 

# Kelola izin pengguna Lake Formation dan Athena
<a name="lf-athena-user-permissions"></a>

Lake Formation menjual kredensil untuk menanyakan penyimpanan data Amazon S3 atau katalog federasi yang terdaftar di Lake Formation. Jika sebelumnya Anda menggunakan kebijakan IAM untuk mengizinkan atau menolak izin membaca katalog atau lokasi data di Amazon S3, Anda dapat menggunakan izin Lake Formation sebagai gantinya. Namun, izin IAM lainnya masih diperlukan.

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

Bagian berikut meringkas izin yang diperlukan untuk menggunakan Athena untuk kueri data yang terdaftar di Lake Formation. Untuk informasi selengkapnya, lihat [Keamanan di AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security.html) dalam *AWS Lake Formation Panduan Developer*.

**Topics**
+ [Izin berbasis identitas untuk Lake Formation dan Athena](#lf-athena-user-permissions-identity-based)
+ [Izin Amazon S3 untuk lokasi hasil kueri Athena](#lf-athena-user-permissions-query-results-locations)
+ [Keanggotaan workgroup Athena ke riwayat kueri](#lf-athena-user-permissions-workgroup-memberships-query-history)
+ [Izin Lake Formation untuk data](#lf-athena-user-permissions-data)
+ [Izin IAM untuk menulis ke lokasi Amazon S3](#lf-athena-user-permissions-s3-write)
+ [Izin untuk data terenkripsi, metadata, dan hasil kueri Athena](#lf-athena-user-permissions-encrypted)
+ [Izin berbasis sumber daya untuk bucket Amazon S3 di akun eksternal (opsional)](#lf-athena-user-permissions-s3-cross-account)

## Izin berbasis identitas untuk Lake Formation dan Athena
<a name="lf-athena-user-permissions-identity-based"></a>

Siapa pun yang menggunakan Athena untuk meminta data yang terdaftar dengan Lake Formation harus memiliki kebijakan izin IAM yang mengizinkan tindakan `lakeformation:GetDataAccess`. [AWS kebijakan terkelola: AmazonAthenaFullAccess](security-iam-awsmanpol.md#amazonathenafullaccess-managed-policy) mengizinkan tindakan ini. Jika Anda menggunakan kebijakan inline, pastikan untuk memperbarui kebijakan izin untuk mengizinkan tindakan ini.

Di Lake Formation, *administrator danau data* memiliki izin untuk membuat objek metadata seperti database dan tabel, memberikan izin Lake Formation kepada pengguna lain, dan mendaftarkan lokasi Amazon S3 baru atau katalog data. Untuk mendaftarkan lokasi baru, izin untuk peran terkait layanan untuk Lake Formation diperlukan. *Untuk informasi selengkapnya, lihat [Membuat administrator data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#create-data-lake-admin) dan [izin peran terkait Layanan untuk Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html#service-linked-role-permissions) di Panduan Pengembang AWS Lake Formation .*

Pengguna Lake Formation dapat menggunakan Athena untuk menanyakan database, tabel, kolom tabel, dan penyimpanan data Amazon S3 yang mendasari atau katalog berdasarkan izin Lake Formation yang diberikan kepadanya oleh administrator data lake. Pengguna tidak dapat membuat basis data atau tabel, atau mendaftarkan lokasi Amazon S3 baru dengan Lake Formation. Untuk informasi selengkapnya, lihat [Membuat pengguna data lake](https://docs.aws.amazon.com/lake-formation/latest/dg/cloudtrail-tut-create-lf-user.html) di *Panduan AWS Lake Formation Pengembang*.

Di Athena, kebijakan izin berbasis identitas, termasuk untuk grup kerja Athena, masih mengontrol akses ke tindakan Athena untuk Amazon Web Services pengguna akun. Selain itu, akses gabungan mungkin disediakan melalui otentikasi berbasis SAML yang tersedia dengan driver Athena. Lihat informasi selengkapnya di [Gunakan kelompok kerja untuk mengontrol akses kueri dan biaya](workgroups-manage-queries-control-costs.md), [Menggunakan kebijakan IAM untuk mengontrol akses workgroup](workgroups-iam-policy.md), dan [Aktifkan akses federasi ke Athena API](access-federation-saml.md).

Untuk informasi selengkapnya, lihat [Memberikan izin Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html) di Panduan *AWS Lake Formation Pengembang*.

## Izin Amazon S3 untuk lokasi hasil kueri Athena
<a name="lf-athena-user-permissions-query-results-locations"></a>

Hasil kueri lokasi di Amazon S3 untuk Athena tidak dapat didaftarkan dengan Lake Formation. Izin Lake Formation tidak membatasi akses ke lokasi ini. Kecuali Anda membatasi akses, pengguna Athena dapat mengakses file hasil kueri dan metadata saat mereka tidak memiliki izin Lake Formation untuk data tersebut. Untuk menghindari hal ini, kami sarankan Anda menggunakan grup kerja untuk menentukan lokasi untuk hasil kueri dan menyelaraskan keanggotaan grup kerja dengan Lake Formation izin. Anda kemudian dapat menggunakan kebijakan izin IAM untuk membatasi akses ke lokasi hasil permintaan. Untuk informasi selengkapnya tentang string kueri, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md).

## Keanggotaan workgroup Athena ke riwayat kueri
<a name="lf-athena-user-permissions-workgroup-memberships-query-history"></a>

Sejarah kueri Athena mengekspos daftar kueri disimpan dan string kueri lengkap. Kecuali Anda menggunakan grup kerja untuk memisahkan akses ke riwayat kueri, pengguna Athena yang tidak berwenang untuk meminta data di Lake Formation dapat melihat string kueri yang dijalankan pada data tersebut, termasuk nama kolom, kriteria pemilihan, dan sebagainya. Kami menyarankan Anda menggunakan grup kerja untuk memisahkan riwayat permintaan, dan menyelaraskan keanggotaan Athena grup kerja dengan izin Lake Formation untuk membatasi akses. Untuk informasi selengkapnya, lihat [Gunakan kelompok kerja untuk mengontrol akses kueri dan biaya](workgroups-manage-queries-control-costs.md).

## Izin Lake Formation untuk data
<a name="lf-athena-user-permissions-data"></a>

Selain izin dasar untuk menggunakan Lake Formation, pengguna Athena harus memiliki izin Lake Formation untuk mengakses sumber daya yang mereka kueri. Izin ini diberikan dan dikelola oleh administrator Lake Formation. Untuk informasi selengkapnya, lihat [Keamanan dan kontrol akses ke metadata dan data](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html#security-data-access-permissions) di Panduan *AWS Lake Formation Pengembang*.

## Izin IAM untuk menulis ke lokasi Amazon S3
<a name="lf-athena-user-permissions-s3-write"></a>

Lake Formation izin untuk Amazon S3 tidak termasuk kemampuan untuk menulis ke Amazon S3. Buat Tabel Sebagai Laporan (CTAS) memerlukan akses menulis ke lokasi Amazon S3 tabel. Untuk menjalankan kueri CTAS pada data yang terdaftar dengan Lake Formation, pengguna Athena harus memiliki izin IAM untuk menulis ke tabel lokasi Amazon S3 selain izin Pembentukan Danau yang sesuai untuk membaca lokasi data. Untuk informasi selengkapnya, lihat [Buat tabel dari hasil kueri (CTAS)](ctas.md).

## Izin untuk data terenkripsi, metadata, dan hasil kueri Athena
<a name="lf-athena-user-permissions-encrypted"></a>

Data sumber yang mendasari di Amazon S3 dan metadata dalam katalog yang terdaftar di Lake Formation dapat dienkripsi. Tidak ada perubahan pada cara Athena menangani enkripsi hasil kueri saat menggunakan Athena untuk kueri data terdaftar dengan Lake Formation. Untuk informasi selengkapnya, lihat [Enkripsi hasil kueri Athena yang disimpan di Amazon S3](encrypting-query-results-stored-in-s3.md).
+ **Mengenkripsi data sumber** — Enkripsi data sumber lokasi data Amazon S3 didukung. Pengguna Athena yang mencari lokasi Amazon S3 terenkripsi yang terdaftar dengan Lake Formation memerlukan izin untuk mengenkripsi dan mendekripsi data. Untuk informasi lebih lanjut tentang persyaratan, lihat [Opsi enkripsi Amazon S3 yang didukung](encryption.md#encryption-options-S3-and-Athena) dan[Izin untuk data terenkripsi di Amazon S3](encryption.md#permissions-for-encrypting-and-decrypting-data). 
+ **Mengenkripsi metadata — Mengenkripsi metadata** di didukung. AWS Glue Data Catalog Bagi utama yang menggunakan Athena, kebijakan berbasis identitas harus mengizinkan`"kms:GenerateDataKey"`,`"kms:Decrypt"`, dan`"kms:Encrypt"`Tindakan untuk kunci yang digunakan untuk mengenkripsi metadata. Untuk informasi selengkapnya, lihat [Mengenkripsi Katalog Data Anda](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) di *Panduan AWS Glue Pengembang* dan. [Konfigurasikan akses dari Athena ke metadata terenkripsi di AWS Glue Data Catalog](access-encrypted-data-glue-data-catalog.md)

## Izin berbasis sumber daya untuk bucket Amazon S3 di akun eksternal (opsional)
<a name="lf-athena-user-permissions-s3-cross-account"></a>

Untuk kueri lokasi data Amazon S3 di akun yang berbeda, berbasis sumber daya IAM kebijakan (bucket kebijakan) harus memungkinkan akses ke lokasi. Untuk informasi selengkapnya, lihat [Konfigurasikan akses lintas akun di Athena ke bucket Amazon S3](cross-account-permissions.md).

Untuk informasi tentang mengakses katalog di akun lain, lihat. [Opsi A: Konfigurasikan akses Katalog Data lintas akun di Athena](lf-athena-limitations-cross-account.md#lf-athena-limitations-cross-account-glue)

# Gunakan Lake Formation dan driver JDBC atau ODBC untuk akses federasi ke Athena
<a name="security-athena-lake-formation-jdbc"></a>

Athena JDBC dan ODBC driver mendukung Gabungan berbasis SAML 2.0 dengan Athena menggunakan Okta dan Microsoft Active Directory Federation Services (AD FS) penyedia identitas. Dengan mengintegrasikan Amazon Athena AWS Lake Formation dengan, Anda mengaktifkan otentikasi berbasis SAMP ke Athena dengan kredensi perusahaan. Dengan Lake Formation dan AWS Identity and Access Management (IAM), Anda dapat mempertahankan kontrol akses tingkat kolom berbutir halus atas data yang tersedia untuk pengguna SAMP. Dengan driver Athena JDBC dan ODBC, akses gabungan tersedia untuk alat atau program akses.

Untuk menggunakan Athena untuk mengakses sumber data yang dikendalikan oleh Lake Formation, Anda perlu mengaktifkan federasi berbasis SAMP 2.0 dengan mengonfigurasi peran penyedia identitas (iDP) dan (IAM) Anda. AWS Identity and Access Management Untuk langkah mendetail, lihat [Tutorial: Konfigurasikan akses federasi untuk pengguna Okta ke Athena menggunakan Lake Formation dan JDBC](security-athena-lake-formation-jdbc-okta-tutorial.md).

## Prasyarat
<a name="security-athena-lake-formation-jdbc-prerequisites"></a>

Untuk menggunakan Amazon Athena dan Lake Formation untuk akses gabungan, Anda harus memenuhi persyaratan berikut:
+ Anda mengelola identitas perusahaan menggunakan penyedia identitas berbasis SAML yang ada, seperti Okta atau Microsoft Active Directory Federation Services (AD FS).
+ Anda menggunakan AWS Glue Data Catalog sebagai toko metadata.
+ Anda menentukan dan mengelola izin di Lake Formation untuk mengakses basis data, tabel, dan kolom di AWS Glue Data Catalog. Lihat informasi selengkapnya di [Panduan Developer AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/).
+ [Anda menggunakan versi 2.0.14 atau yang lebih baru dari driver [Athena JDBC atau versi 1.1.3 atau yang lebih baru dari driver](https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html) Athena ODBC.](connect-with-odbc.md)

## Pertimbangan dan batasan
<a name="security-athena-lake-formation-jdbc-considerations-and-limitations"></a>

Saat menggunakan driver Athena JDBC atau ODBC dan Lake Formation untuk mengonfigurasi akses gabungan ke Athena, ingatlah hal-hal berikut:
+ Saat ini, driver Athena JDBC dan driver ODBC mendukung Okta, Microsoft Active Directory Federation Services (AD FS), dan penyedia identitas Azure AD. Meskipun driver Athena JDBC memiliki kelas SAMP generik yang dapat diperluas untuk menggunakan penyedia identitas lain, dukungan untuk ekstensi khusus yang memungkinkan penyedia identitas lain () IdPs untuk digunakan dengan Athena mungkin terbatas.
+ Akses federasi menggunakan driver JDBC dan ODBC tidak kompatibel dengan fitur propagasi identitas terpercaya IAM Identity Center.
+ Saat ini, Anda tidak dapat menggunakan konsol Athena untuk mengonfigurasi dukungan untuk penggunaan IdP dan SAML dengan Athena. Untuk mengonfigurasi dukungan ini, Anda menggunakan penyedia identitas pihak ketiga, Lake Formation dan IAM konsol manajemen, dan JDBC atau ODBC driver klien.
+ Anda harus memahami[Spesifikasi SAML 2.0](https://www.oasis-open.org/standards#samlv2.0)dan cara kerjanya dengan penyedia identitas Anda sebelum mengonfigurasi penyedia identitas dan SAML untuk digunakan dengan Lake Formation dan Athena.
+ Penyedia SAMP dan driver Athena JDBC dan ODBC disediakan oleh pihak ketiga, sehingga dukungan AWS melalui masalah yang terkait dengan penggunaannya mungkin terbatas.

**Topics**
+ [Prasyarat](#security-athena-lake-formation-jdbc-prerequisites)
+ [Pertimbangan dan batasan](#security-athena-lake-formation-jdbc-considerations-and-limitations)
+ [Tutorial: Konfigurasikan akses federasi untuk pengguna Okta ke Athena menggunakan Lake Formation dan JDBC](security-athena-lake-formation-jdbc-okta-tutorial.md)

# Tutorial: Konfigurasikan akses federasi untuk pengguna Okta ke Athena menggunakan Lake Formation dan JDBC
<a name="security-athena-lake-formation-jdbc-okta-tutorial"></a>

Tutorial ini menunjukkan kepada Anda cara mengkonfigurasi Okta, AWS Lake Formation, AWS Identity and Access Management izin, dan driver Athena JDBC untuk mengaktifkan penggunaan federasi Athena berbasis SAMP. Lake Formation menyediakan kontrol akses berbutir halus atas data yang tersedia di Athena untuk pengguna berbasis SAML. Untuk mengatur konfigurasi ini, tutorial menggunakan konsol pengembang Okta, konsol AWS IAM dan Lake Formation, dan alat SQL. Workbench/J 
<a name="security-athena-lake-formation-jdbc-okta-tutorial-prerequisites"></a>
**Prasyarat**  
Tutorial ini mengasumsikan bahwa Anda telah melakukan hal berikut:
+ Membuat akun Amazon Web Services. Untuk membuat akun, kunjungi[Amazon Web Services](https://aws.amazon.com/).
+ [Menyiapkan lokasi hasil kueri](query-results-specify-location.md)para Athena en Amazon S3.
+ [Mendaftarkan lokasi bucket data Amazon S3](https://docs.aws.amazon.com/lake-formation/latest/dg/register-data-lake.html)dengan Lake Formation.
+ Ditetapkan sebuah[basis data](https://docs.aws.amazon.com/glue/latest/dg/define-database.html)dan[tabel](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html)pada[AWS Glue Katalog data](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)Yang menunjuk ke data Anda di Amazon S3.
  + Jika Anda belum mendefinisikan tabel, [jalankan AWS Glue crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) atau [gunakan Athena untuk menentukan database dan satu atau beberapa](work-with-data.md) tabel untuk data yang ingin Anda akses.
  + Tutorial ini menggunakan tabel berdasarkan [dataset perjalanan taksi NYC](https://registry.opendata.aws/nyc-tlc-trip-records-pds/) yang tersedia di [Registry data terbuka](https://registry.opendata.aws/). AWS Tutorial menggunakan nama database`tripdb`dan nama tabel`nyctaxi`.

**Topics**
+ [Langkah 1: Buat akun Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-1-create-an-okta-account)
+ [Langkah 2: Tambahkan pengguna dan grup ke Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-2-set-up-an-okta-application-for-saml-authentication)
+ [Langkah 3: Siapkan aplikasi Okta untuk otentikasi SAFL](#security-athena-lake-formation-jdbc-okta-tutorial-step-3-set-up-an-okta-application-for-saml-authentication)
+ [Langkah 4: Buat Penyedia Identitas AWS SALL dan Lake Formation mengakses peran IAM](#security-athena-lake-formation-jdbc-okta-tutorial-step-4-create-an-aws-saml-identity-provider-and-lake-formation-access-IAM-role)
+ [Langkah 5: Tambahkan peran IAM dan Penyedia Identitas SALL ke aplikasi Okta](#security-athena-lake-formation-jdbc-okta-tutorial-step-5-update-the-okta-application-with-the-aws-role-and-saml-identity-provider)
+ [Langkah 6: Berikan izin pengguna dan grup melalui AWS Lake Formation](#security-athena-lake-formation-jdbc-okta-tutorial-step-6-grant-permissions-through-aws-lake-formation)
+ [Langkah 7: Verifikasi akses melalui klien Athena JDBC](#security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client)
+ [Kesimpulan](#security-athena-lake-formation-jdbc-okta-tutorial-conclusion)
+ [Sumber daya terkait](#security-athena-lake-formation-jdbc-okta-tutorial-related-resources)

## Langkah 1: Buat akun Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-1-create-an-okta-account"></a>

Tutorial ini menggunakan Okta sebagai penyedia identitas berbasis SAML. Jika Anda belum memiliki akun Okta, Anda dapat membuat akun gratis. Akun Okta diperlukan agar Anda dapat membuat aplikasi Okta untuk otentikasi SAML.

**Untuk membuat akun**

1. Untuk menggunakan Okta, navigasikan ke[Halaman pendaftaran developer Okta](https://developer.okta.com/signup/)dan membuat akun percobaan Okta gratis. Layanan Edisi Developer tidak dipungut biaya hingga batas yang ditentukan oleh Okta di[developer.okta.com/pricing](https://developer.okta.com/pricing).

1. Saat Anda menerima email aktivasi, aktifkan akun Anda. 

   Nama domain Okta akan diberikan kepada Anda. Simpan nama domain untuk referensi. Kemudian, Anda menggunakan nama domain (*<okta-idp-domain>*) dalam string JDBC yang terhubung ke Athena.

## Langkah 2: Tambahkan pengguna dan grup ke Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-2-set-up-an-okta-application-for-saml-authentication"></a>

Pada langkah ini, Anda menggunakan konsol Okta untuk melakukan tugas berikut:
+ Buat dua pengguna Okta.
+ Buat dua grup Okta.
+ Tambahkan satu pengguna Okta ke setiap grup Okta.

**Untuk menambahkan pengguna ke Okta**

1. Setelah Anda mengaktifkan akun Okta Anda, masuk sebagai pengguna administratif ke domain Okta yang ditetapkan.

1. Di panel navigasi kiri, pilih**Direktori**, lalu pilih**Orang**.

1. Pilih**Tambahkan Orang**untuk menambahkan pengguna baru yang akan mengakses Athena melalui driver JDBC.  
![\[PilihTambahkan Orang.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-3.png)

1. Di**Tambahkan Orang**Di kotak dialog, masukkan informasi yang diperlukan.
   + Masukkan nilai untuk**Nama depan**dan**Nama terakhir**. Tutorial ini menggunakan *athena-okta-user*.
   + Masukkan**Nama pengguna**dan**Email utama**. Tutorial ini menggunakan *athena-okta-user@anycompany.com*.
   + Untuk**Kata Sandi**Pilih**Ditetapkan oleh admin**, dan kemudian memberikan sandi. Tutorial ini membersihkan pilihan untuk**Pengguna harus mengubah kata sandi pada login pertama**; persyaratan keamanan Anda mungkin berbeda.  
![\[Menambahkan pengguna ke aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4.png)

1. Pilih**Simpan dan Tambah Lainnya**.

1. Masukkan informasi untuk pengguna lain. Contoh ini menambahkan pengguna analis bisnis*athena-ba-user@anycompany.com*.  
![\[Menambahkan pengguna ke aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4a.png)

1. Pilih **Simpan**.

Dalam prosedur berikut, Anda menyediakan akses untuk dua grup Okta melalui driver Athena JDBC dengan menambahkan grup “Analis Bisnis” dan grup “Developer”.

**Untuk menambahkan grup Okta**

1. Dalam panel navigasi, pilih **Groups** lalu pilih **Create New Group**.

1. Pada**Grup**, pilih**Tambah Grup**.  
![\[Pilih Tambahkan grup kunci.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4c.png)

1. Di**Tambah Grup**Di kotak dialog, masukkan informasi yang diperlukan.
   + Untuk **Nama**, masukkan *lf-business-analyst*.
   + Untuk **Deskripsi Grup**, masukkan*Business Analysts*.  
![\[Menambahkan grup Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4d.png)

1. Pilih **Tambahkan grup kunci**.

1. Pada**Grup**, pilih**Tambah Grup**Sekali lagi. Kali ini Anda akan memasukkan informasi untuk grup Developer.

1. Masukkan informasi yang diperlukan.
   + Untuk **Nama**, masukkan *lf-developer*.
   + Untuk **Deskripsi Grup**, masukkan*Developers*.

1. Pilih **Tambahkan grup kunci**.

Setelah Anda memiliki dua pengguna dan dua grup, Anda siap untuk menambahkan pengguna ke setiap grup.

**Untuk menambahkan pengguna ke grup**

1. Pada**Grup**, pilih**Pengembang lf**Grup yang baru saja Anda buat. Anda akan menambahkan salah satu pengguna Okta yang Anda buat sebagai developer ke grup ini.  
![\[PilihPengembang lf.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4f.png)

1. Pilih**Mengelola orang**.  
![\[PilihMengelola orang.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4g.png)

1. Dari daftar **Bukan Anggota**, pilih **athena-okta-user**.   
![\[Pilih pengguna untuk ditambahkan ke daftar anggota.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4h.png)

   Entri untuk pengguna bergerak dari**Bukan anggota**daftar di sebelah kiri ke**Anggota**Daftar di sebelah kanan.   
![\[Pengguna Okta ditambahkan ke grup Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4i.png)

1. Pilih **Simpan**.

1. Pilih**Kembali ke Grup**, atau pilih**Direktori**, lalu pilih**Grup**.

1. Pilih **lf-business-analyst**grup.

1. Pilih**Mengelola orang**.

1. Tambahkan **athena-ba-user**ke daftar **Anggota **lf-business-analyst****grup, lalu pilih **Simpan**. 

1. Pilih**Kembali ke Grup**, atau pilih**Direktori**,**Grup**.

   Parameter**Grup**sekarang menunjukkan bahwa setiap grup memiliki satu pengguna Okta.  
![\[Satu pengguna telah ditambahkan ke setiap grup Okta di konsol Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-4j.png)

## Langkah 3: Siapkan aplikasi Okta untuk otentikasi SAFL
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-3-set-up-an-okta-application-for-saml-authentication"></a>

Pada langkah ini, Anda menggunakan konsol developer Okta untuk melakukan tugas berikut:
+ Tambahkan aplikasi SAFL untuk digunakan dengan AWS.
+ Tetapkan aplikasi ke pengguna Okta.
+ Menetapkan aplikasi ke grup Okta.
+ Unduh metadata penyedia identitas yang dihasilkan untuk digunakan nanti dengan AWS.

**Cara menambahkan aplikasi untuk otentikasi SAML**

1. Di panel navigasi Okta, pilih**Aplikasi**,**Aplikasi**sehingga Anda dapat mengonfigurasi aplikasi Okta untuk otentikasi SAML ke Athena.

1. Klik**Jelajahi Katalog Aplikasi**.

1. Dalam kotak pencarian, masukkan **Redshift**.

1. Pilih**Redshift Amazon Web Services**. Aplikasi Okta dalam tutorial ini menggunakan integrasi SAML yang ada untuk Amazon Redshift.  
![\[PilihRedshift Amazon Web Services.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-7.png)

1. Pada**Redshift Amazon Web Services**, pilih**Tambahkan**Untuk membuat aplikasi berbasis SAML untuk Amazon Redshift.  
![\[PilihTambahkanUntuk membuat aplikasi berbasis SAML.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-8.png)

1. Untuk**Aplikasi label**, masukkan`Athena-LakeFormation-Okta`, lalu pilih**Selesai**.  
![\[Masukkan nama untuk aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-9.png)

Sekarang setelah Anda membuat aplikasi Okta, Anda dapat menetapkannya ke pengguna dan grup yang Anda buat.

**Menetapkan aplikasi ke pengguna dan grup**

1. Pada halaman **Aplikasi**, pilih aplikasi **Athena- LakeFormation -Okta**.

1. Pada**Penugasan**tab, pilih**Tetapkan**,**Tugaskan ke Orang**.  
![\[PilihTetapkan,Tugaskan ke Orang.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-10.png)

1. Di kotak dialog **Tetapkan Athena-LakeFormation-Okta ke Orang**, temukan **athena-okta-user**pengguna yang Anda buat sebelumnya.

1. Pilih**Tetapkan**untuk menetapkan pengguna ke aplikasi.  
![\[PilihTetapkan.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-11.png)

1. Pilih**Simpan dan Kembali**.

1. Pilih**Selesai**.

1. **Pada tab **Tugas** untuk aplikasi **Athena LakeFormation -** -Okta, **pilih** Tetapkan, Tetapkan ke Grup.** 

1. **Untuk **lf-business-analyst**, pilih **Tetapkan untuk menetapkan** aplikasi **Athena- LakeFormation -Okta** ke **lf-business-analyst**grup, lalu pilih Selesai.**  
![\[Menetapkan aplikasi Okta ke grup pengguna Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-12b.png)

   Grup muncul dalam daftar grup untuk aplikasi.  
![\[Aplikasi Okta ditugaskan ke grup Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-12c.png)

Sekarang Anda siap mengunduh metadata aplikasi penyedia identitas untuk digunakan dengan AWS.

**Untuk mengunduh metadata aplikasi**

1. Pilih aplikasi Okta**Tanda Pada**tab, dan kemudian klik kanan**Metadata penyedia identitas**.  
![\[Klik kananMetadata penyedia identitas.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-13.png)

1. Pilih**Simpan Tautan Sebagai**untuk menyimpan metadata penyedia identitas, yang dalam format XML, ke file. Berikan nama yang Anda kenali (misalnya,`Athena-LakeFormation-idp-metadata.xml`).  
![\[Menyimpan metadata penyedia identitas.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-14.png)

## Langkah 4: Buat Penyedia Identitas AWS SALL dan Lake Formation mengakses peran IAM
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-4-create-an-aws-saml-identity-provider-and-lake-formation-access-IAM-role"></a>

Pada langkah ini, Anda menggunakan konsol AWS Identity and Access Management (IAM) untuk melakukan tugas-tugas berikut:
+ Buat penyedia identitas untuk AWS.
+ Buat IAM role untuk akses Lake Formation.
+ Tambahkan kebijakan AmazonAthenaFullAccess terkelola ke peran.
+ Tambahkan kebijakan untuk Lake Formation dan AWS Glue peran.
+ Menambahkan kebijakan untuk Athena hasil kueri untuk peran.

**Untuk membuat penyedia identitas AWS SAFL**

1. Masuk ke **konsol** **akun Amazon Web Services sebagai administrator akun** **Amazon Web Services** dan navigasikan ke konsol **IAM** ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).

1. Di panel navigasi, pilih **Penyedia identitas**, lalu klik **Tambah penyedia**.

1. Pada layar **Konfigurasi penyedia**, masukkan informasi berikut:
   + Untuk **tipe Provider**, pilih **SAFL**.
   + Untuk **nama Penyedia**, masukkan`AthenaLakeFormationOkta`.
   + Untuk **dokumen Metadata**, gunakan opsi **Pilih file untuk mengunggah file** XMLmetadata penyedia identitas (iDP) yang Anda unduh.

1. Pilih **Tambah penyedia**.

Selanjutnya, Anda membuat peran IAM untuk AWS Lake Formation akses. Anda menambahkan dua inline kebijakan untuk peran. Satu kebijakan memberikan izin untuk mengakses Lake Formation dan. AWS Glue APIs Kebijakan lainnya menyediakan akses ke Athena dan lokasi hasil kueri Athena di Amazon S3.

**Untuk membuat peran IAM untuk akses AWS Lake Formation**

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Pada halaman **Buat peran**, lakukan langkah-langkah berikut:  
![\[Mengonfigurasi IAM role untuk menggunakan SAML 2.0.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-20.png)

   1. Untuk **Pilih jenis entitas terpercaya**, pilih **Federasi SAML 2.0.**

   1. Untuk **penyedia SAFL**, pilih **AthenaLakeFormationOkta**.

   1. Untuk **penyedia SAFL**, pilih opsi **Izinkan programatik dan Konsol Manajemen AWS akses**.

   1. Pilih **Berikutnya: Izin**.

1. Pada**Melampirkan kebijakan Izin**halaman, untuk**Kebijakan filter**, masukkan**Athena**.

1. Pilih kebijakan **AmazonAthenaFullAccess**terkelola, lalu pilih **Berikutnya: Tag**.  
![\[Melampirkan kebijakan yang AmazonAthenaFullAccessdikelola ke peran IAM.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-21.png)

1. Pada halaman **Tambahkan tanda**, pilih **Berikutnya:**

1. Pada halaman **Tinjauan**, untuk **nama Peran**, masukkan nama untuk peran (misalnya,*Athena-LakeFormation-OktaRole*), lalu pilih **Buat peran**.  
![\[Masukkan Nama IAM role.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-22.png)

Selanjutnya, Anda menambahkan kebijakan sebaris yang mengizinkan akses ke Lake Formation AWS Glue APIs, dan hasil kueri Athena di Amazon S3. 

Setiap kali Anda menggunakan kebijakan IAM, pastikan bahwa Anda mengikuti praktik terbaik IAM. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

**Untuk menambahkan kebijakan inline ke peran Lake Formation dan AWS Glue**

1. Dari daftar peran di konsol IAM, pilih opsi baru dibuat`Athena-LakeFormation-OktaRole`.

1. Pada**Ringkasan**halaman untuk peran, pada**Izin**tab, pilih**Tambahkan kebijakan inline**.

1. Di halaman **Buat kebijakan**, pilih **JSON**.

1. Tambahkan kebijakan inline seperti berikut ini yang menyediakan akses ke Lake Formation dan file. AWS Glue APIs

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": [
               "lakeformation:GetDataAccess",
               "glue:GetTable",
               "glue:GetTables",
               "glue:GetDatabase",
               "glue:GetDatabases",
               "glue:CreateDatabase",
               "glue:GetUserDefinedFunction",
               "glue:GetUserDefinedFunctions"
           ],
           "Resource": "*"
       }
   }
   ```

------

1. Pilih **Tinjau kebijakan**.

1. Untuk **Nama**, masukkan nama untuk kebijakan (misalnya, **LakeFormationGlueInlinePolicy**).

1. Pilih **Buat kebijakan**.

**Untuk menambahkan kebijakan inline untuk peran untuk lokasi hasil permintaan Athena**

1. Pada**Ringkasan**halaman untuk`Athena-LakeFormation-OktaRole`peran, pada**Izin**tab, pilih**Tambahkan kebijakan inline**.

1. Di halaman **Buat kebijakan**, pilih tab JSON.

1. Tambahkan kebijakan inline seperti berikut yang memungkinkan akses peran ke lokasi hasil permintaan Athena. Ganti *<athena-query-results-bucket>* placeholder dalam contoh dengan nama bucket Amazon S3 Anda.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AthenaQueryResultsPermissionsForS3",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::<athena-query-results-bucket>",
                   "arn:aws:s3:::<athena-query-results-bucket>/*"
               ]
           }
       ]
   }
   ```

------

1. Pilih **Tinjau kebijakan**.

1. Untuk **Nama**, masukkan nama untuk kebijakan (misalnya, **AthenaQueryResultsInlinePolicy**).

1. Pilih **Buat kebijakan**.

Selanjutnya, Anda menyalin ARN peran akses Lake Formation dan ARN penyedia SAML yang Anda buat. Ini diperlukan saat Anda mengonfigurasi aplikasi Okta SAML di bagian berikutnya dari tutorial.

**Untuk menyalin peran ARN dan SAML identitas penyedia ARN**

1. Di konsol IAM, pada**Ringkasan**halaman untuk`Athena-LakeFormation-OktaRole`peran, pilih**Salin ke clipboard**ikon di samping**ARN ARN**. ARN memiliki format berikut:

   ```
   arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
   ```

1. Simpan ARN penuh aman untuk referensi nanti.

1. Di panel navigasi konsol IAM, pilih**Penyedia identitas**.

1. Pilih **AthenaLakeFormationOkta**penyedia.

1. Pada**Ringkasan**, pilih**Salin ke clipboard**ikon di samping**Penyedia ARN**. Outputnya akan terlihat seperti berikut:

   ```
   arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta
   ```

1. Simpan ARN penuh aman untuk referensi nanti.

## Langkah 5: Tambahkan peran IAM dan Penyedia Identitas SALL ke aplikasi Okta
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-5-update-the-okta-application-with-the-aws-role-and-saml-identity-provider"></a>

Pada langkah ini, Anda kembali ke konsol developer Okta dan melakukan tugas berikut:
+ Tambahkan pengguna dan grup atribut URL Lake Formation ke aplikasi Okta.
+ Menambahkan ARN untuk penyedia identitas dan ARN untuk IAM role untuk aplikasi Okta.
+ Salin ID aplikasi Okta. ID aplikasi Okta diperlukan dalam profil JDBC yang terhubung ke Athena.

**Untuk menambahkan pengguna dan grup atribut URL Lake Formation ke aplikasi Okta**

1. Masuk ke konsol developer Okta.

1. Pilih**Aplikasi**tab, dan kemudian pilih`Athena-LakeFormation-Okta`aplikasi.

1. Pilih pada**Tanda Pada**tab untuk aplikasi, dan kemudian pilih**Mengedit**.  
![\[Edit aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-24.png)

1. Pilih**Atribut (opsional)**untuk memperluasnya.  
![\[Menambahkan pengguna Lake Formation URL atribut ke aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-25.png)

1. Untuk**Pernyataan atribut (opsional)**, tambahkan atribut berikut:
   + Untuk **Nama**, masukkan **https://lakeformation.amazon.com/SAML/Attributes/Username**.
   + Untuk **Nilai**, masukkan **user.login**.

1. Di bawah**Kelompok Pernyataan Atribut (opsional)**, tambahkan atribut berikut:
   + Untuk **Nama**, masukkan **https://lakeformation.amazon.com/SAML/Attributes/Groups**.
   + Untuk**Format nama**, masukkan**Basic**
   + Untuk**Filter**Pilih**Cocok regex**, dan kemudian masukkan**.\$1**di kotak filter.  
![\[Menambahkan grup Lake Formation URL atribut untuk aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-25a.png)

1. Gulir ke bawah ke bagian **Pengaturan Masuk Lanjutan**, di mana Anda akan menambahkan penyedia identitas dan Peran IAM ARNs ke aplikasi Okta.

**Untuk menambahkan ARNs untuk penyedia identitas dan peran IAM ke aplikasi Okta**

1. Untuk **Idp ARN dan ARN Peran**, masukkan penyedia AWS identitas ARN dan peran ARN sebagai nilai yang dipisahkan koma dalam format,. *<saml-arn>* *<role-arn>* String gabungan akan terlihat seperti berikut:

   ```
   arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
   ```  
![\[Memasuki ARN penyedia identitas dan IAM role ARN dalam aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-26.png)

1. Pilih **Simpan**.

Selanjutnya, Anda menyalin ID aplikasi Okta. Anda akan membutuhkan ini nanti untuk string JDBC yang menghubungkan ke Athena.

**Untuk mencari dan menyalin ID aplikasi Okta**

1. Pilih**Umum**tab aplikasi Okta.  
![\[PilihUmumtab aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-27.png)

1. Gulir ke bawah ke**Tautan Sematkan Aplikasi**Bagian.

1. Dari**Tautan Sematkan**, salin dan simpan dengan aman bagian ID aplikasi Okta dari URL. ID aplikasi Okta adalah bagian dari URL setelah`amazon_aws_redshift/`tapi sebelum garis miring berikutnya. Misalnya, jika URL berisi`amazon_aws_redshift/aaa/bbb`, ID aplikasi adalah`aaa`.   
![\[Salin ID dari aplikasi Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-28.png)

**catatan**  
Tautan sematan tidak dapat digunakan untuk masuk langsung ke konsol Athena untuk melihat database. Izin Lake Formation untuk pengguna dan grup SALL hanya dikenali jika Anda menggunakan driver JDBC atau ODBC untuk mengirimkan kueri ke Athena. Untuk melihat database, Anda dapat menggunakan Workbench/J alat SQL, yang menggunakan driver JDBC untuk terhubung ke Athena. Workbench/J Alat SQL tercakup dalam[Langkah 7: Verifikasi akses melalui klien Athena JDBC](#security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client).

## Langkah 6: Berikan izin pengguna dan grup melalui AWS Lake Formation
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-6-grant-permissions-through-aws-lake-formation"></a>

Pada langkah ini, Anda menggunakan konsol Lake Formation untuk memberikan izin pada tabel untuk pengguna dan grup SAML. Anda harus melakukan langkah-langkah berikut:
+ Tentukan ARN dari pengguna Okta SAML dan izin pengguna terkait di atas tabel.
+ Tentukan ARN dari grup Okta SAML dan izin grup terkait di atas tabel.
+ Verifikasi izin yang Anda berikan.

**Untuk memberikan izin di Lake Formation untuk pengguna Okta**

1. Masuk sebagai administrator danau data ke Konsol Manajemen AWS. 

1. Buka konsol Lake Formation di [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dari panel navigasi, pilih**Tabel**, kemudian pilih tabel yang ingin Anda berikan izin untuk. Tutorial ini menggunakan`nyctaxi`tabel dari`tripdb`basis data.  
![\[Pilih tabel yang ingin Anda berikan izin untuk.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-29.png)

1. Dari**Tindakan**Pilih**Izin**.  
![\[PilihIzin.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-30.png)

1. Di**Berikan izin**, masukkan informasi berikut:

   1. Di bawah **pengguna dan grup SAFL dan Amazon Quick**, masukkan ARN pengguna OKTA SALL dalam format berikut:

      ```
      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>       
      ```

   1. Untuk**Kolom**, untuk**Pilih jenis filter**, dan opsional memilih**Sertakan kolom**atau**Mengecualikan kolom**.

   1. Gunakan**Pilih satu kolom atau lebih**di bawah filter untuk menentukan kolom yang ingin Anda sertakan atau kecualikan untuk atau dari pengguna.

   1. Untuk**Izin tabel**Pilih**Pilih**. Tutorial ini hanya memberikan`SELECT`; kebutuhan Anda mungkin berbeda.  
![\[Pemberian tabel dan kolom-level izin untuk pengguna Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-31.png)

1. Pilih**Izin**.

Sekarang Anda melakukan langkah serupa untuk grup Okta.

**Untuk memberikan izin di Lake Formation untuk grup Okta**

1. Pada**Tabel**konsol Lake Formation, pastikan bahwa**nyctaxi**tabel masih dipilih.

1. Dari**Tindakan**Pilih**Izin**.

1. Di**Berikan izin**, masukkan informasi berikut:

   1. Di bawah **pengguna dan grup SAFL dan Amazon Quick**, masukkan ARN grup OKTA SALL dalam format berikut:

      ```
      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
      ```

   1. Untuk**Kolom**,**Pilih jenis filter**Pilih**Sertakan kolom**.

   1. Untuk**Pilih satu kolom atau lebih**, pilih tiga kolom pertama dari tabel.

   1. Untuk**Izin tabel**, pilih izin akses khusus untuk diberikan. Tutorial ini hanya memberikan`SELECT`; kebutuhan Anda mungkin berbeda.  
![\[Memberikan izin tabel untuk grup Okta.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-31b.png)

1. Pilih**Izin**.

1. Untuk memverifikasi izin yang Anda berikan, pilih**Tindakan**,**Lihat izin**.  
![\[PilihLihat izinuntuk memverifikasi izin yang diberikan.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-32.png)

   Halaman **izin data** untuk `nyctaxi` tabel menunjukkan izin untuk **athena-okta-user**dan grup. **lf-business-analyst**  
![\[Melihat izin yang diberikan kepada pengguna Okta dan grup.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-33.png)

## Langkah 7: Verifikasi akses melalui klien Athena JDBC
<a name="security-athena-lake-formation-jdbc-okta-tutorial-step-7-verify-access-through-athena-jdbc-client"></a>

Sekarang Anda siap untuk menggunakan klien JDBC untuk melakukan koneksi tes ke Athena sebagai pengguna Okta SAML. 

Di bagian ini, Anda harus melakukan tugas berikut:
+ Mempersiapkan klien uji — Download driver Athena JDBC, menginstal SQL Workbench, dan menambahkan driver untuk Workbench. Tutorial ini menggunakan SQL Workbench untuk mengakses Athena melalui otentikasi Okta dan untuk memverifikasi izin Lake Formation.
+ NoSQL Workbench
  + Buat koneksi untuk pengguna Athena Okta.
  + Jalankan kueri tes sebagai pengguna Athena Okta.
  + Membuat dan menguji koneksi untuk pengguna analis bisnis.
+ Di konsol Okta, tambahkan pengguna analis bisnis ke grup developer.
+ Di konsol Lake Formation, konfigurasikan izin tabel untuk grup developer.
+ Dalam SQL Workbench, jalankan kueri tes sebagai pengguna analis bisnis dan memverifikasi bagaimana perubahan izin mempengaruhi hasil.

**Untuk menyiapkan klien uji**

1. Unduh dan ekstrak driver Athena JDBC yang kompatibel dengan Lake Formation (2.0.14 atau versi yang lebih baru) dari[Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md).

1. Unduh dan instal[SQL Workbench /J](https://www.sql-workbench.eu/index.html)Alat kueri SQL, tersedia di bawah lisensi Apache 2.0 yang dimodifikasi.

1. Dalam SQL Workbench, pilih**Berkas**, lalu pilih**Mengelola driver**.  
![\[PilihMengelola driver.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-1.png)

1. Di**Mengelola driver**, lakukan langkah-langkah berikut:

   1. Pilih ikon pemandu baru.

   1. Untuk **Nama**, masukkan **Athena**.

   1. Untuk**Perpustakaan**, browse ke dan pilih Simba Athena JDBC`.jar`yang baru saja diunduh.

   1. Pilih **OK**.  
![\[Menambahkan driver Athena JDBC untuk SQL Workbench.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-2.png)

Anda sekarang siap untuk membuat dan menguji koneksi untuk pengguna Athena Okta.

**Untuk membuat koneksi untuk pengguna Okta**

1. Pilih**Berkas**,**Connect jendela**.  
![\[PilihConnect jendela.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-3.png)

1. Di**Profil koneksi**kotak dialog, membuat koneksi dengan memasukkan informasi berikut:
   + Di Nama , masukkan**Athena\$1Okta\$1User\$1Connection**
   + Untuk**Driver**, pilih Sopir Simba Athena JDBC.
   + Untuk **Source**, lakukan salah satu hal berikut:
     + Untuk menggunakan URL koneksi, masukkan string koneksi satu baris. Contoh berikut menambahkan jeda baris untuk dibaca.

       ```
       jdbc:awsathena://AwsRegion=region-id;
       S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
       AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider;
       user=athena-okta-user@anycompany.com;
       password=password;
       idp_host=okta-idp-domain;
       App_ID=okta-app-id;
       SSL_Insecure=true;
       LakeFormationEnabled=true;
       ```
     + Untuk menggunakan URL AWS berbasis profil, lakukan langkah-langkah berikut:

       1. Konfigurasikan [AWS profil](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) yang memiliki file AWS kredensial seperti contoh berikut.

          ```
          [athena_lf_dev]
          plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider
          idp_host=okta-idp-domain
          app_id=okta-app-id
          uid=athena-okta-user@anycompany.com
          pwd=password
          ```

       1. Untuk**URL**, masukkan string koneksi single-line seperti contoh berikut. Contoh menambahkan jeda baris untuk dibaca.

          ```
          jdbc:awsathena://AwsRegion=region-id;
          S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
          profile=athena_lf_dev;
          SSL_Insecure=true;
          LakeFormationEnabled=true;
          ```

     Perhatikan bahwa contoh-contoh ini adalah representasi dasar dari URL yang diperlukan untuk terhubung ke Athena. Untuk daftar lengkap parameter yang didukung di URL, lihat dokumentasi [JDBC](connect-with-jdbc.md).

   Gambar berikut menunjukkan profil koneksi SQL Workbench yang menggunakan URL koneksi.  
![\[Profil koneksi di SQL Workbench.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-4.png)

Sekarang bahwa Anda telah membuat koneksi untuk pengguna Okta, Anda dapat mengujinya dengan mengambil beberapa data.

**Untuk menguji koneksi untuk pengguna Okta**

1. Pilih**Uji**, dan kemudian verifikasi bahwa koneksi berhasil.

1. Dari SQL Workbench**Pernyataan**, jalankan SQL berikut`DESCRIBE`Perintah. Verifikasi bahwa semua kolom ditampilkan.

   ```
   DESCRIBE "tripdb"."nyctaxi"
   ```  
![\[Semua kolom ditampilkan.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-5.png)

1. Dari SQL Workbench**Pernyataan**, jalankan SQL berikut`SELECT`Perintah. Verifikasi bahwa semua kolom ditampilkan.

   ```
   SELECT * FROM tripdb.nyctaxi LIMIT 5
   ```  
![\[Verifikasi bahwa semua kolom ditampilkan.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-6.png)

Selanjutnya, Anda memverifikasi bahwa **athena-ba-user**, sebagai anggota **lf-business-analyst**grup, hanya memiliki akses ke tiga kolom pertama dari tabel yang Anda tentukan sebelumnya di Lake Formation.

**Untuk memverifikasi akses untuk **athena-ba-user****

1. Dalam SQL Workbench, dalam**Profil koneksi**kotak dialog, membuat profil koneksi lain.
   + Untuk nama profil koneksi, masukkan** Athena\$1Okta\$1Group\$1Connection**.
   + Untuk**Driver**, pilih driver Simba Athena JDBC.
   + Untuk **Source**, lakukan salah satu hal berikut:
     + Untuk menggunakan URL koneksi, masukkan string koneksi satu baris. Contoh berikut menambahkan jeda baris untuk dibaca.

       ```
       jdbc:awsathena://AwsRegion=region-id;
       S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
       AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider;
       user=athena-ba-user@anycompany.com;
       password=password;
       idp_host=okta-idp-domain;
       App_ID=okta-application-id;
       SSL_Insecure=true;
       LakeFormationEnabled=true;
       ```
     + Untuk menggunakan URL AWS berbasis profil, lakukan langkah-langkah berikut:

       1. Konfigurasikan AWS profil yang memiliki file kredensial seperti contoh berikut.

          ```
          [athena_lf_ba]
          plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider
          idp_host=okta-idp-domain
          app_id=okta-application-id
          uid=athena-ba-user@anycompany.com
          pwd=password
          ```

       1. Untuk**URL**, masukkan string koneksi single-line seperti berikut. Contoh menambahkan jeda baris untuk dibaca.

          ```
          jdbc:awsathena://AwsRegion=region-id;
          S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results;
          profile=athena_lf_ba;
          SSL_Insecure=true;
          LakeFormationEnabled=true;
          ```

1. Pilih**Uji**untuk mengkonfirmasi bahwa koneksi berhasil.

1. Dari**Pernyataan SQL**jendela, jalankan yang sama`DESCRIBE`dan`SELECT`Perintah SQL yang Anda lakukan sebelum dan memeriksa hasil.

   Karena **athena-ba-user**adalah anggota **lf-business-analyst**grup, hanya tiga kolom pertama yang Anda tentukan di konsol Lake Formation yang dikembalikan.  
![\[Hanya tiga kolom pertama dikembalikan.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-7.png)  
![\[Data dari tiga kolom pertama.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-8.png)

Selanjutnya, Anda kembali ke konsol Okta untuk menambahkan`athena-ba-user`ke`lf-developer`Grup Okta.

**Untuk menambahkan athena-ba-user ke grup pengembang lf**

1. Masuk ke konsol Okta sebagai pengguna administratif dari domain Okta yang ditugaskan.

1. Pilih **Grup**, lalu pilih **Tester**.

1. Pada halaman Grup, pilih opsi**Pengembang lf**kelompok.  
![\[PilihPengembang lfkelompok.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-9.png)

1. Pilih**Mengelola orang**.

1. Dari daftar **Bukan Anggota**, pilih **athena-ba-user**untuk menambahkannya ke grup **pengembang lf**.

1. Pilih **Simpan**.

Sekarang Anda kembali ke konsol Lake Formation untuk mengonfigurasi izin tabel untuk**Pengembang lf**kelompok.

**Untuk mengkonfigurasi izin tabel untuk lf-developer-group**

1. Masuk ke konsol Lake Formation sebagai administrator Data Lake.

1. Di panel navigasi, pilih **Tabel**.

1. Pilih**nyctaxi**tabel.

1. Pilih**Tindakan**,**Izin**.

1. Di**Berikan Izin**, masukkan informasi berikut:
   + Untuk **pengguna dan grup SAFL dan Amazon Quick, masukkan ARN grup** pengembang lf Okta SAM dalam format berikut:
   + Untuk **Kolom**, **Pilih jenis filter**, pilih **Sertakan kolom**.
   + Pilih kolom **trip\$1type**.
   + Untuk**Izin tabel**, pilih **SELECT**.

1. Pilih **Izin**.

Sekarang Anda dapat menggunakan SQL Workbench untuk memverifikasi perubahan izin untuk grup **If-developer**. Perubahan harus tercermin dalam data yang tersedia untuk **athena-ba-user**, yang sekarang menjadi anggota grup **pengembang lf**.

**Untuk memverifikasi perubahan izin untuk athena-ba-user**

1. Tutup program SQL Workbench, dan kemudian buka kembali.

1. Connect ke profil untuk **athena-ba-user**.

1. Dari**Pernyataan**jendela, masalah pernyataan SQL yang sama yang Anda jalankan sebelumnya:

   Kali ini,**trip\$1type**kolom ditampilkan.  
![\[Kolom keempat tersedia untuk kueri.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-10.png)

   Karena **athena-ba-user**sekarang menjadi anggota **pengembang lf** dan **lf-business-analyst**grup, kombinasi izin Lake Formation untuk grup tersebut menentukan kolom yang dikembalikan.  
![\[Kolom keempat dalam hasil data.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/security-athena-lake-formation-jdbc-okta-tutorial-verify-access-11.png)

## Kesimpulan
<a name="security-athena-lake-formation-jdbc-okta-tutorial-conclusion"></a>

Dalam tutorial ini Anda mengonfigurasi integrasi Athena dengan AWS Lake Formation menggunakan Okta sebagai penyedia SAFL. Anda menggunakan Lake Formation dan IAM untuk mengontrol sumber daya yang tersedia untuk pengguna SAFL di Katalog Data lake AWS Glue data Anda.

## Sumber daya terkait
<a name="security-athena-lake-formation-jdbc-okta-tutorial-related-resources"></a>

Untuk informasi terkait, lihat sumber daya berikut:
+ [Connect ke Amazon Athena dengan JDBC](connect-with-jdbc.md)
+ [Aktifkan akses federasi ke Athena API](access-federation-saml.md)
+ [AWS Lake Formation Panduan Pengembang](https://docs.aws.amazon.com/lake-formation/latest/dg/)
+ [Memberikan dan mencabut izin Katalog Data](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html) *di Panduan Pengembang.AWS Lake Formation *
+ [Penyedia identitas dan federasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) dalam *Panduan Pengguna IAM*.
+ [Membuat penyedia identitas SALL IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) di Panduan Pengguna *IAM*.
+ [Mengaktifkan federasi untuk AWS menggunakan Windows Active Directory, ADFS, dan SAMP 2.0 di Blog](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) *Keamanan.AWS *