onboard: accessi nella mail, chiave AWS e VPN su LastPass

Utenti e password arrivano nella mail "I tuoi accessi OTO", pronti da
copiare; la chiave AWS e la VPN (file .ovpn e credenziali) stanno in note
LastPass. Claude installa OpenVPN Connect e guida la persona a scaricare
il file e accendere la VPN. Alla fine lei risponde alla mail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-10-07 21:05:31 +02:00
co-authored by Claude Opus 5.5
parent d71753a5da
commit 5a2cd26f52
3 changed files with 35 additions and 27 deletions
+24 -16
View File
@@ -2,8 +2,9 @@
Chi ti parla è una persona **nuova in OTO**, spesso non tecnica, al primo Chi ti parla è una persona **nuova in OTO**, spesso non tecnica, al primo
giorno. Ti ha scritto qualcosa come «prepara il mio PC per OTO» e ha in mano giorno. Ti ha scritto qualcosa come «prepara il mio PC per OTO» e ha in mano
solo il messaggio di benvenuto che l'amministratore le ha condiviso su la mail *I tuoi accessi OTO* che le ha mandato chi amministra (link,
LastPass: password e chiave AWS. **Il lavoro utenti, password, la frase per te) e, su LastPass, la chiave AWS e, se
sviluppa, la VPN. **Il lavoro
lo fai tu**: installi i programmi, lanci i controlli, le dici cosa cliccare. lo fai tu**: installi i programmi, lanci i controlli, le dici cosa cliccare.
Lei fa solo quello che tu non puoi fare: i login nel browser, e scrivere i Lei fa solo quello che tu non puoi fare: i login nel browser, e scrivere i
propri segreti nel terminale. Parla semplice, un passo alla volta, e controlla propri segreti nel terminale. Parla semplice, un passo alla volta, e controlla
@@ -43,12 +44,12 @@ La spiegazione per le persone sta in
| Cosa | Dove lo trova o lo crea | | Cosa | Dove lo trova o lo crea |
|---|---| |---|---|
| Indirizzo, utente e password di AWS e di Gitea | nel **messaggio di benvenuto**: una nota che chi amministra le ha condiviso su **LastPass**. Se non ce l'ha, lo chiede a lui: tu non puoi recuperarlo | | Indirizzo, utente e password di AWS e di Gitea | nella **mail *I tuoi accessi OTO*** che le ha mandato chi amministra: righe già pronte da copiare. Se non ce l'ha, risponde a quella mail o lo chiede a lui: tu non puoi recuperarlo |
| Codice dal telefono (MFA) di AWS | console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Multi-factor authentication (MFA)* → *Assign MFA device* → *Authenticator app*. Serve un'app di autenticazione sul telefono (Google Authenticator, Microsoft Authenticator o simili): se non ce l'ha, prima la installa dallo store | | Codice dal telefono (MFA) di AWS | console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Multi-factor authentication (MFA)* → *Assign MFA device* → *Authenticator app*. Serve un'app di autenticazione sul telefono (Google Authenticator, Microsoft Authenticator o simili): se non ce l'ha, prima la installa dallo store |
| Chiave di accesso AWS (*Access key ID* e *Secret access key*) | nel **messaggio di benvenuto** su LastPass: la crea chi amministra insieme all'utente. Solo se lì non c'è (è arrivata prima, o la chiave è stata cancellata), la crea lei: console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Access keys* → *Create access key* → *Command Line Interface (CLI)* → spunta la conferma → *Next* → *Create access key*. I due pezzi sono nella pagina *Retrieve access keys*; la Secret si vede con *Show*, una volta sola. Se l'ha chiusa: cancella quella chiave dallo stesso riquadro e ne crea un'altra | | Chiave di accesso AWS (*Access key ID* e *Secret access key*) | in una **nota LastPass** condivisa da chi amministra (non nella mail, apposta): la crea chi amministra insieme all'utente. Solo se lì non c'è (è arrivata prima, o la chiave è stata cancellata), la crea lei: console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Access keys* → *Create access key* → *Command Line Interface (CLI)* → spunta la conferma → *Next* → *Create access key*. I due pezzi sono nella pagina *Retrieve access keys*; la Secret si vede con *Show*, una volta sola. Se l'ha chiusa: cancella quella chiave dallo stesso riquadro e ne crea un'altra |
| Utente Gitea | è quello del messaggio di benvenuto (`nome.cognome`); su Gitea lo vede in alto a destra, cliccando l'icona del profilo | | Utente Gitea | è nella mail (`nome.cognome`); su Gitea lo vede in alto a destra, cliccando l'icona del profilo |
| Email di lavoro | il suo indirizzo `@oto.agency` | | Email di lavoro | il suo indirizzo `@oto.agency` |
| File della VPN | lo manda chi amministra, che lo riceve dal fornitore. Il programma da installare dipende dal file: `.ovpn` → OpenVPN Connect, `.conf` → WireGuard. Se il file non le è arrivato, lo chiede a chi amministra | | File e credenziali della VPN | in una **nota LastPass** condivisa da chi amministra: il file `.ovpn` è allegato alla nota (*Attachments* → si scarica, finisce in *Download*), utente e password della VPN sono scritti nella nota. Il programma è **OpenVPN Connect**, lo installi tu. Se la nota non c'è, lo chiede a chi amministra |
| Password del Mac (per Homebrew) | è quella con cui accende il Mac | | Password del Mac (per Homebrew) | è quella con cui accende il Mac |
| Accesso a un progetto che non vede su Gitea | lo dà chi amministra: dille il nome del progetto da chiedere | | Accesso a un progetto che non vede su Gitea | lo dà chi amministra: dille il nome del progetto da chiedere |
@@ -82,32 +83,34 @@ token, push), spiegala in una riga la prima volta.
1. **Programmi.** Servono git, la AWS CLI, Docker, curl e ssh. Installa 1. **Programmi.** Servono git, la AWS CLI, Docker, curl e ssh. Installa
quello che manca: quello che manca:
- **Windows**: `winget install -e --id Git.Git`, `Amazon.AWSCLI`, - **Windows**: `winget install -e --id Git.Git`, `Amazon.AWSCLI`,
`Docker.DockerDesktop`. Docker vuole WSL2: `wsl --install`, poi un `Docker.DockerDesktop` e, per chi sviluppa,
`OpenVPNTechnologies.OpenVPNConnect`. Docker vuole WSL2: `wsl --install`, poi un
riavvio. Windows chiederà conferma (finestra *Sì/No*): avvisa prima che riavvio. Windows chiederà conferma (finestra *Sì/No*): avvisa prima che
arriva e che va cliccato *Sì*. Dopo un'installazione il `PATH` nuovo lo arriva e che va cliccato *Sì*. Dopo un'installazione il `PATH` nuovo lo
vede solo un terminale nuovo. vede solo un terminale nuovo.
- **Mac**: prima Homebrew. Il suo installatore chiede la password del Mac, - **Mac**: prima Homebrew. Il suo installatore chiede la password del Mac,
quindi quel comando lo lancia la persona nel Terminale: quindi quel comando lo lancia la persona nel Terminale:
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`. `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`.
Poi tu: `brew install git awscli` e `brew install --cask docker`. Poi tu: `brew install git awscli` e `brew install --cask docker`
(per chi sviluppa anche `brew install --cask openvpn-connect`).
- Docker Desktop va **aperto una volta** a mano e le condizioni accettate: - Docker Desktop va **aperto una volta** a mano e le condizioni accettate:
finché non lo si fa, `docker info` non risponde. finché non lo si fa, `docker info` non risponde.
2. **Questo repository sul PC**, se ci stai parlando da un link e non da 2. **Questo repository sul PC**, se ci stai parlando da un link e non da
dentro la cartella: `git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git dentro la cartella: `git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git
~/Work/workspace/oto/_OTO_IT_onboard` (è pubblico, non ha segreti) e da lì ~/Work/workspace/oto/_OTO_IT_onboard` (è pubblico, non ha segreti) e da lì
continui. continui.
3. **Il login su AWS nel browser**, lo fa lei. Le password del messaggio di 3. **Il login su AWS nel browser**, lo fa lei. Le password della mail di
benvenuto sono già le definitive (dal 07/10/2026): né AWS né Gitea benvenuto sono già le definitive (dal 07/10/2026): né AWS né Gitea
chiedono di cambiarle, e su Gitea dal browser non c'è niente da fare. chiedono di cambiarle, e su Gitea dal browser non c'è niente da fare.
- **AWS**: entrare dall'indirizzo del messaggio di benvenuto (*IAM user*, - **AWS**: entrare dall'indirizzo della mail di benvenuto (*IAM user*,
utente e password) e attivare utente e password) e attivare
l'MFA. I percorsi esatti sono nella tabella qui sopra: dàglieli un passo l'MFA. I percorsi esatti sono nella tabella qui sopra: dàglieli un passo
alla volta. La chiave di accesso **non** la crea: è già nel messaggio di alla volta. La chiave di accesso **non** la crea: è già nella nota
benvenuto. Se lì non c'è, la crea adesso, e lascia aperta la pagina: la LastPass. Se lì non c'è, la crea adesso, e lascia aperta la pagina: la
parte segreta si vede una volta sola. parte segreta si vede una volta sola.
4. **`./configura.sh`**, nel terminale della persona. Chiede utente e 4. **`./configura.sh`**, nel terminale della persona. Chiede utente e
password di Gitea e poi i due pezzi della chiave AWS, che lei copia dal password di Gitea e poi i due pezzi della chiave AWS, che lei copia dal
messaggio di benvenuto su LastPass; crea l'accesso a la nota LastPass; crea l'accesso a
Gitea, configura git, genera la chiave SSH e la carica sul suo profilo Gitea, configura git, genera la chiave SSH e la carica sul suo profilo
Gitea (da lì la prende l'amministratore: **non va mandata a nessuno**), Gitea (da lì la prende l'amministratore: **non va mandata a nessuno**),
scrive i nomi dei server in `~/.ssh/config`. Gitea viene prima apposta: è lui a dire chi è la persona. Se sul PC scrive i nomi dei server in `~/.ssh/config`. Gitea viene prima apposta: è lui a dire chi è la persona. Se sul PC
@@ -116,9 +119,14 @@ token, push), spiegala in una riga la prima volta.
l'amministratore, perché quella chiave va disattivata. Una chiave altrui l'amministratore, perché quella chiave va disattivata. Una chiave altrui
non va mai tenuta "intanto che funziona": tutto quello che la persona fa non va mai tenuta "intanto che funziona": tutto quello che la persona fa
su AWS risulterebbe fatto dall'altro. su AWS risulterebbe fatto dall'altro.
5. **VPN** (solo chi sviluppa): installare il programma giusto per il file 5. **VPN** (solo chi sviluppa). OpenVPN Connect l'hai già installato tu; lei,
(vedi tabella) e aprirci dentro il file che le ha mandato chi amministra. un passo alla volta: apre la nota VPN su LastPass e scarica il file
6. **Dirlo all'amministratore**: «ho finito la configurazione». È il segnale `.ovpn` allegato; apre OpenVPN Connect → *Upload File* (o *Import
Profile* → *File*) → *Browse* → il file in *Download*; scrive utente e
password della VPN dalla stessa nota, spunta *Save password*, *Connect*.
È accesa quando l'interruttore diventa verde (*Connected*).
6. **Dirlo all'amministratore**: risponde alla mail *I tuoi accessi OTO*
scrivendo «ho finito la configurazione». È il segnale
per mettere la sua chiave SSH sui server; finché non lo fa, staging resta per mettere la sua chiave SSH sui server; finché non lo fa, staging resta
rosso. rosso.
7. **`./verifica.sh`**: tutto verde, o un elenco preciso di cosa manca e a chi 7. **`./verifica.sh`**: tutto verde, o un elenco preciso di cosa manca e a chi
+2 -2
View File
@@ -14,8 +14,8 @@ scaricano i progetti stessi da AWS, con il tuo accesso personale.
Il resto lo fa Claude: installa i programmi e ti dice cosa cliccare. Tu fai i Il resto lo fa Claude: installa i programmi e ti dice cosa cliccare. Tu fai i
login nel browser e scrivi le tue chiavi nel terminale quando te lo chiede. login nel browser e scrivi le tue chiavi nel terminale quando te lo chiede.
Password e chiave AWS sono nel messaggio di benvenuto, la nota Utenti e password sono nella mail *I tuoi accessi OTO* che ti ha mandato chi
che chi amministra ti ha condiviso su LastPass. amministra; la chiave AWS e la VPN in una nota LastPass condivisa con te.
## Una regola ## Una regola
+9 -9
View File
@@ -18,16 +18,16 @@ titolo "1. Gitea"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Alla persona si chiede la password, non un token: il token lo crea lo # Alla persona si chiede la password, non un token: il token lo crea lo
# script con l'API di Gitea, cosi' non c'e' da cercarlo fra le impostazioni. # script con l'API di Gitea, cosi' non c'e' da cercarlo fra le impostazioni.
# La password e' quella del messaggio di benvenuto: dal 07/10/2026 Gitea non # La password e' quella della mail di benvenuto: dal 07/10/2026 Gitea non
# obbliga piu' a cambiarla. Chi e' stato creato prima invece deve ancora # obbliga piu' a cambiarla. Chi e' stato creato prima invece deve ancora
# cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto. # cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto.
UTENTE="$(utente_gitea)" UTENTE="$(utente_gitea)"
if [ -n "$UTENTE" ] ; then if [ -n "$UTENTE" ] ; then
ok "token Gitea gia' salvato (utente $UTENTE)" ok "token Gitea gia' salvato (utente $UTENTE)"
else else
echo " Utente e password di Gitea sono nel messaggio di benvenuto, la nota" echo " Utente e password di Gitea sono nella mail \"I tuoi accessi OTO\" che ti ha"
echo " LastPass che ti ha condiviso chi amministra." echo " mandato chi amministra: copiali da li'."
read -r -p " Il tuo utente Gitea (nome.cognome, come nel messaggio di benvenuto): " UTENTE_DATO read -r -p " Il tuo utente Gitea (dalla mail, riga utente Gitea): " UTENTE_DATO
read -r -s -p " La tua password Gitea, dalla nota LastPass (non si vede, ed e' normale): " PASSWORD ; echo read -r -s -p " La tua password Gitea, dalla nota LastPass (non si vede, ed e' normale): " PASSWORD ; echo
# utente:password passano a curl da stdin, non dalla riga di comando # utente:password passano a curl da stdin, non dalla riga di comando
# (che chiunque sul PC vede con ps). Virgolette e \ vanno protette. # (che chiunque sul PC vede con ps). Virgolette e \ vanno protette.
@@ -77,7 +77,7 @@ fi
titolo "2. AWS" titolo "2. AWS"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# La chiave di accesso la crea chi amministra insieme all'utente, e la # La chiave di accesso la crea chi amministra insieme all'utente, e la
# persona la trova nel messaggio di benvenuto su LastPass: qui la si incolla # persona la trova nella nota LastPass della chiave AWS: qui la si incolla
# una volta e finisce in ~/.aws/credentials, dove la leggono la AWS CLI e gli # una volta e finisce in ~/.aws/credentials, dove la leggono la AWS CLI e gli
# script dei progetti. Se non ce l'ha (e' arrivata prima, o l'ha persa), se # script dei progetti. Se non ce l'ha (e' arrivata prima, o l'ha persa), se
# ne crea una dalla console: la strada e' scritta qui sotto. # ne crea una dalla console: la strada e' scritta qui sotto.
@@ -88,10 +88,10 @@ titolo "2. AWS"
# quello che la persona fa su AWS risulterebbe fatto da un altro. # quello che la persona fa su AWS risulterebbe fatto da un altro.
chiedi_chiave_aws () { chiedi_chiave_aws () {
echo " Serve la tua chiave di accesso AWS, due pezzi: Access key ID e Secret access key." echo " Serve la tua chiave di accesso AWS, due pezzi: Access key ID e Secret access key."
echo " Li trovi nel messaggio di benvenuto, nella nota LastPass che ti ha condiviso" echo " Non sono nella mail: li trovi nella nota LastPass che ti ha condiviso"
echo " chi amministra. Se li' non c'e', la crei tu nella console AWS:" echo " chi amministra. Se li' non c'e', la crei tu nella console AWS:"
echo " 1. entra su $AWS_CONSOLE (IAM user, utente e password" echo " 1. entra su $AWS_CONSOLE (IAM user, utente e password"
echo " del messaggio di benvenuto);" echo " della mail di benvenuto);"
echo " 2. il tuo nome in alto a destra → Security credentials;" echo " 2. il tuo nome in alto a destra → Security credentials;"
echo " 3. riquadro Access keys → Create access key → Command Line Interface (CLI)," echo " 3. riquadro Access keys → Create access key → Command Line Interface (CLI),"
echo " spunta la conferma → Next → Create access key." echo " spunta la conferma → Next → Create access key."
@@ -113,7 +113,7 @@ chiedi_chiave_aws () {
if ! IDENTITA="$(aws sts get-caller-identity --query Arn --output text 2> /dev/null)" ; then if ! IDENTITA="$(aws sts get-caller-identity --query Arn --output text 2> /dev/null)" ; then
male "AWS non accetta questa chiave: controlla di aver copiato i due pezzi interi, senza scambiarli, e rilancia." male "AWS non accetta questa chiave: controlla di aver copiato i due pezzi interi, senza scambiarli, e rilancia."
elif [ -n "$UTENTE" ] && [ "${IDENTITA##*/}" != "$UTENTE" ] ; then elif [ -n "$UTENTE" ] && [ "${IDENTITA##*/}" != "$UTENTE" ] ; then
male "questa chiave e' di ${IDENTITA##*/}, non tua ($UTENTE): usa quella del tuo messaggio di benvenuto, e rilancia." male "questa chiave e' di ${IDENTITA##*/}, non tua ($UTENTE): usa quella della tua nota LastPass, e rilancia."
else else
ok "accesso AWS: ${IDENTITA##*/}" ok "accesso AWS: ${IDENTITA##*/}"
fi fi
@@ -211,4 +211,4 @@ ok "ssh $STAGING_NOME, ssh $PRODUZIONE_NOME e ssh $PRODUZIONE_VECCHIA_NOME: conf
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
titolo "Fatto" titolo "Fatto"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
echo " Ora: importa il file della VPN, poi lancia ./verifica.sh" echo " Ora: accendi la VPN (file e credenziali nella nota LastPass), poi torna da Claude."