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à.
AWS IoT Core supporta la convalida personalizzata dei certificati client per i certificati client X.509, che migliora la gestione dell'autenticazione dei client. Questo metodo di convalida dei certificati è noto anche come controllo dei certificati di preautenticazione, in cui si valutano i certificati client in base a criteri personalizzati (definiti in una funzione Lambda) e si revocano i certificati client o il certificato dell'autorità di certificazione (CA) di firma dei certificati per impedire ai client di connettersi. AWS IoT Core Ad esempio, è possibile creare controlli di revoca dei certificati personalizzati che convalidano lo stato dei certificati rispetto alle autorità di convalida che supportano gli endpoint OCSP (Online Certificate Status Protocol)
Nota
Questa funzionalità non è supportata nelle AWS GovCloud (US) regioni.
Il processo di esecuzione della convalida personalizzata dei certificati client prevede i seguenti passaggi.
Fase 1: Registrare i certificati client X.509 con AWS IoT Core
Se non l'hai già fatto, registra e attiva i certificati client X.509 con. AWS IoT Core Altrimenti, passare alla fase successiva.
Per registrare e attivare i certificati client con AWS IoT Core, procedi nel seguente modo:
-
Se crei certificati client direttamente con AWS IoT. Questi certificati client verranno registrati automaticamente con AWS IoT Core.
-
Se crei i tuoi certificati client, segui queste istruzioni per registrarli AWS IoT Core.
-
Per attivare i certificati client, segui queste istruzioni.
Passaggio 2: creazione di una funzione Lambda
È necessario creare una funzione Lambda che esegua la verifica del certificato e venga chiamata per ogni tentativo di connessione del client per l'endpoint configurato. Quando crei questa funzione Lambda, segui le indicazioni generali di Crea la tua prima funzione Lambda. Inoltre, assicurati che la funzione Lambda aderisca ai formati di richiesta e risposta previsti come segue:
Esempio di evento della funzione Lambda
{
"connectionMetadata": {
"id": "string"
},
"principalId": "string",
"serverName": "string",
"clientCertificateChain": [
"string",
"string"
]
}
connectionMetadata
-
Metadati o informazioni aggiuntive relative alla connessione del client a. AWS IoT Core
principalId
-
L'identificatore principale associato al client nella connessione TLS.
serverName
-
La stringa del nome host SNI (Server Name Indication).
AWS IoT Core richiede che i dispositivi inviino l'estensione SNI al protocollo Transport Layer Security (TLS) e forniscano l'indirizzo completo dell'endpoint sul campo. host_name
clientCertificateChain
-
L'array di stringhe che rappresenta la catena di certificati X.509 del client.
Esempio di risposta alla funzione Lambda
{
"isAuthenticated": "boolean"
}
isAuthenticated
-
Un valore booleano che indica se la richiesta è autenticata.
Nota
Nella risposta Lambda, isAuthenticated
deve essere necessario procedere true
all'ulteriore autenticazione e autorizzazione. In caso contrario, il certificato client IoT può essere disabilitato e l'autenticazione personalizzata con certificati client X.509 può essere bloccata per ulteriori autenticazioni e autorizzazioni.
Fase 3: AWS IoT Autorizza a richiamare la funzione Lambda
Dopo aver creato la funzione Lambda, è necessario concedere l'autorizzazione AWS IoT per richiamarla utilizzando il comando CLI add-permission. Nota che questa funzione Lambda verrà richiamata per ogni tentativo di connessione all'endpoint configurato. Per ulteriori informazioni, consulta Autorizzazione AWS IoT a richiamare la funzione Lambda.
Fase 4: Impostare la configurazione di autenticazione per un dominio
La sezione seguente descrive come impostare la configurazione di autenticazione per un dominio personalizzato utilizzando AWS CLI.
Imposta la configurazione del certificato client per un dominio (CLI)
Se non disponi di una configurazione di dominio, usa il comando create-domain-configurationCLI per crearne una. Se disponi già di una configurazione di dominio, utilizza il comando update-domain-configurationCLI per aggiornare la configurazione del certificato client per un dominio. È necessario aggiungere l'ARN della funzione Lambda creata nel passaggio precedente.
aws iot create-domain-configuration \ --domain-configuration-name
domainConfigurationName
\ --authentication-type AWS_X509|CUSTOM_AUTH_X509 \ --application-protocol SECURE_MQTT|HTTPS \ --client-certificate-config 'clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012
:function:my-function:1
"}'
aws iot update-domain-configuration \ --domain-configuration-name
domainConfigurationName
\ --authentication-type AWS_X509|CUSTOM_AUTH_X509 \ --application-protocol SECURE_MQTT|HTTPS \ --client-certificate-config '{"clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012
:function:my-function:1
"}'
domain-configuration-name
-
Il nome della configurazione di dominio.
authentication-type
-
Il tipo di autenticazione della configurazione del dominio. Per ulteriori informazioni, vedi Scelta del tipo di autenticazione.
application-protocol
-
Il protocollo applicativo con cui i dispositivi comunicano AWS IoT Core. Per ulteriori informazioni, vedere Scelta di un protocollo applicativo.
client-certificate-config
-
Un oggetto che specifica la configurazione di autenticazione del client per un dominio.
clientCertificateCallbackArn
-
L'Amazon Resource Name (ARN) della funzione Lambda che AWS IoT richiama il livello TLS quando viene stabilita una nuova connessione. Per personalizzare l'autenticazione client per eseguire la convalida personalizzata del certificato client, devi aggiungere l'ARN della funzione Lambda che hai creato nel passaggio precedente.
Per ulteriori informazioni, consulta CreateDomainConfiguratione consulta l'AWS IoT API UpdateDomainConfigurationReference. Per ulteriori informazioni sulle configurazioni dei domini, consulta Configurazioni dei domini.