Un registro privato può essere utile per l'archiviazione di immagini dei container Linux per le applicazioni in un'infrastruttura interna controllata (e potenzialmente più sicura).
I container Linux sono tecnologie che consentono di raggruppare e isolare le applicazioni con l'intero ambiente di runtime, completo di tutti i file necessari per l'esecuzione. Diventa così più facile spostare le applicazioni tra gli ambienti (sviluppo, test, produzione, ecc.).
Red Hat nominata Leader nel Gartner® Magic Quadrant™ 2023
Grazie alla completezza della sua visione e alla sua capacità di esecuzione, Red Hat è stata nominata tra le aziende leader del Magic Quadrant™ del 2023 per la gestione dei container.
In questo articolo illustrerò come creare un registro privato semplice e predisposto per SSL/TLS con un profilo di sicurezza più avanzato, utilizzabile per l'archiviazione dei container in generale e come integrarlo con Red Hat OpenShift, al fine di eseguire deployment OCP disconnessi. Può essere utilizzato anche nei casi in cui OperatorHub non ha accesso a Internet.
Requisiti
Avremo bisogno di:
- FQDN: registry.rhbrlabs.com
- Sistema operativo: Red Hat Enterprise Linux 8.6 e versioni successive
- SELinux: enforcing
- Firewalld: abilitato
- Registro: Podman
- Strumenti Apache
- Volume: 100 Gb montati su /data
Questo registro supporta totalmente le installazioni disconnesse di OpenShift.
Installazione
Per ottenere il massimo in termini di sicurezza del sistema, l'installazione deve prevedere l'utilizzo della crittografia, oltre alle funzionalità di sicurezza già disponibili in Linux.
Crea le directory richieste:
[root@registry ~]# mkdir -p /data/registry/{auth,certs,data}
Certificati
Genera i certificati per il registro dei container. In questo esempio creiamo certificati con una validità di dieci anni:
[root@registry ~]# openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /data/registry/certs/registry.rhbrlabs.com.key -x509 -days 3650 \ -out /data/registry/certs/registry.rhbrlabs.com.crt \ -subj "/C=US/ST=NorthCarolina/L=Raleigh/O=Red Hat/OU=Engineering/CN=registry.rhbrlabs.com" \ -addext "subjectAltName = DNS:registry.rhbrlabs.com"
Il sistema operativo deve considerare attendibili i certificati generati.
Copia il certificato generato nella directory attendibile anchors ed esegui update-ca-trust:
[root@registry ~]# cp /data/registry/certs/registry.rhbrlabs.com.crt /etc/pki/ca-trust/source/anchors/
[root@registry ~]# update-ca-trust
Account utente
Per controllare gli accessi al registro, bisogna creare gli account utente. L'esempio seguente illustra la creazione di un account per il registro utenti.
Genera un file di autenticazione per il registro delle immagini:
[root@registry ~]# dnf -y install httpd-tools
[root@registry ~]# htpasswd -bBc /data/registry/auth/htpasswd registry redhat12345678
Segreto HTTP
Oltre all'account utente, abbiamo bisogno di un segreto per incrementare l'affidabilità dell'accesso.
Genera un segreto casuale:
[root@registry ~]# date | md5sum
10f207a4cbba51bf00755b5a50718966
Software di registro
Con tutti i dati necessari a disposizione, è il momento di creare il registro.
Crea il registro dei container utilizzando l'immagine docker.io/library/registry:2:
[root@registry ~]# dnf -y install podman
[root@registry ~]# podman create --name ocp-registry --net host -p 5000:5000 \ -v /data/registry/data:/var/lib/registry:z -v /data/registry/auth:/auth:z \ -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry" \ -e "REGISTRY_HTTP_SECRET=10f207a4cbba51bf00755b5a50718966" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /data/registry/certs:/certs:z \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.rhbrlabs.com.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/registry.rhbrlabs.com.key docker.io/library/registry:2
Il comando riportato in precedenza genera un messaggio simile a questo:
Trying to pull docker.io/library/registry:2... Getting image source signatures Copying blob fd4a5435f342 done Copying blob 213ec9aee27d done Copying blob 4583459ba037 done Copying blob b136d5c19b1d done Copying blob 6f6a6c5733af done Copying config dcb3d42c17 done Writing manifest to image destination Storing signatures Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use 22633f37262a4ab2d64fc8beb44bb80618b11802974fb2f45d31d98db3cf14e8
Ora il registro è pronto all'uso, ma c'è bisogno di un metodo per controllare l'avvio e l'arresto del servizio.
Controllo dell'avvio
Crea un file UNIT dedicato al registro per far partire automaticamente il container all'avvio:
[root@registry ~]# cat /etc/systemd/system/ocp-registry.service
[Unit] Description=OCP Registry [Service] Restart=always ExecStart=/usr/bin/podman start -a ocp-registry ExecStop=/usr/bin/podman stop -t 10 ocp-registry [Install] WantedBy=network-online.target
Avvia il container:
[root@registry ~]# systemctl daemon-reload
[root@registry ~]# systemctl enable --now ocp-registry.service
Registro privato in esecuzione
Firewall
Noi stiamo utilizzando un firewall locale, pertanto dobbiamo autorizzare la porta di servizio del registro.
Autorizza la porta TCP 5000 su Firewalld:
[root@registry ~]# firewall-cmd --permanent --add-port=5000/tcp
[root@registry ~]# firewall-cmd --reload
Verifica del funzionamento del registro
A questo punto controlliamo l'accesso al nuovo registro.
Verifica che l'autenticazione e l'SSL/TLS ritenuto attendibile funzioni:
[root@registry ~]# curl -u 'registry:redhat12345678' https://registry.rhbrlabs.com:5000/v2/_catalog
{"repositories":[]}
Integrazione con Red Hat OpenShift
Se intendi utilizzare il registro con OCP, crea un file con le informazioni di autenticazione in formato base64.
Genera un file temporaneo con le informazioni di autenticazione per le installazioni disconnesse di OpenShift:
[root@registry ~]# cat <<EOF > ~/registry-secret.json "registry.rhbrlabs.com:5000": { "email": "registry@redhat.com", "auth": "$(echo -n 'registry:redhat12345678' | base64 -w0)" } EOF
Conclusioni
Ora il nuovo registro privato con funzionalità di sicurezza aggiuntive è operativo. Un servizio di registro privato è un ottimo metodo per controllare gli accessi e soddisfare standard di sicurezza più rigorosi, dal momento che i servizi di registro pubblici sono più soggetti a problematiche di sicurezza.
In questo post ti ho accompagnato nella creazione da zero di un registro ottimizzato per la sicurezza. È una soluzione efficiente, ma non dispone di funzionalità avanzate come l'alta disponibilità, il mirroring, il caching e la replica geografica, già presenti in soluzioni più robuste.
Tutte queste funzioni, insieme alla scansione delle vulnerabilità dei container, al supporto dello storage di oggetti e alla scalabilità automatica, sono integrate in Red Hat Quay.
La piattaforma per il registro dei container Red Hat Quay è una soluzione ottimizzata in termini di sicurezza per lo storage, la distribuzione e la governance dei container e degli artefatti cloud native su qualsiasi infrastruttura. È disponibile come componente standalone o può essere eseguita su Red Hat OpenShift.
Sull'autore
Andre Rocha is a Consultant at Red Hat focused on OpenStack, OpenShift, RHEL and other Red Hat products. He has been at Red Hat since 2019, previously working as DevOps and SysAdmin for private companies.
Ricerca per canale
Automazione
Novità sull'automazione IT di tecnologie, team e ambienti
Intelligenza artificiale
Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque
Hybrid cloud open source
Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido
Sicurezza
Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti
Edge computing
Aggiornamenti sulle piattaforme che semplificano l'operatività edge
Infrastruttura
Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale
Applicazioni
Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili
Serie originali
Raccontiamo le interessanti storie di leader e creatori di tecnologie pensate per le aziende
Prodotti
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Servizi cloud
- Scopri tutti i prodotti
Strumenti
- Formazione e certificazioni
- Il mio account
- Supporto clienti
- Risorse per sviluppatori
- Trova un partner
- Red Hat Ecosystem Catalog
- Calcola il valore delle soluzioni Red Hat
- Documentazione
Prova, acquista, vendi
Comunica
- Contatta l'ufficio vendite
- Contatta l'assistenza clienti
- Contatta un esperto della formazione
- Social media
Informazioni su Red Hat
Red Hat è leader mondiale nella fornitura di soluzioni open source per le aziende, tra cui Linux, Kubernetes, container e soluzioni cloud. Le nostre soluzioni open source, rese sicure per un uso aziendale, consentono di operare su più piattaforme e ambienti, dal datacenter centrale all'edge della rete.
Seleziona la tua lingua
Red Hat legal and privacy links
- Informazioni su Red Hat
- Opportunità di lavoro
- Eventi
- Sedi
- Contattaci
- Blog di Red Hat
- Diversità, equità e inclusione
- Cool Stuff Store
- Red Hat Summit