Code Engine e sicurezza
L'architettura IBM Cloud® Code Engine è stata progettata ponendo la sicurezza al primo posto. I componenti di Code Engine sono gestiti e di proprietà di IBM.
I clienti e i loro carichi di lavoro sono isolati gli uni dagli altri tramite i progetti, che si basano sugli spazi dei nomi di Kubernetes. I controlli di accesso basati sui ruoli vengono eseguiti a livello di risorsa per permettere solo agli
utenti autorizzati di eseguire determinate operazioni sulle risorse di progetto. L'accesso degli utenti è gestito tramite IAM ( Cloud Identity and Access Management ). Le app distribuite sono accessibili tramite HTTPS, mentre Code
Engine crea e gestisce automaticamente per conto dell'utente le certificazioni sottostanti TLS. Code Engine fornisce una protezione immediata DDoS per l'applicazione. Il servizio DDoS protezione di Code Engine è fornito
da Cloud Internet Services (CIS) senza alcun costo aggiuntivo per l'utente.
Code Engine Per definizione, non è possibile accedere ai lavori dall'esterno. I job possono comunque effettuare richieste esterne e possono richiamare internamente le applicazioni dell' Code Engine. Per un esempio di processo che richiama un'applicazione internamente, consultare il repository "Samples for Code Engine " all'indirizzo GitHub.
È possibile utilizzare le seguenti funzioni di sicurezza per migliorare la protezione.
| Funzione di sicurezza | Descrizione |
|---|---|
| Autorizza accesso con IAM | Concedi l'accesso ad altri utenti per Code Engine utilizzando Cloud Identity and Access Management (IAM). IBM Cloud IAM fornisce l'autenticazione protetta con la piattaforma IBM Cloud, Code Enginee tutte le risorse nel tuo account. L'impostazione di autorizzazioni e ruoli utente appropriati è la chiave per limitare chi può accedere alle risorse. Consultare Gestione dell'accesso utente. |
| Disabilita endpoint esterni | Distribuisci la tua applicazione con un endpoint esterno disabilitato che non è esposto al traffico esterno utilizzando l'opzione --visibility=private o visibility=project. Consultare Opzioni per la visibilità per un'applicazione Code Engine. |
| Memorizza immagini nei registri di immagini privati | Configura un registro di immagini privato, come quello fornito da IBM Cloud Container Registry, per controllare l'accesso al registro e le immagini che possono essere distribuite in Code Engine. Esegui automaticamente la scansione delle immagini con IBM Cloud Container Registry Vulnerability Advisor. Puoi anche aggiungere l'accesso al tuo registro privato personalizzato. Consultare Accesso ai registri del contenitore. |
| Crea codice da un repository privato | Archivia il tuo codice sorgente in un repository privato e quindi crea in IBM Cloud Container Registry. Consultare Accesso ai repository di codice privato. |
| Utilizzare i segreti per memorizzare le informazioni sensibili | Puoi archiviare informazioni, come password e chiavi SSH in un segreto. Per ulteriori informazioni, vedi Gestione dei segreti. |
| Aggiungi funzionalità di autorizzazione e autenticazione | Se stai esponendo la tua applicazione o funzione in Code Engine su un'API o un sito web pubblico, potresti voler limitare l'accesso a determinati utenti o ubicazioni (intervalli di indirizzi IP). Mentre Code Engine fornisce le funzioni per limitare l'accesso per le API che puoi utilizzare per gestire i progetti Code Engine e le sue entità, è responsabilità del proprietario dell'origine del codice aggiungere le funzionalità di autenticazione e autorizzazione appropriate per proteggere il codice che viene eseguito quando raggiunge gli endpoint. Ad esempio, puoi utilizzare IBM Cloud App ID per aggiungere funzionalità di autenticazione e autorizzazione per il tuo codice. |
| Aggiornare regolarmente i certificati " TLS " | Se utilizzi mappature di domini personalizzate per rendere accessibili le tue applicazioni o funzioni, devi assicurarti che i tuoi certificati TLS abbiano una data di scadenza; ad esempio, 90 giorni. È necessario ruotare periodicamente il certificato con un certificato aggiornato (che ha una propria data di scadenza). Idealmente, utilizzare l'automazione per ruotare i certificati. Ad esempio, è possibile utilizzare un’attività di “ Code Engine ” attivata da un abbonamento cron per effettuare la rotazione del certificato. Se conservi i segreti in IBM Cloud Secrets Manager, valuta la possibilità di utilizzare IBM Cloud Event Notifications in modo che il tuo progetto Code Engine sia in grado di gestire la rotazione dei certificati. È possibile trovare un'app di esempio che utilizza le notifiche degli eventi visitando il nostro repository di esempi " Code Engine " all'indirizzo GitHub. |
Versioni di TLS e suite di cifratura supportate
L'API e gli endpoint dell'applicazione " Code Engine " supportano il protocollo Transport Layer Security ( TLS ), il protocollo 1.2 (o versioni successive) e le seguenti suite di cifratura.
TLS suite di cifratura
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305
Protezione DDoS
Code Engine fornisce una protezione DDoS immediata per la tua applicazione. La protezione DDoS di Code Engineè fornita da Cloud Internet Services (CIS) senza costi aggiuntivi per te.
DDoS La protezione copre gli attacchi ai protocolli dei livelli 3 e 4 del modello OSI ( TCP/IP ), ma non quelli al livello 7 ( HTTP ).
Per indirizzare gli attacchi di livello 7, puoi eseguire i seguenti passaggi in modo che il tuo traffico venga eseguito attraverso una rotta sicura utilizzando il dominio personalizzato e non sia più disponibile per l'internet pubblico attraverso il dominio fornito da Code Engine.
- Ottieni il tuo dominio personalizzato.
- In Code Engine, crea un'associazione di dominio personalizzata per la tua applicazione.
- Configura un'istanza di Cloud Internet Services (CIS) per gestire il tuo dominio personalizzato.
- Aggiungi il dominio personalizzato all'istanza CIS.
- Configura un programma di bilanciamento del carico globale in CIS.
- Abilita la modalità proxy “ HTTP ” per il bilanciatore di carico in CIS. In questo modo si attiva la protezion DDoS e a livello 7 e altre funzionalità di sicurezza CIS.
- In Code Engine, disattiva le associazioni dominio fornite dal sistema pubblico della tua applicazione. Vai alla tua applicazione, dalla scheda Domain mappings per la tua applicazione, seleziona No external system domain mapping.
- Fare clic su Crea per salvare la revisione dell'applicazione.
Per ulteriori informazioni su DDoS in CIS, consulta Dealing with Distributed Denial of Service attacchi in CIS. Per ulteriori modi per affrontare gli attacchi di livello 7, vedi Mitigazione Degli Attacchi di livello 7 in CIS.