Menentukan sumber daya AWS Glue ARNs - AWS Glue

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

Menentukan sumber daya AWS Glue ARNs

DiAWS Glue, Anda dapat mengontrol akses ke sumber daya menggunakan kebijakan AWS Identity and Access Management (IAM). Dalam kebijakan, Anda menggunakan Amazon Resource Name (ARN) untuk mengidentifikasi sumber daya yang berlaku untuk kebijakan tersebut. Tidak semua sumber daya AWS Glue mendukungARNs.

Katalog Data ARNs

Sumber daya Katalog Data memiliki struktur hirarkis, dengan catalog sebagai akar.

arn:aws:glue:region:account-id:catalog

Setiap AWS akun memiliki satu Katalog Data di AWS Wilayah dengan ID akun 12 digit sebagai ID katalog. Sumber daya memiliki unik ARNs terkait dengan mereka, seperti yang ditunjukkan pada tabel berikut.

Jenis sumber daya ARNformat

Katalog

arn:aws:glue:region:account-id:catalog

Misalnya: arn:aws:glue:us-east-1:123456789012:catalog

Basis Data

arn:aws:glue:region:account-id:database/database name

Misalnya: arn:aws:glue:us-east-1:123456789012:database/db1

Tabel

arn:aws:glue:region:account-id:table/database name/table name

Misalnya: arn:aws:glue:us-east-1:123456789012:table/db1/tbl1

Fungsi yang ditetapkan pengguna

arn:aws:glue:region:account-id:userDefinedFunction/database name/user-defined function name

Misalnya: arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1

Koneksi

arn:aws:glue:region:account-id:connection/connection name

Misalnya: arn:aws:glue:us-east-1:123456789012:connection/connection1

Sesi Interaktif

arn:aws:glue:region:account-id:session/interactive session id

Misalnya: arn:aws:glue:us-east-1:123456789012:session/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Untuk mengaktifkan kontrol akses berbutir halus, Anda dapat menggunakannya ARNs dalam kebijakan dan IAM kebijakan sumber daya untuk memberikan dan menolak akses ke sumber daya tertentu. Wildcard diperbolehkan dalam kebijakan tersebut. Misalnya, berikut ini ARN cocok dengan semua tabel dalam databasedefault.

arn:aws:glue:us-east-1:123456789012:table/default/*
penting

Semua operasi yang dilakukan pada sumber daya Katalog Data memerlukan izin pada sumber daya dan semua pendahulu dari sumber daya tersebut. Misalnya, untuk membuat sebuah partisi untuk tabel memerlukan izin pada tabel, basis data, dan katalog di mana tabel berada. Contoh berikut menunjukkan izin yang diperlukan untuk membuat partisi pada tabel PrivateTable di basis data PrivateDatabase dalam Katalog Data.

{ "Sid": "GrantCreatePartitions", "Effect": "Allow", "Action": [ "glue:BatchCreatePartitions" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/PrivateTable", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

Selain izin pada sumber daya dan semua pendahulunya, semua operasi penghapusan memerlukan izin pada semua anak dari sumber daya tersebut. Misalnya, menghapus sebuah basis data memerlukan izin pada semua tabel dan fungsi yang ditetapkan pengguna dalam basis data tersebut, selain basis data dan katalog di mana basis data berada. Contoh berikut menunjukkan izin yang diperlukan untuk menghapus basis data PrivateDatabase dalam Katalog Data.

{ "Sid": "GrantDeleteDatabase", "Effect": "Allow", "Action": [ "glue:DeleteDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/PrivateDatabase/*", "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase", "arn:aws:glue:us-east-1:123456789012:catalog" ] }

Singkatnya, tindakan pada sumber daya Katalog Data mengikuti aturan izin berikut ini:

  • Tindakan pada katalog hanya memerlukan izin pada katalog saja.

  • Tindakan pada sebuah basis data memerlukan izin pada basis data dan katalog.

  • Menghapus tindakan pada sebuah basis data memerlukan izin pada basis data dan katalog ditambah pada semua tabel dan fungsi yang ditetapkan pengguna dalam basis data tersebut.

  • Tindakan pada sebuah tabel, partisi, atau versi tabel memerlukan izin pada tabel, basis data, dan katalog.

  • Tindakan pada fungsi yang ditetapkan pengguna memerlukan izin pada fungsi yang ditetapkan pengguna, basis data, dan katalog.

  • Tindakan pada sebuah koneksi memerlukan izin pada koneksi dan katalog.

ARNsuntuk objek non-katalog di AWS Glue

Beberapa AWS Glue sumber daya memungkinkan izin tingkat sumber daya untuk mengontrol akses menggunakan file. ARN Anda dapat menggunakan ini ARNs dalam IAM kebijakan Anda untuk mengaktifkan kontrol akses berbutir halus. Tabel berikut mencantumkan sumber daya yang dapat berisi sumber dayaARNs.

Jenis sumber daya ARNformat

Crawler

arn:aws:glue:region:account-id:crawler/crawler-name

Misalnya: arn:aws:glue:us-east-1:123456789012:crawler/mycrawler

Pekerjaan

arn:aws:glue:region:account-id:job/job-name

Misalnya: arn:aws:glue:us-east-1:123456789012:job/testjob

Pemicu

arn:aws:glue:region:account-id:trigger/trigger-name

Misalnya: arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger

Titik akhir pengembangan

arn:aws:glue:region:account-id:devEndpoint/development-endpoint-name

Misalnya: arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint

Transformasi Machine Learning

arn:aws:glue:region:account-id:mlTransform/transform-id

Misalnya: arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890

Kontrol akses untuk operasi tunggal AWS Glue API non-katalog

AWS GlueAPIoperasi tunggal non-katalog bertindak pada satu item (titik akhir pengembangan). Contohnya adalah GetDevEndpoint, CreateUpdateDevEndpoint, dan UpdateDevEndpoint. Untuk operasi ini, kebijakan harus memasukkan API nama di "action" blok dan sumber daya ARN di "resource" blok.

Misalkan Anda ingin mengizinkan pengguna untuk memanggil operasi GetDevEndpoint. Kebijakan berikut memberikan izin minimum yang diperlukan untuk titik akhir yang bernama myDevEndpoint-1.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "MinimumPermissions", "Effect": "Allow", "Action": "glue:GetDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-1" } ] }

Kebijakan berikut memungkinkan akses UpdateDevEndpoint ke sumber daya yang cocok dengan myDevEndpoint- yang memiliki sebuah wildcard (*).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionWithWildcard", "Effect": "Allow", "Action": "glue:UpdateDevEndpoint", "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/myDevEndpoint-*" } ] }

Anda dapat menggabungkan dua kebijakan seperti dalam contoh berikut ini. Anda mungkin melihat EntityNotFoundException untuk setiap titik akhir pengembangan yang namanya dimulai dengan A. Namun, kesalahan akses ditolak akan dikembalikan ketika Anda mencoba untuk mengakses titik akhir pengembangan lainnya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CombinedPermissions", "Effect": "Allow", "Action": [ "glue:UpdateDevEndpoint", "glue:GetDevEndpoint" ], "Resource": "arn:aws:glue:us-east-1:123456789012:devEndpoint/A*" } ] }

Kontrol akses untuk API operasi AWS Glue non-katalog yang mengambil beberapa item

Beberapa AWS Glue API operasi mengambil beberapa item (seperti beberapa titik akhir pengembangan); misalnya,. GetDevEndpoints Untuk operasi ini, Anda hanya dapat menentukan sumber daya wildcard (*), dan tidak spesifikARNs.

Sebagai contoh, untuk memasukkan GetDevEndpoints dalam kebijakan, sumber daya harus terlingkup ke wildcard (*). Operasi tunggal (GetDevEndpoint, CreateDevEndpoint, dan DeleteDevendpoint) juga terlingkup untuk semua (*) sumber daya dalam contoh.

{ "Sid": "PluralAPIIncluded", "Effect": "Allow", "Action": [ "glue:GetDevEndpoints", "glue:GetDevEndpoint", "glue:CreateDevEndpoint", "glue:UpdateDevEndpoint" ], "Resource": [ "*" ] }

Kontrol akses untuk operasi AWS Glue non-katalog BatchGet API

Beberapa AWS Glue API operasi mengambil beberapa item (seperti beberapa titik akhir pengembangan); misalnya,. BatchGetDevEndpoints Untuk operasi ini, Anda dapat menentukan ARN untuk membatasi ruang lingkup sumber daya yang dapat diakses.

Misalnya, untuk mengizinkan akses ke titik akhir pengembangan tertentu, sertakan BatchGetDevEndpoints dalam kebijakan dengan sumber ARN dayanya.

{ "Sid": "BatchGetAPIIncluded", "Effect": "Allow", "Action": [ "glue:BatchGetDevEndpoints" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:devEndpoint/de1" ] }

Dengan kebijakan ini, Anda dapat berhasil mengakses titik akhir pengembangan bernama de1. Namun, jika Anda mencoba untuk mengakses titik akhir pengembangan bernama de2, maka kesalahan akan dikembalikan.

An error occurred (AccessDeniedException) when calling the BatchGetDevEndpoints operation: No access to any requested resource.
penting

Untuk pendekatan alternatif untuk menyiapkan IAM kebijakan, seperti penggunaan List dan BatchGet API operasi, lihatContoh kebijakan berbasis identitas untuk Glue AWS.