Costruiamo un cloud con OpenStack: Keystone - The Identity Service #2

A cura di: Alessio Mario
Security, Authentication and Access Management

1: Introduzione a Keystone

Keystone fornisce il servizio per la gestione dell’autenticazione, dell’autorizzazione e di un catalogo di servizi.

Il servizio di Identity è il primo servizio con cui un utente interagisce. Una volta autenticato, un utente finale può utilizzare la propria identità per accedere ad altri servizi OpenStack. Allo stesso modo, altri servizi OpenStack sfruttano il servizio Identity per garantire che gli utenti siano coloro che dicono di essere e scoprire dove si trovano altri servizi all’interno dello stack. Il servizio Identity può anche integrarsi con alcuni sistemi di gestione degli utenti esterni (come LDAP).

Utenti e servizi possono individuare altri servizi utilizzando il catalogo dei servizi, che è gestito sempre dal servizio Identity. Come suggerisce il nome, un catalogo di servizi è una raccolta di servizi disponibili in una distribuzione OpenStack. Ogni servizio può avere uno o più endpoint e ciascun endpoint può essere di tre tipi: amministrativo, interno o pubblico. In un ambiente di produzione, diversi tipi di endpoint potrebbero risiedere su reti separate esposte a diversi tipi di utenti per motivi di sicurezza. Ad esempio, la rete pubblica API potrebbe essere visibile da Internet in modo che i clienti possano gestire i propri servizi sul cloud. La rete dell’API di amministrazione potrebbe essere limitata agli operatori all’interno dell’organizzazione che gestisce l’infrastruttura cloud. La rete API interna potrebbe essere limitata agli host che contengono i servizi OpenStack. Inoltre, OpenStack supporta più Region per un fattore di scalabilità. Per semplicità, in questa guida utilizzo la rete di Management per tutti i tipi di endpoint e la regione RegionOne predefinita. Insieme, le region, i servizi e gli endpoint creati all’interno del servizio Identity comprendono il catalogo dei servizi per una distribuzione OpenStack. Ogni servizio OpenStack nella distribuzione richiede una “Service Entry” con endpoint corrispondenti memorizzati nel servizio Identity. Questo può essere fatto solo dopo che il servizio Identity è stato installato e configurato correttamente.

Vediamo quindi come implementare l’Identity Service di OpenStack, code-name Keystone!

0

2: SQL Database

I seguenti passi vanno eseguiti sul Controller Node

Colleghiamoci per prima cosa con utenza root al nostro database:

0 (1)

Creiamo il database “keystone“:

0 (2)

Assegnamo delle Grant appropriate al database keystone:

0 (3)

Possiamo uscire dal DB.

3: Installazione e Configurazione

Andiamo ad installare i pacchetti di Keystone:

0 (4)

Una volta terminata l’installazione, modifichiamo il file /etc/keystone/keystone.conf ed inseriamo le seguenti direttive:

0 (5)

Andiamo quindi a popolare il database creato in precedenza:

0 (6)

Andiamo a verificare che il DB sia stato popolato:

0 (7)

Andiamo quindi ad inizializzare il nostro Fernet Key Repositories:

0 (8)

Effettuiamo infine il Bootstrap del nostro Identity Service con il comando:

0 (10)

3: Configurazione HTTP Server

Modifichiamo il file “/etc/httpd/conf/httpd.conf” configurando il ServerName

0 (9)

Creiamo infine un Symlink al file /usr/share/keystone/wsgi-keystone.conf

0 (11)

Startiamo Apache e impostiamo lo start automatico al boot.

0 (12)

4: Creazione di Domain, Projects, Users, e Roles

Le sezioni successive utilizzano una combinazione di variabili di ambiente e opzioni di comando per interagire con il servizio Identity tramite il client openstack. Per aumentare l’efficienza delle operazioni client, OpenStack supporta semplici script noti anche come file OpenRC.

Prima di procedere andiamo a creare 2 di questi script (admin-openrc e demo-openrc) e posizioniamolo nella directory /root/keystone-scripts

screenshot-www.linkedin.com-2019.12 (1)
screenshot-www.linkedin.com-2019.12 (2)

Per attivarli possiamo lanciare:

0 (13)

Una volta attivato lo script admin-openrc andiamo a creare un Domain di esempio

0 (14)

e un Project che chiameremo “service”

0 (15)

I Task normali (non di amministrazione) devono utilizzare un Project e un utente non privilegiato. Creiamo per questo proposito ad esempio, il Project “myproject” e l’utente “myuser“.

0 (16)

Creiamo anche un ruolo chiamato “myrole

0 (18)

E associamo il ruolo appena creato, al progetto myproject e all’utente myuser

0 (19)

5: Verifica del servizio

Prima di procedere con l’installazione degli altri servizi, dobbiamo assicurarci che Keystone sia perfettamente funzionante.

Andiamo quindi a rimuovere temporaneamente le 2 variabile d’ambiente impostate in precedenza

0 (20)

Con l’utente “admin” andiamo a richiedere un AuthToken, inseriamo quando richiesta la password di admin e otterremo il nostro token:

screenshot-www.linkedin.com-2019.12 (3)
0 (21)

Facciamo la stessa cosa con l’utente “myuser” creato in precedenza:

screenshot-www.linkedin.com-2019.12 (4)
0 (22)

Perfetto! Keystone funziona senza problemi.

Nel prossimo tutorial continueremo la costruzione del nostro Cloud andando ad installare il servizio di Image, code-name Glance!

Code4Future

Code4Future - 2019

Le piattaforme digitali, l’AI, la blockchain, VR, AR, 5G, Bikeconomy, Fintech, IoT stanno cambiando il mondo quotidiano del business. La trasformazione digitale è stato il filo conduttore del Code4Future, l’evento di Open Innovation che si è svolto l’8 e il 9 novembre al Talent Garden Ostiense di Roma, promosso da Html.it.

La manifestazione è stata l’occasione per interfacciarsi con professionisti del settore Digital che hanno condiviso esperienze, sfide e storie affascinanti, messe in relazione alle difficoltà di trasformazione che hanno incontrato in un paese come l’Italia.

Si è parlato di innovazione in ambito farmaceutico, del modello di Open Innovation di Cisco Italia, dell’approccio di Fincantieri alle nuove tecnologie e molto altro ancora.

Un programma e una serie di incontri coinvolgenti che hanno permesso di entrare in contatto con una realtà dinamica e tecnologicamente all’avanguardia fatta di imprenditori e visionari determinati a portare all’attenzione del pubblico le loro idee tramite nuove tecnologie e piattaforme digitali.

È stata messa in risalto la condivisione di risorse, di idee e di energie come parte importante della propria esperienza: il tema comune che è emerso è che proprio grazie al networking si può arrivare a conseguire obiettivi che da soli sembrano impossibili.

Scopri il programma degli interventi dell’evento.

Costruiamo un cloud con OpenStack

Introduzione e preparazione dell’ambiente 1# Descrizione di OpenStack e un pò di teoria! Il progetto OpenStack è una piattaforma di cloud computing open source per tutte le tipologie di…

ENERGENT E LO SPRINT CHALLENGE METHOD!

ENERGENT E LO SPRINT CHALLENGE METHOD!

Energent per le proprie risorse mette a punto un nuovo metodo per accrescere le diverse competenze in azienda, nasce lo Sprint Challenge Method!

Al via il nuovo percorso formativo messo a punto da Energent per la formazione interna, ma con un nuovo approccio che permette alle risorse di poter accrescere le proprie competenze ponendo loro sfide a tempo, con un duplice obiettivo: il rafforzamento delle proprie skills e soft skills.

Di seguito il video in cui abbiamo intervistato i tutor e le risorse!