From 5a2cd26f52fa1ebad72f4d260ee54aa4f4075d63 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 7 Oct 2026 21:05:31 +0200 Subject: [PATCH] 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 --- CLAUDE.md | 40 ++++++++++++++++++++++++---------------- README.md | 4 ++-- configura.sh | 18 +++++++++--------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 2eb7cb6..950f30b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,8 +2,9 @@ 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 -solo il messaggio di benvenuto che l'amministratore le ha condiviso su -LastPass: password e chiave AWS. **Il lavoro +la mail *I tuoi accessi OTO* che le ha mandato chi amministra (link, +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. 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 @@ -43,12 +44,12 @@ La spiegazione per le persone sta in | 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 | -| 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 | -| Utente Gitea | è quello del messaggio di benvenuto (`nome.cognome`); su Gitea lo vede in alto a destra, cliccando l'icona del profilo | +| 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 | è 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` | -| 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 | | 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 quello che manca: - **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 arriva e che va cliccato *Sì*. Dopo un'installazione il `PATH` nuovo lo vede solo un terminale nuovo. - **Mac**: prima Homebrew. Il suo installatore chiede la password del Mac, quindi quel comando lo lancia la persona nel Terminale: `/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: finché non lo si fa, `docker info` non risponde. 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 ~/Work/workspace/oto/_OTO_IT_onboard` (è pubblico, non ha segreti) e da lì 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 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 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 - benvenuto. Se lì non c'è, la crea adesso, e lascia aperta la pagina: la + alla volta. La chiave di accesso **non** la crea: è già nella nota + LastPass. Se lì non c'è, la crea adesso, e lascia aperta la pagina: la parte segreta si vede una volta sola. 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 - 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 (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 @@ -116,9 +119,14 @@ token, push), spiegala in una riga la prima volta. l'amministratore, perché quella chiave va disattivata. Una chiave altrui non va mai tenuta "intanto che funziona": tutto quello che la persona fa su AWS risulterebbe fatto dall'altro. -5. **VPN** (solo chi sviluppa): installare il programma giusto per il file - (vedi tabella) e aprirci dentro il file che le ha mandato chi amministra. -6. **Dirlo all'amministratore**: «ho finito la configurazione». È il segnale +5. **VPN** (solo chi sviluppa). OpenVPN Connect l'hai già installato tu; lei, + un passo alla volta: apre la nota VPN su LastPass e scarica il file + `.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 rosso. 7. **`./verifica.sh`**: tutto verde, o un elenco preciso di cosa manca e a chi diff --git a/README.md b/README.md index d507ca0..26c3a5c 100644 --- a/README.md +++ b/README.md @@ -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 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 -che chi amministra ti ha condiviso su LastPass. +Utenti e password sono nella mail *I tuoi accessi OTO* che ti ha mandato chi +amministra; la chiave AWS e la VPN in una nota LastPass condivisa con te. ## Una regola diff --git a/configura.sh b/configura.sh index 725169f..10b269f 100755 --- a/configura.sh +++ b/configura.sh @@ -18,16 +18,16 @@ titolo "1. Gitea" # -------------------------------------------------------------------------- # 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. -# 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 # cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto. UTENTE="$(utente_gitea)" if [ -n "$UTENTE" ] ; then ok "token Gitea gia' salvato (utente $UTENTE)" else - echo " Utente e password di Gitea sono nel messaggio di benvenuto, la nota" - echo " LastPass che ti ha condiviso chi amministra." - read -r -p " Il tuo utente Gitea (nome.cognome, come nel messaggio di benvenuto): " UTENTE_DATO + echo " Utente e password di Gitea sono nella mail \"I tuoi accessi OTO\" che ti ha" + echo " mandato chi amministra: copiali da li'." + 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 # utente:password passano a curl da stdin, non dalla riga di comando # (che chiunque sul PC vede con ps). Virgolette e \ vanno protette. @@ -77,7 +77,7 @@ fi titolo "2. AWS" # -------------------------------------------------------------------------- # 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 # 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. @@ -88,10 +88,10 @@ titolo "2. AWS" # quello che la persona fa su AWS risulterebbe fatto da un altro. chiedi_chiave_aws () { 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 " 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 " 3. riquadro Access keys → Create access key → Command Line Interface (CLI)," 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 male "AWS non accetta questa chiave: controlla di aver copiato i due pezzi interi, senza scambiarli, e rilancia." 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 ok "accesso AWS: ${IDENTITA##*/}" fi @@ -211,4 +211,4 @@ ok "ssh $STAGING_NOME, ssh $PRODUZIONE_NOME e ssh $PRODUZIONE_VECCHIA_NOME: conf # -------------------------------------------------------------------------- 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."