

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

# 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\_dbbasis 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\_db.<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\_dbbasis 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\_dbdatabase, 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\_dbbasis 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\_db<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\_dbbasis 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> | 