

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Nozioni di base sull’importazione in streaming da origini Apache Kafka
<a name="materialized-view-streaming-ingestion-getting-started-MSK"></a>

In questo argomento viene descritto come utilizzare i dati in streaming di Amazon MSK, Apache Kafka o Confluent Cloud usando una vista materializzata.

 Lo scopo dell'importazione dati in streaming di Amazon Redshift è semplificare il processo di importazione diretta di dati di flusso da un servizio di streaming in Amazon Redshift o in Amazon Redshift serverless. È compatibile con Amazon MSK con provisioning e Amazon MSK serverless, con Apache Kafka open source e con Confluent Cloud. L’importazione in streaming di Amazon Redshift elimina la necessità di gestire un argomento Apache Kafka in Amazon S3 prima di importare i dati di flusso in Redshift.

 A livello tecnico, l’importazione in streaming fornisce l’importazione a bassa latenza e ad alta velocità dei dati del flusso o dell’argomento in una vista materializzata di Amazon Redshift. Dopo la configurazione, utilizzando l'aggiornamento della vista materializzata è possibile acquisire grandi volumi di dati. 

Devi disporre di un’origine Apache Kafka prima di configurare l’importazione in streaming di Amazon Redshift. Se non disponi di un’origine, creane una utilizzando le istruzioni seguenti:
+ **Amazon MSK**: [Nozioni di base sull’utilizzo di Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html)
+ **Apache Kafka**: [Guida introduttiva di Apache Kafka](https://kafka.apache.org/quickstart)
+ **Confluent Cloud**: [Guida introduttiva di Confluent Cloud](https://docs.confluent.io/cloud/current/get-started/index.html)

## Configurazione dell’importazione in streaming da Kafka
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup"></a>

Utilizza le seguenti procedure per configurare l'importazione di streaming su Amazon Redshift da Amazon MSK o da fonti Apache Kafka non gestite (Apache Kafka e AWS Confluent Cloud).

**Topics**
+ [Configurare l’autenticazione](#materialized-view-streaming-ingestion-getting-started-MSK-setup-auth)
+ [Configurazione del VPC](#materialized-view-streaming-ingestion-getting-started-MSK-Setup-VPC)
+ [Creare una vista materializzata](#materialized-view-streaming-ingestion-getting-started-MSK-setup-materialized-view)

### Configurare l’autenticazione
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup-auth"></a>

In questa sezione viene descritta la configurazione dell’autenticazione per consentire all’applicazione Amazon Redshift di accedere a un’origine Amazon MSK. 

Dopo avere creato il ruolo dell’applicazione, collega una delle seguenti policy per consentire l’accesso al cluster Amazon MSK, Apache Kafka o Confluent Cloud. Per l’autenticazione mTLS puoi archiviare i certificati utilizzati da Amazon Redshift in ACM o Secrets Manager, quindi devi scegliere la policy che corrisponde al luogo in cui è archiviato il certificato. 

Tieni presente che i certificati autofirmati non sono supportati per l’autenticazione o i dati in transito quando utilizzi l’importazione in streaming diretta in Amazon Redshift con una delle origini di streaming Apache Kafka supportate. Sono inclusi Amazon MSK, Apache Kafka e Confluent Cloud. Prendi in considerazione l'utilizzo di certificati generati con o con qualsiasi altra autorità di certificazione pubblicamente attendibile. AWS Certificate Manager 

L’autenticazione IAM di Amazon Redshift con MSK è supportata solo in Kafka 2.7.1 o versione successiva.

**AUTHENTICATION IAM (solo Amazon MSK):**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKIAMpolicy",
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:Connect"
            ],
            "Resource": [
                "arn:aws:kafka:*:111122223333:cluster/MyTestCluster/*",
                "arn:aws:kafka:*:111122223333:topic/MyTestCluster/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:*:111122223333:group/MyTestCluster/*"
            ]
        }
    ]
}
```

------

**AUTENTICAZIONE MTLS: utilizzo di un certificato memorizzato in AWS Certificate Manager**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKmTLSACMpolicy",
            "Effect": "Allow",
            "Action": [
                "acm:ExportCertificate" 
            ],
            "Resource": [
                "arn:aws:acm:us-east-1:444455556666:certificate/certificate_ID"
            ]
        }
    ]
}
```

------

**AUTENTICAZIONE MTLS: utilizzo di un certificato memorizzato in Gestione dei segreti AWS**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKmTLSSecretsManagerpolicy",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue" 
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:444455556666:secret:secret_ID"
            ]
        }
    ]
}
```

------

------
#### [ Amazon MSK ]

Se utilizzi AUTHENTICATION NONE per connetterti a un’origine Amazon MSK, non è richiesto alcun ruolo IAM. Tuttavia, se utilizzi AUTHENTICATION IAM o MTLS per l’autenticazione con il cluster Amazon MSK, il cluster Amazon Redshift o il namespace Amazon Redshift serverless devono avere un ruolo IAM collegato con le autorizzazioni appropriate. Crea un ruolo IAM con una policy di attendibilità che consente al cluster Amazon Redshift o al namespace Amazon Redshift serverless di assumere il ruolo. Dopo avere creato il ruolo, aggiungi una delle autorizzazioni seguenti per supportare IAM o MTLS. Per l'autenticazione MTLS, i certificati utilizzati da Amazon Redshift possono essere archiviati AWS Certificate Manager in Gestione dei segreti AWS oppure, è necessario scegliere la politica che corrisponde al luogo in cui è archiviato il certificato. Collega il ruolo al cluster con provisioning Amazon Redshift o al namespace Redshift serverless. Per informazioni su come configurare la policy di fiducia per il ruolo IAM, consulta [Autorizzazione di Amazon Redshift ad accedere ad AWS altri servizi per tuo conto](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html). 

La tabella seguente mostra le opzioni di configurazione aggiuntive da impostare per l'acquisizione di streaming da Amazon MSK:


| Configurazione di Amazon Redshift | Configurazione di Amazon MQ | Porta da aprire tra Redshift e Amazon MSK | 
| --- | --- | --- | 
|  AUTHENTICATION NONE  |  Trasporto TLS disabilitato  | 9092 | 
|  AUTHENTICATION NONE  |  Trasporto TLS abilitato  | 9094 | 
|  AUTHENTICATION IAM  |  IAM  | 9098/9198 | 
|  AUTHENTICATION MTLS  |  Trasporto TLS abilitato  | 9094 | 

L'autenticazione Amazon Redshift è impostata nell'istruzione CREATE EXTERNAL SCHEMA.

**Nota**  
Nel caso in cui il cluster Amazon MSK ha l'autenticazione Mutual Transport Layer Security (mTLS) abilitata, la configurazione di Amazon Redshift per l'utilizzo di AUTHENTICATION NONE indica ad Amazon Redshift di utilizzare la porta 9094 per l'accesso non autenticato. Tuttavia, poiché la porta viene utilizzata dall'autenticazione mTLS, questa operazione avrà esito negativo. Per questo motivo consigliamo di passare ad AUTHENTICATION MTLS quando utilizzi mTLS.

------
#### [ Apache Kafka or Confluent Cloud ]

Per Apache Kafka e Confluent Cloud, Amazon Redshift supporta i seguenti protocolli di connessione:
+ Puoi utilizzare mTLS o testo semplice con il trasporto TLS per l’autenticazione quando ti connetti ad Apache Kafka.
+ Puoi utilizzare mTLS per l’autenticazione solo quando ti connetti a Confluent Cloud.

Amazon Redshift supporta i seguenti protocolli di crittografia per la connessione ad Apache Kafka o Confluent Cloud:

**Metodi di autenticazione supportati per Apache Kafka e Confluent Cloud**


| Amazon Redshift | Protocollo di sicurezza Kafka | Supporto di Apache Kafka | Supporto di Confluent Cloud | 
| --- | --- | --- | --- | 
| AUTHENTICATION NONE | PLAINTEXT | No | No | 
| AUTHENTICATION NONE | SSL | Sì | No | 
| AUTHENTICATION IAM | SASL\$1SSL | No | No | 
| AUTHENTICATION MTLS | SSL | Sì (con certificato) | Sì (con certificato) | 

Tieni presente che Amazon Redshift non supporta SASL/SCRAM SASL/PLAINTEXT.

------

### Configurazione del VPC
<a name="materialized-view-streaming-ingestion-getting-started-MSK-Setup-VPC"></a>

Dopo avere creato le risorse di autenticazione, controlla il VPC e verifica che il cluster Amazon Redshift o il gruppo di lavoro Amazon Redshift serverless disponga di un percorso per raggiungere l’origine Apache Kafka. 

**Nota**  
Per Amazon MSK, le regole in entrata del gruppo di sicurezza per il cluster Amazon MSK dovrebbero autorizzare il gruppo di sicurezza del cluster Amazon Redshift o del gruppo di lavoro Amazon Redshift serverless. Le porte specificate dipendono dai metodi di autenticazione utilizzati per il cluster Amazon MSK. Per ulteriori informazioni, consulta [Informazioni sulle porte](https://docs.aws.amazon.com/msk/latest/developerguide/port-info.html) e [Accesso dall'interno AWS ma dall'esterno del VPC](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access.html).

Quindi abilita il routing VPC avanzato nel cluster Amazon Redshift o nel gruppo di lavoro Amazon Redshift serverless. Per ulteriori informazioni, consulta [Abilitazione del routing VPC avanzato](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-enabling-cluster.html).

### Creare una vista materializzata
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup-materialized-view"></a>

In questa sezione configuri la vista materializzata utilizzata da Amazon Redshift per accedere ai dati in streaming di Apache Kafka.

Supponendo che abbia a disposizione un cluster Apache Kafka, il primo passo consiste nel definire uno schema in Redshift con `CREATE EXTERNAL SCHEMA` e nel fare riferimento al cluster come origine dati. Quindi, definisci lo `STREAM` in una vista materializzata per accedere ai dati nell'argomento. Puoi archiviare i record dell’argomento utilizzando il tipo di dati VARBYTE di Amazon Redshift o definire uno scherma che converte i dati nel formato `SUPER` semistrutturato. Quando si esegue una query sulla vista materializzata, i record restituiti sono una point-in-time visualizzazione dell'argomento.

1. In Amazon Redshift crea uno schema esterno da mappare al cluster Apacke Kafka. La sintassi è la seguente:

   ```
   CREATE EXTERNAL SCHEMA MySchema
   FROM KAFKA
   [ IAM_ROLE [ default | 'iam-role-arn' ] ]
   AUTHENTICATION [ none | iam | mtls ]
   {AUTHENTICATION_ARN 'acm-certificate-arn' |  SECRET_ARN 'asm-secret-arn'};
   ```

   Nella clausola `FROM`, `KAFKA` indica che lo schema mappa i dati da un’origine Apache Kafka. 

    `AUTHENTICATION` indica il tipo di autenticazione definito per l’importazione in streaming. Sono disponibili tre tipi: 
   + **none**: specifica che non è richiesta alcuna autenticazione. Ciò corrisponde all’accesso non autenticato in MSK. Ciò corrisponde all’autenticazione SSL in Apache Kafka. Questo metodo di autenticazione non è supportato per Confluent Cloud.
   + **iam**: specifica l'autenticazione IAM. Puoi utilizzare l’autenticazione IAM solo con Amazon MSK. Quando scegli questa opzione, assicurati che il ruolo IAM disponga delle autorizzazioni per l'autenticazione IAM. Per ulteriori informazioni sulla configurazione delle policy IAM richieste, consulta [Configurazione dell’importazione in streaming da Kafka](#materialized-view-streaming-ingestion-getting-started-MSK-setup).
   + **mtls**: specifica che il protocollo Transport Layer Security (TLS) reciproco fornisce comunicazioni sicure facilitando l’autenticazione tra client e server. In questo caso il client è Redshift e il server è Apache Kafka. Per ulteriori informazioni sulla configurazione dell’importazione in streaming con mTLS, consulta [Autenticazione con mTLS per l’importazione in streaming Redshift da origini Apache Kafka](materialized-view-streaming-ingestion-mtls.md).

   Tieni presente che l’autenticazione Amazon MSK con un nome utente e una password non è supportata per l’importazione in streaming. 

   Il parametro `AUTHENTICATION_ARN` specifica l’ARN del certificato del protocollo Transport Layer Security reciproco (mTLS) ACM utilizzato per stabilire una connessione crittografata.

   Il `SECRET_ARN` parametro specifica l'arn del Gestione dei segreti AWS segreto contenente il certificato che deve essere utilizzato da Amazon Redshift per MTL.

   Negli esempi seguenti viene illustrato come impostare l’URI del broker per il cluster Amazon MSK quando crei lo schema esterno:

   **Utilizzo dell’autenticazione IAM:**

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION IAM
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9098,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9098'
   ```

   **Utilizzo di nessuna autenticazione:**

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA 
   AUTHENTICATION none
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9092,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9092'
   ```

   **Utilizzo di mTLS:**

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION MTLS
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b- 2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   {AUTHENTICATION_ARN 'acm-certificate-arn' |  SECRET_ARN 'asm-secret-arn'}
   ```

   Per informazioni su come creare uno schema esterno, consulta [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html).

1. Crea una vista materializzata per consumare i dati dall'argomento. Utilizza un comando SQL come l’esempio seguente.

   ```
   CREATE MATERIALIZED VIEW MyView AUTO REFRESH YES AS
   SELECT *
   FROM MySchema."mytopic";
   ```

   I nomi degli argomenti Kafka distinguono tra maiuscole e minuscole e possono contenere lettere maiuscole e minuscole. Per importare da argomenti con nomi in maiuscolo, puoi impostare la configurazione `enable_case_sensitive_identifier` su `true` a livello di sessione o database. Per ulteriori informazioni, consulta [Nomi e identificatori](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html) e [enable\$1case\$1sensitive\$1identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html).

   Per attivare l'aggiornamento automatico, usa `AUTO REFRESH YES`. Il comportamento predefinito prevede l'aggiornamento manuale. 

1. Le colonne di metadati includono quanto segue:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started-MSK.html)

   È importante notare che, se la definizione di vista materializzata include una logica aziendale che causa errori di logica aziendale, in alcuni casi ciò può comportare errori nell’importazione in streaming. Ciò potrebbe comportare la necessità di rimuovere e ricreare la vista materializzata. Per evitare ciò, consigliamo di mantenere la logica aziendale semplice ed eseguire una logica aggiuntiva sui dati dopo l’importazione.

1. Aggiorna la vista per invocare Amazon Redshift ed eseguire la lettura dall'argomento e il caricamento dei dati nella vista materializzata.

   ```
   REFRESH MATERIALIZED VIEW MyView;
   ```

1. Esegui una query sui dati nella vista materializzata.

   ```
   select * from MyView;
   ```

   La vista materializzata viene aggiornata direttamente dall'argomento quando si esegue il comando `REFRESH`. Viene creata una vista materializzata che corrisponde all'origine dati dell'argomento Kafka. È possibile eseguire filtri e aggregazioni sui dati nell'ambito della definizione della vista materializzata. La vista materializzata dell'importazione dati in streaming (vista materializzata di base) può fare riferimento a un solo argomento Kafka, ma è possibile creare viste materializzate aggiuntive che si uniscono alla vista materializzata di base e con altre viste materializzate o tabelle.

Per ulteriori informazioni sulle limitazioni relative all'importazione dati in streaming, consulta [Comportamento dell’importazione in streaming e tipi di dati](materialized-view-streaming-ingestion.md#materialized-view-streaming-ingestion-limitations).

# Autenticazione con mTLS per l’importazione in streaming Redshift da origini Apache Kafka
<a name="materialized-view-streaming-ingestion-mtls"></a>

mTLS consente a un server di autenticare il client a cui invia informazioni e al client di autenticare il server. Il vantaggio dell’utilizzo di mTLS consiste nel fornire un’autenticazione affidabile per una varietà di casi d’uso in diverse applicazioni verticali del settore. Tra questi figurano casi d’uso nei settori finanziario, retail, governativo e sanitario. In caso di importazione in streaming in Redshift, l’autenticazione avviene tra un server, che può essere Amazon MSK, Apache Kafka o Confluent Cloud, e un cluster con provisioning Amazon Redshift o un gruppo di lavoro Amazon Redshift serverless.

In questo argomento vengono illustrati le procedure e gli esempi di comandi SQL che mostrano come creare uno schema esterno che utilizza mTLS per l’autenticazione tra il client Redshift e qualsiasi server Apache Kafka. Le fasi illustrate in questo argomento completano la procedura per configurare l’importazione in streaming da origini Apache Kafka. Per ulteriori informazioni, consulta [Nozioni di base sull’importazione in streaming da origini Apache Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md).

## Prerequisiti per l’utilizzo di mTLS per l’importazione in streaming
<a name="materialized-view-streaming-ingestion-mtls-prerequisites"></a>

In questa sezione vengono illustrate le fasi preliminari per l’utilizzo di mTLS per l’importazione in streaming con AWS Certificate Manager o Gestione dei segreti AWS.

Come fase preliminare, devi disporre o creare un'autorità di certificazione privata (PCA), che puoi utilizzare per emettere certificati che, tra le altre funzioni, consentono comunicazioni sicure attraverso canali di comunicazione sicuri. AWS Autorità di certificazione privata (CA privata) è un servizio disponibile che svolge questa funzione. Per ulteriori informazioni, consulta [Creazione di una CA privata](https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html) nella *Guida per l’utente di AWS Autorità di certificazione privata *. Dopo avere creato la CA privata, esporta il certificato CA root e salvalo in un file con estensione .pem. 

Per creare un cluster che utilizza il certificato CA, segui la procedura descritta:

------
#### [ Amazon MSK ]

1. Crea un cluster Amazon MSK che supporti l’autenticazione client mTLS. Per ulteriori informazioni sulla configurazione di un cluster Amazon MSK, consulta [Autenticazione client TLS reciproca per Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html#msk-authentication-cluster) nella *Guida per gli sviluppatori di Streaming gestito da Amazon per Apache Kafka*.

1. Modifica le impostazioni di sicurezza per il cluster Amazon MSK, attivando l'autenticazione client TLS tramite AWS Certificate Manager (ACM) e selezionando il AWS Private CA (PCA) creato in precedenza. Per ulteriori informazioni, consulta [Aggiornamento delle impostazioni di sicurezza di un cluster](https://docs.aws.amazon.com/msk/latest/developerguide/msk-update-security.html) nella *Guida per gli sviluppatori di Streaming gestito da Amazon per Apache Kafka*.

------
#### [ Confluent Cloud ]

1. Crea un cluster Confluent Cloud dedicato, preferibilmente nella stessa Regione AWS del cluster Amazon Redshift. Per informazioni sulla creazione di un cluster Confluent Cloud, consulta [Creare un cluster Kafka in Confluent Cloud](https://docs.confluent.io/cloud/current/get-started/index.html#step-1-create-a-ak-cluster-in-ccloud).

1. Carica il file pem del certificato CA AWS Private CA root esportato che hai creato in precedenza. Per ulteriori informazioni, consulta [Gestire l’autorità di certificazione per l’autenticazione mTLS per Confluent Cloud](https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/mtls/certificate-authority.html). Confluent Cloud utilizza questo certificato per verificare il certificato client Amazon Redshift. 

------

## Utilizzo di MTL per l'acquisizione di streaming con AWS Certificate Manager
<a name="materialized-view-streaming-ingestion-mtls-acm"></a>

Nella procedura seguente viene illustrato come configurare mTLS per l’importazione in streaming Redshift utilizzando AWS Certificate Manager (ACM) per l’archiviazione e la gestione dei certificati:

1. Richiedi un certificato privato tramite ACM. Quando esegui questa operazione, seleziona la PCA che hai creato nella sezione Prerequisiti come autorità di certificazione. ACM archivia il certificato firmato e la chiave privata collegata per comunicazioni sicure. Per informazioni sulla gestione dei certificati con ACM, consulta [Emissione e gestione di certificati](https://docs.aws.amazon.com/acm/latest/userguide/gs.html) nella *Guida per l’utente di AWS Certificate Manager *.

1. **Per il ruolo IAM che usi per gestire il tuo cluster Redshift o il gruppo di lavoro Amazon Redshift Serverless, allega l'autorizzazione per esportare il certificato, che è acm:. ExportCertificate** Per ulteriori informazioni sulla configurazione delle risorse IAM necessarie per l’importazione in streaming, consulta [Configurazione dell’importazione in streaming da Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md#materialized-view-streaming-ingestion-getting-started-MSK-setup). Specifica lo stesso ruolo IAM nella fase successiva per creare lo schema esterno.
**Nota**  
Richieste per AWS Certificate Manager richiedere un gateway Internet (IGW) o un gateway NAT (NGW) nel tuo VPC. Se il VPC non dispone di un IGW o di un NGW, segui la procedura descritta:  
Usa Secrets Manager anziché ACM per archiviare i certificati.
Collega un endpoint VPC di Secrets Manager al VPC.
Per informazioni sull’utilizzo di Secrets Manager con mTLS per l’importazione in streaming, consulta [Utilizzo di MTL per l'acquisizione di streaming con Gestione dei segreti AWS](#materialized-view-streaming-ingestion-mtls-secrets-manager) di seguito.

1. Ottieni l’URI del broker bootstrap per il cluster Amazon MSK, Apache Kafka o Confluent Cloud. Per ulteriori informazioni su come ottenere l’URI del broker bootstrap per Amazon MSK, consulta [Ottenimento dei broker bootstrap per un cluster Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) in *Guida per gli sviluppatori di Streaming gestito da Amazon per Apache Kafka*.

1.  Esegui un comando SQL come nell’esempio seguente per creare uno schema esterno che mappa il cluster a uno schema esterno Redshift, utilizzando `mtls`.

------
#### [ Amazon MSK ]

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   AUTHENTICATION_ARN 'arn:aws:acm:Region:444455556666:certificate/certificate_ID';
   ```

------
#### [ Apache Kafka or Confluent Cloud ]

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'lkc-2v531.domz6wj0p.us-west-1.aws.confluent.cloud:9092'
   AUTHENTICATION_ARN 'arn:aws:acm:region:444455556666:certificate/certificate_ID';
   ```

------

   Parametri importanti:
   + IAM\$1ROLE: il ruolo IAM associato al cluster, per l’importazione in streaming.
   + URI: l’URI del broker bootstrap per il cluster. Tieni presente che, per Amazon MSK, la porta 9094 è specificata per la comunicazione con i broker per la crittografia TLS.
   + AUTHENTICATION\$1ARN: l’ARN del certificato ACM. L’ARN è disponibile nella console ACM quando scegli il certificato emesso.

Dopo avere completato questa procedura di configurazione, puoi creare una vista materializzata di Redshift che faccia riferimento allo schema definito nell’esempio e quindi utilizzare REFRESH MATERIALIZED VIEW per lo streaming dei dati. Per ulteriori informazioni, consulta [Nozioni di base sull’importazione in streaming da origini Apache Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md).

## Utilizzo di MTL per l'acquisizione di streaming con Gestione dei segreti AWS
<a name="materialized-view-streaming-ingestion-mtls-secrets-manager"></a>

Puoi configurare mTLS per l’importazione in streaming di Redshift utilizzando Gestione dei segreti AWS per la gestione dei certificati se non desideri fare riferimento al certificato in AWS Certificate Manager. La procedura seguente descrive come configurare mTLS utilizzando Secrets Manager.

1. Crea una richiesta di firma del certificato e una chiave privata con lo strumento che preferisci. Quindi puoi utilizzare la richiesta di firma per generare un certificato firmato, utilizzando la stessa CA privata (PCA) AWS usata per generare il certificato per il cluster. *Per ulteriori informazioni sull'emissione di un certificato, consulta [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html)la sezione API Reference.AWS Autorità di certificazione privata *

1. Estrai il certificato utilizzando AWS Autorità di certificazione privata. Per ulteriori informazioni, consulta [Recuperare un certificato privato](https://docs.aws.amazon.com/privateca/latest/userguide/PcaGetCert.html) nella *Guida per l’utente di AWS Autorità di certificazione privata *.

1. Archivia il certificato e la chiave privata generati nella fase precedente in Gestione dei segreti AWS. Scegli `Other type of secret` e utilizza il formato di testo semplice. Le coppie chiave-valore devono essere nel formato `{"certificate":"<cert value>","privateKey":"<pkey value>"}`, come nell’esempio seguente. Per ulteriori informazioni sulla creazione e la gestione di segreti in Gestione dei segreti AWS, consulta [Creare e gestire segreti con Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) nella *Guida per l'Gestione dei segreti AWS utente*.

   ```
   {"certificate":"-----BEGIN CERTIFICATE-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi 
   H4hAX8/eE96qCcjkpfT84EdvHzp6fC+/WwM0oXlwUEWlvfMCXNaG5D8SqRq3qA==
   -----END CERTIFICATE-----
   -----BEGIN CERTIFICATE-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi 
   wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   -----END CERTIFICATE-----",
   "privateKey":"-----BEGIN PRIVATE KEY-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi
   7OD4m1dBEs3Fj++hDMH9rYRp99RqtCOf0EWOUe139KOilOsW+cyhAoc9Ci2+Jo/k
   17u2N1iGILMQEZuCRtnJOkFYkw==
   -----END PRIVATE KEY-----"}
   ```

1. Collega la policy di autorizzazione per recuperare il segreto al ruolo IAM che utilizzi per gestire il cluster Amazon Redshift o il gruppo di lavoro Amazon Redshift serverless. Questa autorizzazione è `secretsmanager:GetSecretValue`. Per ulteriori informazioni, consulta [Configurare l’autenticazione](materialized-view-streaming-ingestion-getting-started-MSK.md#materialized-view-streaming-ingestion-getting-started-MSK-setup-auth). Per ulteriori informazioni sulla gestione delle policy IAM, consulta [Modificare le policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html). Specifica lo stesso ruolo IAM nella fase successiva per creare lo schema esterno.

1. In Redshift esegui il comando SQL per creare lo schema esterno. Utilizzi il tipo di AUTENTICAZIONE `mtls`. Inoltre puoi specificare l’URI del cluster e l’ARN del segreto in Gestione dei segreti AWS.

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';
   ```

Parametri importanti:
+ IAM\$1ROLE: il ruolo IAM associato al cluster, per l’importazione in streaming.
+ URI: l’URI del broker bootstrap per il cluster. Tieni presente che, per Amazon MSK, la porta 9094 è specificata per la comunicazione con i broker per la crittografia TLS.
+ SECRET\$1ARN: l’ARN del segreto di Secrets Manager, contenente il certificato da utilizzare per mTLS.

## Abilitazione dell’autenticazione mTLS per uno schema esterno esistente
<a name="materialized-view-streaming-ingestion-mtls-alter"></a>

Se disponi di uno schema esterno esistente che utilizzi per l’importazione in streaming e desideri implementare mTLS per l’autenticazione, puoi eseguire un comando come il seguente, che specifica l’autenticazione mTLS e l’ARN del certificato ACM in ACM.

```
ALTER EXTERNAL SCHEMA schema_name 
AUTHENTICATION mtls
AUTHENTICATION_ARN 'arn:aws:acm:Region:444455556666:certificate/certificate_ID';
```

In alternativa puoi specificare l’autenticazione mTLS, con riferimento all’ARN del segreto in Gestione dei segreti AWS.

```
ALTER EXTERNAL SCHEMA schema_name 
AUTHENTICATION mtls
SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';
```

Per informazioni sul comando ALTER EXTERNAL SCHEMA, consulta [ALTER EXTERNAL SCHEMA](r_ALTER_EXTERNAL_SCHEMA.md).