SlideShare a Scribd company logo
1 of 26
#DOH19
2
Kubernetes è bello, sicuro è meglio!
Giuliano Latini
@giulianolatini
latini.giuliano@gmail.com
#DOH19 3
Organizer & sponsors
GetLatestVersion.it
#DOH19 4
About me
• Ho esperienza quasi trentennale di sistemi e
software in ambito scientifico e della pubblica
amministrazione;
• Dal 2000 gestisco sistemi in ottica Remoting;
• Da 5 anni studio la cultura DevOps ed ho appreso che
ogni problema ha soluzione ma la tecnologia non
risolve tutti i problemi.
#DOH19 5
What, How, Why?
• La security nel mondo dei container:
• Nel codice: networking attraverso canali SSL e TLS, controllo degli input di
frontend;
• In infrastruttura: analisi dei files in ingresso con tool antivirus/antimalware,
analisi delle vulnerabilities nelle immagini usate, uso di un registry privato;
• Nel management dell’infrastruttura: canali di comunicazione per cli e
dashboard protetti con SSL e TLS; Uso delle risorse Secrets; Accesso VPN.
• Nei container in cloud valgono le stesse regole? Assolutamente SI!
• DockerDesktop install&run e la security? E’ da configurare!
• Da dove inziamo? Proteggendo l’headquarters!
#DOH19 6
Infrastructure as Code
#DOH19 7
Infrastructure as Code
• Costruzione e gestione dell’infrastruttura attraverso definizioni
formali delle risorse e degli stati da raggiungere.
• Uso delle tecniche di design pattern in ambito infrastrutturale.
• Modelli per il change management delle unità di processo:
Ad-hoc, Configuration synchronization, Immutable infrastructure, Containerized services.
• La security agisce su due aspetti:
• L’unità di processo, generalizzazione del concetto di Server, in cui valutare
superficie di attacco e vulnerabilità del software presente;
• Il canale di comunicazione attraverso cui sono comunicate le definizioni che
innescano il change management dell’infrastruttura.
• Concentriamoci sul Modello Containerized Services.
#DOH19 8
Azure Container Service
• Il Azure Container Service verrà ritirato il 31 gennaio 2020
• Migrazioni:
• da Azure Container con Kubernetes a AKS o aks-engine (opensource);
• da Azure Container con Docker a Docker EE Basic o Standard/Advanced;
• Azure Container con DC/OS a Mesosphere DC/OS Enterprise o Open Source.
• Architettura di security:
SCRIPT
#DOH19 9
Azure Container Registry
• Registry privato d’infrastruttura in cui depositare le immagini dei
container utilizzati dalle infrastrutture gestite.
• AAI:
• RBAC Individuale, tramite il comando ‘az acr login --name <acrName>’ e
sfruttando la pre-autenticazione di ‘az login’ un token con validità 1h è
created/cached per eseguire ‘docker push <acrLoginServer>/hello-world:v1’,
l’accesso si basa sugli strumenti IAM e Azure AD;
• Entità di Servizio, oggetto definito in Azure AD consente l’autenticazione
headless ad applicazioni e servizi per accedere al registry; si basa sul
meccanismo APP_ID/Secret utilizzando valori in formato GUID. All’oggetto
sono attribuibili i ruoli: AcrPull, AcrPush, Proprietario, è utilizzabile con
‘docker login myregistry.azurecr.io --username $SP_APP_ID --password $SP_PASSWD’.
• Il servizio AKS è integrabile con un Registry ACS per associazione.
#DOH19 10
Azure Kubernetes Service
• Gestione semplificata di un cluster per l’orchestrazione di container.
• Security
• AKS with Role-Based Access Control (RBAC): account di servizio e
integrazione con AAD a cui associare ruoli locali o estesi al cluster.
• AKS secrets: gestione dei dati sensibili (es. credenziali) necessari ai pod.
• Ingress Controller and Ingresses: LoadBalancer e filtering per il traffico in
ingresso ai pod applicative dell’infrastruttura.
• Network policies: accesso del servizio alle tecnologie Azure per il
networking così da sfruttare subnet virtuali, Network Security Group,
ExpressRoute, VPN.
• Image Hardening: assegnare l’esecuzione del processo interno al container
ad uno user e non al root locale
• Azure API management
#DOH19 11
Image Hardening
#DOH19 12
Criticità, il fianco scoperto da proteggere
• Accesso alla parte applicativa: esclusivamente via HTTPS tramite un
bilanciatore di carico per con certificato Let’s Encrypt.
• Accesso ai vari domini (Frontend, Backend, API) via path (Es.
www.acme.com/f/spa1 , www.acme.com/bc/function1,
www.acme.com/api/function1).
• Un registry dedicato per ogni ambiente (develop, staging, product).
• Image Hardening per tutte le immagini depositate nei registry
staging e product.
• Credenziali non riassegnabili individuali e per servizio con
assegnazione dei ruoli sfruttando AIM AAD e RBAC.
• Uso degli strumenti di Network policy per gestire la connettività
diretta al cluster.
#DOH19 13
Criticità, il fianco scoperto da proteggere
14
Come proteggere la Docker CLI
15
Docker push su ACR autenticati
16
Comandi ad un nodo Docker
attraverso una connessione sicura
17
Deploy di uno stack su AKS con
kubectl attraverso un canale sicuro
#DOH19 18
Recap
• Gli strumenti che implementano in cloud il Modello Containerized
Services gestiscono l’accesso via CLI con meccanismi forti di
autenticazione basati su token e certificati.
• Ridurre la ‘superfice attaccabile’ dell’infrastruttura attenua ma non
annulla la pericolosità degli attacchi.
• La gestione delle identità degli oggetti che interagiscono
nell’infrastruttura non è uno sterile consumo di tempo.
• Una parte della gestione della security nei container presenta
problemi e ha soluzioni simili alle VM e ai sistemi fisici.
• La security è un processo dinamico e non statico.
#DOH19 19
On-Air
Live il 2°martedì del mese
youtube.com/channel/UCefWD0f3IJYp_la7LpSNguw/
#DOH19 20
Bibliografia
• Infrastructure As Code
• Infrastructure as Code
• IaC on Azure – An introduction of Infrastructure as Code (IaC) with Azure
Resource Manager (ARM) Template
• How Azure CLI Manages Your Access Tokens
• Docker security
• docker/docker-credential-helpers
• Protect the Docker daemon socket
• az login
• Gestire l'accesso alle risorse di Azure usando RBAC e il portale di Azure
#DOH19 21
Bibliografia
• AKS
• Azure Kubernetes Service (AKS) Security Features - DZone Security
• Secure Kubernetes Services with Ingress, TLS and Let's Encrypt
• Kubernetes RBAC and TLS certificates – Kubernetes security guide (part 1). |
Sysdig
• Using OpenVPN on Azure For a Low Cost, Private VPN - Wintellect
• Documentazione del gateway VPN
• Concetti - Funzionalità di rete nel servizio Azure Kubernetes
• Oggetti applicazione e oggetti entità servizio in Azure Active Directory -
Microsoft identity platform
#DOH19 22
Bibliografia
• ACR
• Azure Container Registry: Public preview of Helm Chart Repositories and
more | Blog | Microsoft Azure
• Azure Container Registry Documentation - Tutorials
• SKU di Registro Azure Container
• Integrare Container Registry di Azure con il servizio Azure Kubernetes
• docker login
• Autenticazione al Registro Azure Container con entità servizio
• Eseguire l'autenticazione con un Registro Azure Container
#DOH19 23
Bibliografia
• ACS
• Il servizio Azure Container verrà ritirato il 31 gennaio 2020 | Aggiornamenti
di Azure | Microsoft Azure
• Docker for Azure setup & prerequisites
• Docker Engine - Enterprise for Azure
• Get Familiar with Docker Enterprise Edition Client Bundles - Docker Blog
• Docker - Docker Reference Architecture: Universal Control Plane Service
Discovery and Load Balancing for Swarm
#DOH19 24
Bibliografia
• criticità della piattaforma dal punto di vista della security
• Azure Kubernetes Service (AKS) Security Features - DZone Security
• Security concepts for applications and clusters in Azure Kubernetes Service
(AKS)
• Best practices for cluster security and upgrades in Azure Kubernetes Service
(AKS)
• Securing Kubernetes on Microsoft Azure: are your container doors wide
open?
• Let's Encrypt - Free SSL/TLS Certificates
#DOH19 25
Bibliografia
• Demo
• configurare con certificati digitali le connessioni usate da docker-cli per il deploy
• Verify repository client with certificates
• Deploy di un'immagine su ACR
• Setup Kubernetes Ingress with SSL-Passthrough
• Tutorial - Prepare a container registry for Azure Container Instances
• Eseguire l'autenticazione con un Registro Azure Container
• Deploy di un'immagine su VM con docker engine
• Secure services with TLS
• Deploy Docker containers fast to Microsoft Azure
• deploy di un container su ACS - Docker for Azure
• Deploy Docker containers fast to Microsoft Azure
• Deploy di uno stack su AKS
• Secure Kubernetes Services with Ingress, TLS and Let's Encrypt
• Kubernetes on Azure tutorial - Prepare an application
#DOH19
THANK YOU!

More Related Content

Similar to Kubernetes e bello, sicuro è meglio!

Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesSpeck&Tech
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetesblexin
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Par-Tec S.p.A.
 
AWS CDK infrastructure is code
AWS CDK infrastructure is codeAWS CDK infrastructure is code
AWS CDK infrastructure is codeEnrico Pesce
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingfrancesco pesare
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSMorlini Gabriele
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxGiuliano Latini
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS Imola Informatica
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerRoberto Messora
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseKiratech
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...azuredayit
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...Daniele Mondello
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Cuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisCuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisjekil
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzionegiacomos
 

Similar to Kubernetes e bello, sicuro è meglio! (20)

Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web Services
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
 
AWS CDK infrastructure is code
AWS CDK infrastructure is codeAWS CDK infrastructure is code
AWS CDK infrastructure is code
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
iOS_Course_1
iOS_Course_1iOS_Course_1
iOS_Course_1
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
 
Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Cuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisCuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysis
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzione
 

More from Giuliano Latini

Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....
Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....
Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....Giuliano Latini
 
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...Giuliano Latini
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
 
Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKSGiuliano Latini
 
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft Azure
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft AzureUno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft Azure
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft AzureGiuliano Latini
 
La potenza è nulla senza controllo
La potenza è nulla senza controlloLa potenza è nulla senza controllo
La potenza è nulla senza controlloGiuliano Latini
 
La potenza è nulla senza controllo
La potenza è nulla senza controlloLa potenza è nulla senza controllo
La potenza è nulla senza controlloGiuliano Latini
 
DOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HERODOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HEROGiuliano Latini
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalGiuliano Latini
 
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.Giuliano Latini
 
Docker vs Virtualizzazioni
Docker vs VirtualizzazioniDocker vs Virtualizzazioni
Docker vs VirtualizzazioniGiuliano Latini
 
Linux@Azure, l'altra metà del cielo.
Linux@Azure, l'altra metà del cielo.Linux@Azure, l'altra metà del cielo.
Linux@Azure, l'altra metà del cielo.Giuliano Latini
 
I containers in azure, light vm o un vero cambio di paradigma?
I containers in azure, light vm o un vero cambio di paradigma?I containers in azure, light vm o un vero cambio di paradigma?
I containers in azure, light vm o un vero cambio di paradigma?Giuliano Latini
 
Swarm - 50 sfumature di docker
Swarm - 50 sfumature di dockerSwarm - 50 sfumature di docker
Swarm - 50 sfumature di dockerGiuliano Latini
 
Mobile Camp @Univpm - Introduzione all'evento
Mobile Camp @Univpm - Introduzione all'eventoMobile Camp @Univpm - Introduzione all'evento
Mobile Camp @Univpm - Introduzione all'eventoGiuliano Latini
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGiuliano Latini
 
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)Giuliano Latini
 
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]Giuliano Latini
 

More from Giuliano Latini (20)

Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....
Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....
Microsoft Graph Powershell, gestire vecchi problemi con una mentalità nuova....
 
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...
Dai comlet all'IT e la giornata l'ha sfangata^J dagli Graph Powershell e gest...
 
Nat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazioneNat come esporre servizi https senza esporre l'applicazione
Nat come esporre servizi https senza esporre l'applicazione
 
Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKS
 
The user s identities
The user s identitiesThe user s identities
The user s identities
 
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft Azure
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft AzureUno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft Azure
Uno, nessuno o 10.000, la gestione dell'identità ai tempi di Microsoft Azure
 
La potenza è nulla senza controllo
La potenza è nulla senza controlloLa potenza è nulla senza controllo
La potenza è nulla senza controllo
 
La potenza è nulla senza controllo
La potenza è nulla senza controlloLa potenza è nulla senza controllo
La potenza è nulla senza controllo
 
DOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HERODOCKER FROM ZERO TO HERO
DOCKER FROM ZERO TO HERO
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 
Glv on air 08-10_2019
Glv on air   08-10_2019Glv on air   08-10_2019
Glv on air 08-10_2019
 
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
 
Docker vs Virtualizzazioni
Docker vs VirtualizzazioniDocker vs Virtualizzazioni
Docker vs Virtualizzazioni
 
Linux@Azure, l'altra metà del cielo.
Linux@Azure, l'altra metà del cielo.Linux@Azure, l'altra metà del cielo.
Linux@Azure, l'altra metà del cielo.
 
I containers in azure, light vm o un vero cambio di paradigma?
I containers in azure, light vm o un vero cambio di paradigma?I containers in azure, light vm o un vero cambio di paradigma?
I containers in azure, light vm o un vero cambio di paradigma?
 
Swarm - 50 sfumature di docker
Swarm - 50 sfumature di dockerSwarm - 50 sfumature di docker
Swarm - 50 sfumature di docker
 
Mobile Camp @Univpm - Introduzione all'evento
Mobile Camp @Univpm - Introduzione all'eventoMobile Camp @Univpm - Introduzione all'evento
Mobile Camp @Univpm - Introduzione all'evento
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetes
 
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)
 
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]
Puppet (v.1.0) IDEA Soc. Coop. [25/06/2014]
 

Kubernetes e bello, sicuro è meglio!

  • 2. 2 Kubernetes è bello, sicuro è meglio! Giuliano Latini @giulianolatini latini.giuliano@gmail.com
  • 3. #DOH19 3 Organizer & sponsors GetLatestVersion.it
  • 4. #DOH19 4 About me • Ho esperienza quasi trentennale di sistemi e software in ambito scientifico e della pubblica amministrazione; • Dal 2000 gestisco sistemi in ottica Remoting; • Da 5 anni studio la cultura DevOps ed ho appreso che ogni problema ha soluzione ma la tecnologia non risolve tutti i problemi.
  • 5. #DOH19 5 What, How, Why? • La security nel mondo dei container: • Nel codice: networking attraverso canali SSL e TLS, controllo degli input di frontend; • In infrastruttura: analisi dei files in ingresso con tool antivirus/antimalware, analisi delle vulnerabilities nelle immagini usate, uso di un registry privato; • Nel management dell’infrastruttura: canali di comunicazione per cli e dashboard protetti con SSL e TLS; Uso delle risorse Secrets; Accesso VPN. • Nei container in cloud valgono le stesse regole? Assolutamente SI! • DockerDesktop install&run e la security? E’ da configurare! • Da dove inziamo? Proteggendo l’headquarters!
  • 7. #DOH19 7 Infrastructure as Code • Costruzione e gestione dell’infrastruttura attraverso definizioni formali delle risorse e degli stati da raggiungere. • Uso delle tecniche di design pattern in ambito infrastrutturale. • Modelli per il change management delle unità di processo: Ad-hoc, Configuration synchronization, Immutable infrastructure, Containerized services. • La security agisce su due aspetti: • L’unità di processo, generalizzazione del concetto di Server, in cui valutare superficie di attacco e vulnerabilità del software presente; • Il canale di comunicazione attraverso cui sono comunicate le definizioni che innescano il change management dell’infrastruttura. • Concentriamoci sul Modello Containerized Services.
  • 8. #DOH19 8 Azure Container Service • Il Azure Container Service verrà ritirato il 31 gennaio 2020 • Migrazioni: • da Azure Container con Kubernetes a AKS o aks-engine (opensource); • da Azure Container con Docker a Docker EE Basic o Standard/Advanced; • Azure Container con DC/OS a Mesosphere DC/OS Enterprise o Open Source. • Architettura di security: SCRIPT
  • 9. #DOH19 9 Azure Container Registry • Registry privato d’infrastruttura in cui depositare le immagini dei container utilizzati dalle infrastrutture gestite. • AAI: • RBAC Individuale, tramite il comando ‘az acr login --name <acrName>’ e sfruttando la pre-autenticazione di ‘az login’ un token con validità 1h è created/cached per eseguire ‘docker push <acrLoginServer>/hello-world:v1’, l’accesso si basa sugli strumenti IAM e Azure AD; • Entità di Servizio, oggetto definito in Azure AD consente l’autenticazione headless ad applicazioni e servizi per accedere al registry; si basa sul meccanismo APP_ID/Secret utilizzando valori in formato GUID. All’oggetto sono attribuibili i ruoli: AcrPull, AcrPush, Proprietario, è utilizzabile con ‘docker login myregistry.azurecr.io --username $SP_APP_ID --password $SP_PASSWD’. • Il servizio AKS è integrabile con un Registry ACS per associazione.
  • 10. #DOH19 10 Azure Kubernetes Service • Gestione semplificata di un cluster per l’orchestrazione di container. • Security • AKS with Role-Based Access Control (RBAC): account di servizio e integrazione con AAD a cui associare ruoli locali o estesi al cluster. • AKS secrets: gestione dei dati sensibili (es. credenziali) necessari ai pod. • Ingress Controller and Ingresses: LoadBalancer e filtering per il traffico in ingresso ai pod applicative dell’infrastruttura. • Network policies: accesso del servizio alle tecnologie Azure per il networking così da sfruttare subnet virtuali, Network Security Group, ExpressRoute, VPN. • Image Hardening: assegnare l’esecuzione del processo interno al container ad uno user e non al root locale • Azure API management
  • 12. #DOH19 12 Criticità, il fianco scoperto da proteggere • Accesso alla parte applicativa: esclusivamente via HTTPS tramite un bilanciatore di carico per con certificato Let’s Encrypt. • Accesso ai vari domini (Frontend, Backend, API) via path (Es. www.acme.com/f/spa1 , www.acme.com/bc/function1, www.acme.com/api/function1). • Un registry dedicato per ogni ambiente (develop, staging, product). • Image Hardening per tutte le immagini depositate nei registry staging e product. • Credenziali non riassegnabili individuali e per servizio con assegnazione dei ruoli sfruttando AIM AAD e RBAC. • Uso degli strumenti di Network policy per gestire la connettività diretta al cluster.
  • 13. #DOH19 13 Criticità, il fianco scoperto da proteggere
  • 14. 14 Come proteggere la Docker CLI
  • 15. 15 Docker push su ACR autenticati
  • 16. 16 Comandi ad un nodo Docker attraverso una connessione sicura
  • 17. 17 Deploy di uno stack su AKS con kubectl attraverso un canale sicuro
  • 18. #DOH19 18 Recap • Gli strumenti che implementano in cloud il Modello Containerized Services gestiscono l’accesso via CLI con meccanismi forti di autenticazione basati su token e certificati. • Ridurre la ‘superfice attaccabile’ dell’infrastruttura attenua ma non annulla la pericolosità degli attacchi. • La gestione delle identità degli oggetti che interagiscono nell’infrastruttura non è uno sterile consumo di tempo. • Una parte della gestione della security nei container presenta problemi e ha soluzioni simili alle VM e ai sistemi fisici. • La security è un processo dinamico e non statico.
  • 19. #DOH19 19 On-Air Live il 2°martedì del mese youtube.com/channel/UCefWD0f3IJYp_la7LpSNguw/
  • 20. #DOH19 20 Bibliografia • Infrastructure As Code • Infrastructure as Code • IaC on Azure – An introduction of Infrastructure as Code (IaC) with Azure Resource Manager (ARM) Template • How Azure CLI Manages Your Access Tokens • Docker security • docker/docker-credential-helpers • Protect the Docker daemon socket • az login • Gestire l'accesso alle risorse di Azure usando RBAC e il portale di Azure
  • 21. #DOH19 21 Bibliografia • AKS • Azure Kubernetes Service (AKS) Security Features - DZone Security • Secure Kubernetes Services with Ingress, TLS and Let's Encrypt • Kubernetes RBAC and TLS certificates – Kubernetes security guide (part 1). | Sysdig • Using OpenVPN on Azure For a Low Cost, Private VPN - Wintellect • Documentazione del gateway VPN • Concetti - Funzionalità di rete nel servizio Azure Kubernetes • Oggetti applicazione e oggetti entità servizio in Azure Active Directory - Microsoft identity platform
  • 22. #DOH19 22 Bibliografia • ACR • Azure Container Registry: Public preview of Helm Chart Repositories and more | Blog | Microsoft Azure • Azure Container Registry Documentation - Tutorials • SKU di Registro Azure Container • Integrare Container Registry di Azure con il servizio Azure Kubernetes • docker login • Autenticazione al Registro Azure Container con entità servizio • Eseguire l'autenticazione con un Registro Azure Container
  • 23. #DOH19 23 Bibliografia • ACS • Il servizio Azure Container verrà ritirato il 31 gennaio 2020 | Aggiornamenti di Azure | Microsoft Azure • Docker for Azure setup & prerequisites • Docker Engine - Enterprise for Azure • Get Familiar with Docker Enterprise Edition Client Bundles - Docker Blog • Docker - Docker Reference Architecture: Universal Control Plane Service Discovery and Load Balancing for Swarm
  • 24. #DOH19 24 Bibliografia • criticità della piattaforma dal punto di vista della security • Azure Kubernetes Service (AKS) Security Features - DZone Security • Security concepts for applications and clusters in Azure Kubernetes Service (AKS) • Best practices for cluster security and upgrades in Azure Kubernetes Service (AKS) • Securing Kubernetes on Microsoft Azure: are your container doors wide open? • Let's Encrypt - Free SSL/TLS Certificates
  • 25. #DOH19 25 Bibliografia • Demo • configurare con certificati digitali le connessioni usate da docker-cli per il deploy • Verify repository client with certificates • Deploy di un'immagine su ACR • Setup Kubernetes Ingress with SSL-Passthrough • Tutorial - Prepare a container registry for Azure Container Instances • Eseguire l'autenticazione con un Registro Azure Container • Deploy di un'immagine su VM con docker engine • Secure services with TLS • Deploy Docker containers fast to Microsoft Azure • deploy di un container su ACS - Docker for Azure • Deploy Docker containers fast to Microsoft Azure • Deploy di uno stack su AKS • Secure Kubernetes Services with Ingress, TLS and Let's Encrypt • Kubernetes on Azure tutorial - Prepare an application