

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Specificare la risorsa AWS Glue ARNs
<a name="glue-specifying-resource-arns"></a>

InAWS Glue, puoi controllare l'accesso alle risorse utilizzando una policy AWS Identity and Access Management (IAM). In una policy, devi utilizzare un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy stessa. Non tutte le risorse sono AWS Glue supportate ARNs.

**Topics**
+ [Catalogo dati ARNs](#data-catalog-resource-arns)
+ [ARNs per oggetti non di catalogo in AWS Glue](#non-catalog-resource-arns)
+ [Controllo accessi per operazioni API singole non nel catalogo AWS Glue](#non-catalog-singular-apis)
+ [Controllo degli accessi per le operazioni API di AWS Glue per oggetti non inclusi nel catalogo che richiamano più elementi](#non-catalog-plural-apis)
+ [Controllo degli accessi per operazioni API AWS Glue non legate al catalogo BatchGet](#non-catalog-batch-get-apis)

## Catalogo dati ARNs
<a name="data-catalog-resource-arns"></a>

Le risorse del catalogo dati sono organizzate secondo una struttura gerarchica nella quale `catalog` funge da root.

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

Ogni AWS account ha un unico catalogo dati in una AWS regione con l'ID dell'account a 12 cifre come ID del catalogo. Alle risorse sono ARNs associate risorse univoche, come illustrato nella tabella seguente.


| **Tipo di risorsa**  |  **Formato ARN**  | 
| --- | --- | 
| Catalogo |  `arn:aws:glue:region:account-id:catalog` Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog`  | 
| Database |  `arn:aws:glue:region:account-id:database/database name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:database/db1`  | 
| Tabella |  `arn:aws:glue:region:account-id:table/database name/table name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:table/db1/tbl1`  | 
| Catalogo di tabelle S3 federate (tutti i bucket della tabella) |   `arn:aws:glue:region:account-id:catalog/s3tablescatalog`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog`  | 
| Catalogo bucket di tabelle S3 federate (catalogo figlio) |   `arn:aws:glue:region:account-id:catalog/s3tablescatalog/bucket name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/amzn-s3-demo-bucket1`  | 
| Database di tabelle S3 federate |   `arn:aws:glue:region:account-id:database/s3tablescatalog/child catalog name/database name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:database/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1`  | 
| Tabella S3 federata |   `arn:aws:glue:region:account-id:table/s3tablescatalog/child catalog name/database name/table name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1/s3tbl1`  | 
| Catalogo di tabelle S3 federate (un singolo bucket della tabella registrato con Lake Formation) | `arn:aws:glue:region:account-id:catalog`/*catalog name*  Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/amzn-s3-demo-bucket1`   | 
| Database di tabelle S3 federate  | `arn:aws:glue:region:account-id:catalog`/*catalog name*/*database name* Ad esempio: `arn:aws:glue:us-east-1:123456789012:database/amzn-s3-demo-bucket1/nsdb1`  | 
| Tabella S3 federata | `arn:aws:glue:region:account-id:catalog`/*catalog name*/*database name*/*table name*  Ad esempio: `arn:aws:glue:us-east-1:123456789012:table/amzn-s3-demo-bucket1/nsdb1/s3tbl1`   | 
| Catalogo federato o gestito (catalogo di primo livello in un multicatalogo) |   `arn:aws:glue:region:account-id:catalog/top-level catalog name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog` Il formato ARN per un catalogo gestito segue la stessa struttura.  | 
| Catalogo federato a più livelli (catalogo figlio in un catalogo multilivello) |   `arn:aws:glue:region:account-id:catalog/top-level catalog name/child catalog name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog/dbcatalog`  | 
| Database federato |   `arn:aws:glue:region:account-id:database/name space catalog name/child catalog name/database name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:database/nscatalog/dbcatalog/schemadb`  | 
| Tabella federata |   `arn:aws:glue:region:account-id:table/name space catalog name/child catalog name/database name/table name`  Ad esempio: `arn:aws:glue:us-east-1:123456789012:table/nscatalog/dbcatalog/schemadb/rstbl1`  | 
| Container link al catalogo | `arn:aws:glue:region:account-id:catalog`/*link container name* Ad esempio: `arn:aws:glue:glue:us-east-1:123456789012:catalog`/linkcontainer-example   | 
| Database | `arn:aws:glue:region:account-id:catalog`/*link container name*/*database name* Ad esempio: `arn:aws:glue:glue:us-east-1:123456789012:database`/linkcontainer-example/link-db  | 
| Funzione definita dall'utente |  `arn:aws:glue:region:account-id:userDefinedFunction/database name/user-defined function name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1`  | 
| Connessione |  `arn:aws:glue:region:account-id:connection/connection name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:connection/connection1`  | 
| Sessioni interattive |  `arn:aws:glue:region:account-id:session/interactive session id` Ad esempio: `arn:aws:glue:us-east-1:123456789012:session/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`  | 

Per abilitare un controllo granulare degli accessi, puoi utilizzarli ARNs nelle policy IAM e nelle policy delle risorse per concedere e negare l'accesso a risorse specifiche. Nelle policy sono ammessi i caratteri jolly. Ad esempio, il seguente ARN corrisponde a tutte le tabelle nel database `default`.

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

**Importante**  
Tutte le operazioni eseguite su una risorsa del catalogo dati richiedono l'autorizzazione alla risorsa e tutti i predecessori di tale risorsa. Ad esempio, la creazione di una partizione per una tabella necessita dell'autorizzazione su tabella, database e catalogo in cui si trova la tabella stessa. L'esempio seguente mostra le autorizzazioni necessarie per creare le partizioni sulla tabella `PrivateTable` nel database `PrivateDatabase` nel catalogo dati.  

```
{
   "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"
   ]
}
```
Oltre alle autorizzazioni per la risorsa e tutti i suoi predecessori, tutte le operazioni di eliminazione richiedono l'autorizzazione su tutti i figli di tale risorsa. Ad esempio, per eliminare un database è necessario disporre di autorizzazioni per tutte le tabelle e per le funzioni definite dall'utente del database, così come per il database e il catalogo in cui si trova il database. L'esempio seguente mostra le autorizzazioni necessarie per eliminare il database `PrivateDatabase` nel catalogo dati.  

```
{
   "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"
   ]
}
```
Riepilogando, le operazioni sulle risorse del catalogo dati seguono queste regole di autorizzazione:  
Le operazioni sul catalogo richiedono solo l'autorizzazione per il catalogo.
Le operazioni su un database richiedono l'autorizzazione su database e catalogo.
Le operazioni di eliminazione su un database richiedono l'autorizzazione su database e catalogo, oltre che su tutte le tabelle e funzioni definite dall'utente del database.
Le operazioni su una tabella, partizione o versione di una tabella richiedono l'autorizzazione su tabella, database e catalogo.
Le operazioni su una funzione definita dall'utente richiedono l'autorizzazione su funzione definita dall'utente, catalogo e database.
Le operazioni su una connessione richiedono l'autorizzazione su connessione e catalogo.

## ARNs per oggetti non di catalogo in AWS Glue
<a name="non-catalog-resource-arns"></a>

Alcune risorse AWS Glue consentono autorizzazioni a livello di risorsa per controllare l'accesso utilizzando un ARN. Puoi utilizzarli ARNs nelle tue policy IAM per abilitare un controllo granulare degli accessi. La tabella seguente elenca le risorse che possono contenere risorse. ARNs


| **Tipo di risorsa**  |  **Formato ARN**  | 
| --- | --- | 
| Crawler |  `arn:aws:glue:region:account-id:crawler/crawler-name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:crawler/mycrawler`  | 
| Processo |  `arn:aws:glue:region:account-id:job/job-name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:job/testjob`  | 
| Trigger |  `arn:aws:glue:region:account-id:trigger/trigger-name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger`  | 
| Endpoint di sviluppo |  `arn:aws:glue:region:account-id:devEndpoint/development-endpoint-name` Ad esempio: `arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint`  | 
| Trasformazione basata su machine learning |  `arn:aws:glue:region:account-id:mlTransform/transform-id` Ad esempio: `arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890`  | 

## Controllo accessi per operazioni API singole non nel catalogo AWS Glue
<a name="non-catalog-singular-apis"></a>

Le operazioni delle API *singole* non nel catalogo AWS Glue, agiscono su un singolo elemento (endpoint di sviluppo). Alcuni esempi sono `GetDevEndpoint`, `CreateUpdateDevEndpoint` e `UpdateDevEndpoint`. Per queste operazioni, una policy deve inserire il nome dell'API nel blocco `"action"` e la risorsa ARN nel blocco `"resource"`.

Supponiamo che si desideri consentire a un utente di chiamare l'operazione `GetDevEndpoint`. La policy seguente concede il livello minimo di autorizzazioni necessarie per un endpoint denominato `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"
    }
  ]
}
```

------

La policy seguente consente l'accesso di `UpdateDevEndpoint` alle risorse che corrispondono a `myDevEndpoint-` con un carattere jolly (\$1):

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

****  

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

------

Puoi combinare le due policy come nell'esempio seguente. È possibile vedere `EntityNotFoundException` per ogni endpoint di sviluppo il cui nome inizia con `A`. Tuttavia, quando si cerca di accedere ad altri endpoint di sviluppo viene restituito un errore di accesso negato.

------
#### [ 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*"
    }
  ]
}
```

------

## Controllo degli accessi per le operazioni API di AWS Glue per oggetti non inclusi nel catalogo che richiamano più elementi
<a name="non-catalog-plural-apis"></a>

Alcune operazioni API AWS Glue richiamano più elementi (più endpoint di sviluppo); ad esempio, `GetDevEndpoints`. Per questa operazione, è possibile specificare solo una risorsa con caratteri jolly (\$1) e non una risorsa specifica. ARNs

Ad esempio, per includere `GetDevEndpoints` nella policy, la risorsa deve rientrare tra quelle identificate dal carattere jolly (\$1). L'ambito delle operazioni singole (`GetDevEndpoint`, `CreateDevEndpoint` e `DeleteDevendpoint`) viene definito anche per tutte le risorse (\$1) nell'esempio.

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

## Controllo degli accessi per operazioni API AWS Glue non legate al catalogo BatchGet
<a name="non-catalog-batch-get-apis"></a>

Alcune operazioni API AWS Glue richiamano più elementi (più endpoint di sviluppo); ad esempio, `BatchGetDevEndpoints`. Per questa operazione, è possibile specificare un ARN per limitare l'ambito delle risorse accessibili.

Ad esempio, per consentire l'accesso a un determinato endpoint di sviluppo, includere `BatchGetDevEndpoints` nella policy con il relativo ARN di risorsa.

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

Con questa policy puoi accedere all'endpoint di sviluppo denominato `de1`. Tuttavia, se cerchi di accedere all'endpoint di sviluppo `de2`, viene restituito un errore.

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

**Importante**  
Per approcci alternativi alla configurazione delle policy IAM, ad esempio usando le operazioni API `List` e `BatchGet`, consultare [Esempi di policy basate sull'identità per Glue AWS](security_iam_id-based-policy-examples.md). 