

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
<a name="glue-specifying-resource-arns"></a>

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 mengikuti kebijakan tersebut. Tidak semua sumber daya AWS Glue mendukung ARNs.

**Topics**
+ [Katalog Data ARNs](#data-catalog-resource-arns)
+ [ARNs untuk objek non-katalog di AWS Glue](#non-catalog-resource-arns)
+ [Kontrol akses untuk AWS Glue operasi API tunggal non-katalog](#non-catalog-singular-apis)
+ [Kontrol akses untuk operasi API AWS Glue non-katalog yang mengambil beberapa item](#non-catalog-plural-apis)
+ [Kontrol akses untuk operasi BatchGet API AWS Glue non-katalog](#non-catalog-batch-get-apis)

## Katalog Data ARNs
<a name="data-catalog-resource-arns"></a>

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.


| **Tipe sumber daya**  |  **Format ARN**  | 
| --- | --- | 
| Katalog | `arn:aws:glue:{{region}}:{{account-id}}:catalog`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog` | 
| Basis Data | `arn:aws:glue:{{region}}:{{account-id}}:database/{{database name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:database/db1` | 
| Tabel | `arn:aws:glue:{{region}}:{{account-id}}:table/{{database name}}/{{table name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:table/db1/tbl1` | 
| Katalog tabel S3 Federasi (Semua ember meja) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/s3tablescatalog` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog` | 
| Katalog ember meja S3 federasi (katalog anak) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/s3tablescatalog/{{bucket name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/amzn-s3-demo-bucket1` | 
| Basis data tabel S3 federasi |  `arn:aws:glue:{{region}}:{{account-id}}:database/s3tablescatalog/{{child catalog name}}/{{database name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:database/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1` | 
| Tabel S3 Federasi |  `arn:aws:glue:{{region}}:{{account-id}}:table/s3tablescatalog/{{child catalog name}}/{{database name}}/{{table name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1/s3tbl1` | 
| Katalog tabel S3 Federasi (Satu ember meja terdaftar dengan Lake Formation) | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}} <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog/amzn-s3-demo-bucket1`  | 
| Basis data tabel S3 federasi  | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}}/{{database name}}<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:database/amzn-s3-demo-bucket1/nsdb1` | 
| Tabel S3 Federasi | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}}/{{database name}}/{{table name}}<br /> Misalnya: `arn:aws:glue:us-east-1:123456789012:table/amzn-s3-demo-bucket1/{{nsdb1}}/s3tbl1`  | 
| Katalog gabungan atau terkelola (katalog tingkat atas dalam multi-katalog) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/{{top-level catalog name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog`<br />Format ARN untuk katalog terkelola mengikuti struktur yang sama. | 
| Katalog multi-level federasi (katalog anak dalam katalog multi-level) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/{{top-level catalog name}}/{{child catalog name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog/dbcatalog` | 
| Basis data federasi |  `arn:aws:glue:{{region}}:{{account-id}}:database/{{name space catalog name}}/{{child catalog name}}/{{database name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:database/nscatalog/dbcatalog/schemadb` | 
| Meja federasi |  `arn:aws:glue:{{region}}:{{account-id}}:table/{{name space catalog name}}/{{child catalog name}}/{{database name}}/{{table name}}` <br />Misalnya: `arn:aws:glue:us-east-1:123456789012:table/nscatalog/dbcatalog/schemadb/rstbl1` | 
| Kontainer tautan katalog | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{link container name}}<br />Misalnya: `arn:aws:glue:glue:us-east-1:123456789012:catalog` /linkcontainer-example  | 
| Basis Data | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{link container name}}/{{database name}}<br />Misalnya: `arn:aws:glue:glue:us-east-1:123456789012:database` /linkcontainer-example/link-db  | 
| Fungsi yang ditetapkan pengguna | `arn:aws:glue:{{region}}:{{account-id}}:userDefinedFunction/{{database name}}/{{user-defined function name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1` | 
| Koneksi | `arn:aws:glue:{{region}}:{{account-id}}:connection/{{connection name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:connection/connection1` | 
| Sesi Interaktif | `arn:aws:glue:{{region}}:{{account-id}}:session/{{interactive session id}}`<br />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 IAM dan kebijakan sumber daya untuk memberikan dan menolak akses ke sumber daya tertentu. Wildcard diperbolehkan dalam kebijakan tersebut. Misalnya, ARN berikut cocok dengan semua tabel dalam basis data `default`.

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

## ARNs untuk objek non-katalog di AWS Glue
<a name="non-catalog-resource-arns"></a>

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


| **Tipe sumber daya**  |  **Format ARN**  | 
| --- | --- | 
| Crawler | `arn:aws:glue:{{region}}:{{account-id}}:crawler/{{crawler-name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:crawler/mycrawler` | 
| Pekerjaan | `arn:aws:glue:{{region}}:{{account-id}}:job/{{job-name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:job/testjob` | 
| Pemicu | `arn:aws:glue:{{region}}:{{account-id}}:trigger/{{trigger-name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger` | 
| Titik akhir pengembangan | `arn:aws:glue:{{region}}:{{account-id}}:devEndpoint/{{development-endpoint-name}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint` | 
| Transformasi Machine Learning | `arn:aws:glue:{{region}}:{{account-id}}:mlTransform/{{transform-id}}`<br />Misalnya: `arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890` | 

## Kontrol akses untuk AWS Glue operasi API tunggal non-katalog
<a name="non-catalog-singular-apis"></a>

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

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

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

****  

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

------

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

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PermissionWithWildcard",
      "Effect": "Allow",
      "Action": "glue:UpdateDevEndpoint",
      "Resource": "arn:aws:glue:{{us-east-1}}:{{111122223333}}: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.

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

****  

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

------

## Kontrol akses untuk operasi API AWS Glue non-katalog yang mengambil beberapa item
<a name="non-catalog-plural-apis"></a>

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

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 BatchGet API AWS Glue non-katalog
<a name="non-catalog-batch-get-apis"></a>

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

Misalnya, untuk mengizinkan akses ke titik akhir pengembangan tertentu, sertakan `BatchGetDevEndpoints` dalam kebijakan dengan ARN sumber 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 kebijakan IAM, seperti menggunakan operasi API `List` dan `BatchGet`, lihat [Contoh kebijakan berbasis identitas untuk Glue AWS](security_iam_id-based-policy-examples.md). 