

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

# Configurazione delle autorizzazioni IAM per accedere alle origini dati (per amministratori)
<a name="sagemaker-sql-extension-datasources-connection-permissions"></a>

Gli amministratori devono assicurarsi che il ruolo di esecuzione utilizzato dalle JupyterLab applicazioni disponga delle autorizzazioni AWS IAM necessarie per accedere ai dati tramite le connessioni configurate. AWS Glue 
+ **Connessioni create dagli amministratori utilizzando AWS CLI**: Per visualizzare le AWS Glue connessioni [create dagli amministratori](sagemaker-sql-extension-datasources-glue-connection.md) e accedere ai relativi dati, gli utenti devono fare in modo che l'amministratore associ autorizzazioni specifiche al ruolo di esecuzione SageMaker AI utilizzato dalla loro applicazione in Studio. JupyterLab Ciò include l'accesso a AWS Glue Secrets Manager e le autorizzazioni specifiche del database. Le connessioni create dagli amministratori sono visibili a tutte le applicazioni che condividono il ruolo di esecuzione che dispone delle autorizzazioni per visualizzare specifici cataloghi o database AWS Glue . Per ulteriori informazioni sull’elenco delle autorizzazioni richieste per tipo di origine dati, consulta le autorizzazioni per le connessioni definite dall’amministratore in [Admin-defined le connessioni richiedevano autorizzazioni IAM](#admin-defined-connections-permissions). 
+ Verranno elencate anche **le connessioni create dagli utenti che utilizzano l'interfaccia utente dell'estensione SQL in JupyterLab**: Le connessioni [create da profili utente](sagemaker-sql-extension-datasources-glue-connection-user-defined.md) che condividono lo stesso ruolo di esecuzione, a meno che la visibilità delle relative connessioni non sia limitata solo a quelle create dall'utente. Le connessioni create dagli utenti sono taggate con il profilo utente che le ha create. Per limitare la possibilità di visualizzare, aggiornare o eliminare le connessioni create dall’utente solo all’utente che le ha create, gli amministratori possono aggiungere ulteriori restrizioni di controllo degli accessi basate su tag alle autorizzazioni IAM del ruolo di esecuzione. Per ulteriori informazioni sull’ulteriore controllo degli accessi basato su tag richiesto, consulta [User-defined le connessioni richiedevano autorizzazioni IAM](#user-defined-connections-permissions).

## Admin-defined le connessioni richiedevano autorizzazioni IAM
<a name="admin-defined-connections-permissions"></a>

Per concedere al ruolo di esecuzione SageMaker AI utilizzato dalla tua JupyterLab applicazione in Studio l'accesso a un'origine dati tramite una AWS Glue connessione, collega la seguente policy in linea al ruolo.

Per visualizzare le autorizzazioni specifiche e i dettagli delle policy per ogni origine dati o metodo di autenticazione, scegli il tipo di connessione pertinente riportato di seguito.

**Nota**  
Ti consigliamo di limitare le autorizzazioni della policy solo alle risorse e alle azioni richieste.  
Per restringere i criteri e concedere l’accesso con il privilegio minimo, sostituisci i caratteri jolly `"Resource": ["*"]` nella tua policy con gli ARN specifici per le risorse che necessitano dell’accesso. Per ulteriori informazioni su come controllare l’accesso alle risorse, consulta [Fine-tune AWS accesso alle risorse con autorizzazioni ARN granulari](#resource-access-control).

### Tutti i tipi di connessione
<a name="datasources-connection-permissions-all"></a>

**Nota**  
Consigliamo vivamente di limitare questa policy solo alle azioni e alle risorse necessarie.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:catalog",
    "arn:aws:glue:{{us-east-1}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "ExecuteQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:{{us-east-1}}:{{111122223333}}:workgroup/{{workgroup-name}}"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:{{secret:secret-name}}"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:{{us-east-1}}:{{111122223333}}:cluster:{{cluster-name}}"
            ]
        }
    ]
}
```

------

### Athena
<a name="datasources-connection-permissions-athena"></a>

**Nota**  
Consigliamo vivamente di limitare questa policy solo alle risorse necessarie.

Per ulteriori informazioni, consulta *Esempi di policy di autorizzazione IAM* nella [documentazione di Athena](https://docs.aws.amazon.com/athena/latest/ug/federated-query-iam-access.html).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",                
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "ExecuteAthenaQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:{{us-east-2}}:{{111122223333}}:workgroup/{{workgroup-name}}"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:{{us-east-2}}:{{111122223333}}:secret:{{secret-name}}"       
            ]
        }
    ]
}
```

------

### Amazon Redshift e Amazon Redshift Serverless (autenticazione nome utente e &amp; password)/Snowflake
<a name="datasources-connection-permissions-snowflake-redshift-user-password"></a>

**Nota**  
Consigliamo vivamente di limitare questa policy solo alle risorse necessarie.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:{{us-east-2}}:{{111122223333}}:secret:{{secret-name}}"            
            ]
        }
    ]
}
```

------

### Amazon Redshift (autenticazione IAM)
<a name="datasources-connection-permissions-redshift-iam"></a>

**Nota**  
Consigliamo vivamente di limitare questa policy solo alle risorse necessarie.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:connection/*",
                "arn:aws:glue:{{us-east-1}}:{{111122223333}}:connection/{{connection-name}}"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{secret-name}}",
                "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{secret-name-with-suffix}}"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:{{us-east-1}}:{{111122223333}}:cluster:{{cluster-name}}",
                "arn:aws:redshift:{{us-east-1}}:{{111122223333}}:dbuser:{{cluster-name}}/{{db-user-name}}"
            ]
        }
    ]
}
```

------

### Amazon Redshift serverless (autenticazione IAM)
<a name="datasources-connection-permissions-redshift-serverless-iam"></a>

**Nota**  
Consigliamo vivamente di limitare questa policy solo alle risorse necessarie.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:catalog",
                "arn:aws:glue:{{us-east-2}}:{{111122223333}}:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:{{us-east-2}}:{{111122223333}}:secret:{{secret-name}}"         
            ]
        },
        {
            "Sid": "GetRedshiftServerlessCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetCredentials"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:{{us-east-2}}:{{111122223333}}:namespace/{{namespace-id}}"           
            ]
        }
    ]
}
```

------

## User-defined le connessioni richiedevano autorizzazioni IAM
<a name="user-defined-connections-permissions"></a>

Le autorizzazioni della policy IAM per un utente possono tenere conto della presenza del `UserProfile` tag sulle AWS Glue risorse di connessione.
+ **Per visualizzare le AWS Glue connessioni**:
  + Gli utenti possono visualizzare tutte le connessioni senza tag `UserProfile` (creato da un amministratore). 
  + Gli utenti possono visualizzare le connessioni con il tag `UserProfile` che ha lo stesso valore del nome del loro profilo utente. 
  + Gli utenti non possono visualizzare le connessioni con il tag `UserProfile` che non ha lo stesso valore del nome del loro profilo utente. 
+ **Per aggiornare o eliminare AWS Glue le connessioni**:
  + Gli utenti possono aggiornare o eliminare una connessione con il tag `UserProfile` che ha lo stesso valore del nome del loro profilo utente. 
  + Gli utenti non possono aggiornare o eliminare una connessione con il tag `UserProfile` che non ha lo stesso valore del nome del loro profilo utente. 
  + Gli utenti non possono aggiornare o eliminare le connessioni senza tag `UserProfile`. 

A tal fine, gli amministratori devono concedere al ruolo di esecuzione utilizzato dall' JupyterLab applicazione del profilo utente autorizzazioni aggiuntive oltre alle autorizzazioni di connessione esistenti definite dall'[amministratore](#admin-defined-connections-permissions). In particolare, oltre alle autorizzazioni necessarie per accedere alle AWS Glue connessioni definite dall'amministratore, devono essere concesse le seguenti due autorizzazioni IAM aggiuntive al ruolo di esecuzione dell'utente:
+ Autorizzazione a creare AWS Glue connessioni e associare il `UserProfile` tag al valore del nome del profilo dell'utente.
+ Autorizzazione a visualizzare, aggiornare ed eliminare AWS Glue le connessioni il cui `UserProfile` tag corrisponde al nome del profilo dell'utente.

Questa autorizzazione limita l'accesso alle AWS Glue connessioni in base al valore del tag specifico del profilo utente. Aggiorna il valore del tag `UserProfile` con il nome del profilo dell’utente scelto come destinazione.

```
"Action": [
    "glue:GetConnection",
    "glue:GetConnections"    
],
"Resource": [
    "arn:aws:glue:{{region}}:{{account_id}}:connection/*"
],
"Condition": {
    "StringEqualsIfExists": {
        "aws:ResourceTag/UserProfile": "{{user_profile_name}}"
    }
}
```

Questa autorizzazione limita la possibilità di creare, aggiornare ed eliminare connessioni create dall’utente solo alle connessioni create dal profilo utente con il valore del tag `UserProfile` specificato.

```
"Action": [
    "glue:DeleteConnection",
    "glue:UpdateConnection",
    "glue:CreateConnection",
    "glue:TagResource"
],
"Resource": [
    "arn:aws:glue:{{region}}:{{account_id}}:connection/*"
],
"Condition": {
    "StringEquals": {
        "aws:ResourceTag/UserProfile": "{{user_profile}}"
    }
}
```

## Fine-tune AWS accesso alle risorse con autorizzazioni ARN granulari
<a name="resource-access-control"></a>

Per un controllo più preciso sull'accesso alle tue AWS risorse, sostituisci la risorsa wildcard `"Resource": ["*"]` nelle tue politiche con gli Amazon Resource Names (ARN) specifici delle sole risorse che richiedono l'accesso. L’utilizzo di ARN esatti anziché di caratteri jolly limita l’accesso alle sole risorse desiderate. 
+ **Utilizza ARN specifici del bucket Amazon S3**

  Ad esempio, `"arn:aws:s3:::bucket-name"` o ` "arn:aws:s3:::bucket-name/*"` per operazioni a livello di bucket o a livello di oggetto.

  Per informazioni su tutti i tipi di risorse in Amazon S3, consulta [Tipi di risorse definiti da Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies).
+ ** AWS Glue Utilizza ARN di database specifici**

  Ad esempio: ` "arn:aws:glue:region:account-id:catalog"` o ` "arn:aws:glue:region:account-id:database/db-name"`. Per informazioni su tutti i tipi di risorse in AWS Glue, vedere [Tipi di risorse definiti da AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-resources-for-iam-policies).
+ **Utilizza ARN specifici dei gruppi di lavoro Athena**

  Ad esempio, `"arn:aws:athena:region:account-id:workgroup/workgroup-name"`. Per informazioni su tutti i tipi di risorse, consulta [Tipi di risorse definiti da Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html#amazonathena-resources-for-iam-policies).
+ **Usa ARN AWS segreti specifici di Secrets Manager**

  Ad esempio, `"arn:aws:secretsmanager:region:account-id:secret:secret-name"`. Per informazioni su tutti i tipi di risorse in AWS Secrets Manager, vedere [Tipi di risorse definiti da AWS Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-resources-for-iam-policies)
+ **Utilizza ARN specifici dei cluster Amazon Redshift**

  Ad esempio, `"arn:aws:redshift:region:account-id:cluster:cluster-name"`. Per informazioni sui tipi di risorse in Amazon Redshift, consulta [Tipi di risorse definiti da Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html#amazonredshift-resources-for-iam-policies). Per informazioni su tutti i tipi di risorse in Redshift Serverless, consulta [Tipi di risorse definiti da Redshift serverless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html#amazonredshiftserverless-resources-for-iam-policies).