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 CloudHSM best practice per l'integrazione delle applicazioni
Segui le best practice in questa sezione per ottimizzare il modo in cui l'applicazione si integra con il AWS CloudHSM cluster.
Avvia il tuo Client SDK
Prima che il client SDK possa connettersi al cluster, è necessario avviarlo. Quando esegui il bootstrap degli indirizzi IP nel cluster, ti consigliamo di utilizzare il parametro quando possibile. --cluster-id Questo metodo compila la configurazione con tutti gli indirizzi IP HSM presenti nel cluster senza dover tenere traccia di ogni singolo indirizzo. In questo modo si aumenta la resilienza dell'inizializzazione dell'applicazione nel caso in cui un HSM sia sottoposto a manutenzione o durante un'interruzione della zona di disponibilità. Per ulteriori dettagli, consultare Esegui il bootstrap di Client SDK.
Effettua l'autenticazione per eseguire le operazioni
In AWS CloudHSM, è necessario autenticarsi nel cluster prima di poter eseguire la maggior parte delle operazioni, ad esempio le operazioni crittografiche.
Autenticazione con CloudHSM CLI: puoi autenticarti con CloudHSM CLI utilizzando la modalità a comando singolo o la modalità interattiva. Modalità di comando singolo Modalità interattiva Usa il comando per autenticarti in modalità interattiva. Accedi a un HSM utilizzando CloudHSM CLI Per autenticarsi in modalità comando singolo, è necessario impostare le variabili CLOUDHSM_ROLE ambientali e. CLOUDHSM_PIN Per ulteriori informazioni su questa operazione, fare riferimento aModalità di comando singolo. AWS CloudHSM consiglia di archiviare in modo sicuro le credenziali HSM quando non vengono utilizzate dall'applicazione.
Autenticazione con PKCS #11: in PKCS #11, si effettua il login utilizzando l'API C_Login dopo aver aperto una sessione utilizzando C_. OpenSession È necessario eseguire solo un C_Login per slot (cluster). Dopo aver effettuato correttamente l'accesso, è possibile aprire sessioni aggiuntive utilizzando C_ OpenSession senza la necessità di eseguire ulteriori operazioni di accesso. Per esempi sull'autenticazione in PKCS #11, vedere. Esempi di codice per la libreria PKCS #11 per AWS CloudHSM Client SDK 5
Autenticazione con JCE: il provider JCE supporta l' AWS CloudHSM accesso implicito ed esplicito. Il metodo più adatto a te dipende dal tuo caso d'uso. Quando possibile, consigliamo di utilizzare l'accesso implicito perché l'SDK gestirà automaticamente l'autenticazione se l'applicazione viene disconnessa dal cluster e deve essere nuovamente autenticata. L'utilizzo dell'accesso implicito consente inoltre di fornire credenziali all'applicazione quando si utilizza un'integrazione che non consente di avere il controllo sul codice dell'applicazione. Per ulteriori informazioni sui metodi di accesso, vedere. Passaggio 2: fornire le credenziali al provider JCE
Autenticazione con OpenSSL: con OpenSSL Dynamic Engine, fornisci le credenziali tramite variabili di ambiente. AWS CloudHSM consiglia di archiviare in modo sicuro le credenziali HSM quando non vengono utilizzate dall'applicazione. Se possibile, è necessario configurare l'ambiente in modo da recuperare e impostare sistematicamente queste variabili di ambiente senza immetterle manualmente. Per dettagli sull'autenticazione con OpenSSL, vedere. Installa il motore dinamico OpenSSL per AWS CloudHSM Client SDK 5
Autenticazione con KSP: è possibile autenticarsi con Key Storage Provider (KSP) utilizzando il gestore delle credenziali di Windows o le variabili di ambiente, vedere. Installa il Key Storage Provider (KSP) per AWS CloudHSM Client SDK 5
Gestisci in modo efficace le chiavi nell'applicazione
Usa gli attributi chiave per controllare cosa possono fare le chiavi: quando generi una chiave, utilizza gli attributi chiave per definire un set di autorizzazioni che consentiranno o negheranno tipi specifici di operazioni per quella chiave. Consigliamo di generare le chiavi con il minor numero di attributi necessari per completare l'attività. Ad esempio, una chiave AES utilizzata per la crittografia non dovrebbe essere autorizzata anche a estrarre le chiavi dall'HSM. Per ulteriori informazioni, consulta le nostre pagine degli attributi per i seguenti SDK client:
Quando possibile, memorizza nella cache gli oggetti chiave per ridurre al minimo la latenza: le operazioni di key find interrogheranno tutti gli HSM del cluster. Questa operazione è costosa e non è scalabile in base al numero di HSM presenti nel cluster.
Con PKCS #11, puoi trovare le chiavi utilizzando l'
C_FindObjectsAPI.Con JCE, trovi le chiavi usando il. KeyStore
Per prestazioni ottimali, AWS consiglia di utilizzare i comandi key find (ad esempio Cerca AWS CloudHSM le chiavi per attributi usando KMU eElenca le chiavi per un utente con CLI CloudhSM) una sola volta durante l'avvio dell'applicazione e di memorizzare nella cache l'oggetto chiave restituito nella memoria dell'applicazione. Se richiedete questo oggetto chiave in un secondo momento, dovreste recuperarlo dalla cache anziché eseguire una query per questo oggetto per ogni operazione, il che comporterà un notevole sovraccarico in termini di prestazioni.
Leggi gli attributi dell'oggetto con il minor numero di chiamate possibile
La lettura degli attributi invia richieste al cluster e il numero di richieste dipende dall'SDK utilizzato:
Con la libreria PKCS #11, ogni
C_GetAttributeValuechiamata invia una richiesta, indipendentemente dal numero di attributi contenuti nel modello. Richiedi tutti gli attributi di cui hai bisogno in un modello. Per ulteriori informazioni, consulta Recupera gli attributi con la libreria PKCS #11 per AWS CloudHSM Client SDK 5.Con JCE, ogni attributo richiesto costa una richiesta. Richiedi solo gli attributi necessari alla tua applicazione.
In entrambi i casi, memorizzate nella cache i valori dell'applicazione e riutilizzateli finché qualcosa non modifica l'oggetto.
Usa il multithreading
AWS CloudHSM supporta le applicazioni multithread, ma ci sono alcuni aspetti da tenere a mente con le applicazioni multithread.
Con PKCS #11, è necessario inizializzare la libreria PKCS #11 (chiamata) una sola volta. C_Initialize A ogni thread deve essere assegnata una propria sessione (). C_OpenSession Non è consigliabile utilizzare la stessa sessione in più thread.
Con JCE, il AWS CloudHSM provider deve essere inizializzato una sola volta. Non condividere istanze di oggetti SPI tra thread. Ad esempio, Cipher, Signature, Digest, Mac KeyFactory o KeyGenerator gli oggetti devono essere utilizzati solo nel contesto del proprio thread.
Gestisci gli errori di limitazione
Potrebbero verificarsi errori di limitazione HSM nelle seguenti circostanze:
Il cluster non è dimensionato correttamente per gestire i picchi di traffico.
Il cluster non è dimensionato con una ridondanza di +1 durante gli eventi di manutenzione.
Le interruzioni della zona di disponibilità comportano una riduzione del numero di HSM disponibili nel cluster.
Limitazione HSMPer informazioni su come gestire al meglio questo scenario, consulta.
Per garantire che il cluster sia di dimensioni adeguate e non subisca limitazioni, è consigliabile AWS eseguire il test di carico nel proprio ambiente con i picchi di traffico previsti.
Integra i tentativi sulle operazioni del cluster
AWS può sostituire il tuo HSM per motivi operativi o di manutenzione. Per rendere l'applicazione resiliente a tali situazioni, AWS consiglia di implementare la logica di ripetizione dei tentativi sul lato client in tutte le operazioni indirizzate al cluster. I tentativi successivi sulle operazioni non riuscite a causa di sostituzioni dovrebbero avere esito positivo.
Implementa strategie di disaster recovery
In risposta a un evento, potrebbe essere necessario spostare il traffico da un intero cluster o area geografica. Le sezioni seguenti descrivono diverse strategie per eseguire questa operazione.
Usa il peering VPC per accedere al tuo cluster da un altro account o regione: puoi utilizzare il peering VPC per accedere al tuo AWS CloudHSM cluster da un altro account o regione. Per informazioni su come configurarlo, vedi Cos'è il peering VPC? nella VPC Peering Guide. Dopo aver stabilito le connessioni peering e configurato i gruppi di sicurezza in modo appropriato, è possibile comunicare con gli indirizzi IP HSM nello stesso modo in cui si farebbe normalmente.
Connettiti a più cluster dalla stessa applicazione: il provider JCE, la libreria PKCS #11 e l'interfaccia a riga di comando CloudHSM in Client SDK 5 supportano la connessione a più cluster dalla stessa applicazione. Ad esempio, puoi avere due cluster attivi, ciascuno in regioni diverse, e l'applicazione può connettersi a entrambi contemporaneamente e bilanciare il carico tra i due nell'ambito delle normali operazioni. Se l'applicazione non utilizza Client SDK 5 (l'SDK più recente), non è possibile connettersi a più cluster dalla stessa applicazione. In alternativa, puoi mantenere attivo e funzionante un altro cluster e, in caso di interruzione regionale, spostare il traffico sull'altro cluster per ridurre al minimo i tempi di inattività. Per i dettagli, consulta le rispettive pagine:
Ripristinare un cluster da un backup: è possibile creare un nuovo cluster da un backup di un cluster esistente. Per ulteriori informazioni, consulta Backup dei cluster in AWS CloudHSM.
Distribuzione graduale delle applicazioni
Segui strategie di distribuzione scaglionate, ad esempio distribuzioni basate su onde progressive, distribuzioni one-box e distribuzioni continue per le distribuzioni e i riavvii delle applicazioni client. Questo approccio riduce al minimo il potenziale impatto delle modifiche garantendo al contempo una capacità sufficiente per servire il traffico di produzione durante l'implementazione.