diff --git a/CLAUDE.md b/CLAUDE.md index 9c3750b..c68a0cd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3,8 +3,10 @@ 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 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 -le serve, la VPN. **Il lavoro +utente, email, la frase per te, **nessuna password**) e, su LastPass, due +schede condivise con lei: `AWS > Nome Cognome` (console, MFA e, nel campo di +testo, la chiave di accesso) e `Gitea > nome.cognome` (password Gitea), più +la scheda `OTO > VPN HK nome.cognome` se le serve 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: scrivere i propri segreti nel terminale e, se le serve, accendere la VPN. Parla semplice, un passo alla volta, e controlla @@ -50,11 +52,13 @@ La spiegazione per le persone sta in | Cosa | Dove lo trova o lo crea | |---|---| -| 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 | -| 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 ed email | 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 | +| Password Gitea | su **LastPass**, scheda **`Gitea > nome.cognome`** (per esempio `Gitea > sara.locatelli`), campo *Password*. Nella mail non c'è, apposta | +| Indirizzo, utente, password e codice a due fattori della console AWS | su **LastPass**, scheda **`AWS > Nome Cognome`** (nome per esteso: `AWS > Sara Locatelli`). Il primo giorno non servono | +| Chiave di accesso AWS (*Access key ID* e *Secret access key*) | su **LastPass**, scheda **`AWS > Nome Cognome`**, nel **campo di testo**: due righe, *Access key ID* (inizia con `AKIA`) e *Secret access key*. Nella mail non c'è, 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 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 | +| File e credenziali della VPN | nella **scheda LastPass `OTO > VPN HK nome.cognome`** condivisa da chi amministra: il file `.ovpn` è allegato alla scheda (*Attachments* → si scarica, finisce in *Download*), utente e password della VPN sono scritti nella scheda. Il programma è **OpenVPN Connect**, lo installi tu. Se la scheda 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 | @@ -73,10 +77,10 @@ Capisci da solo se sei su Windows o su Mac (`uname -s`, `$OS`): non chiederlo. ## Non le chiedi che lavoro fa Lo ha già deciso chi amministra (deciso il 07/10/2026): se la persona ha la -mail, le servono tutti i passi; se su LastPass ha anche la nota *VPN*, le +mail, le servono tutti i passi; se su LastPass ha anche la scheda `OTO > VPN HK nome.cognome`, le serve anche la VPN. Chi lavora solo dal pannello del sito non riceve la mail -e non arriva qui. Alla VPN (passo 5) le chiedi soltanto se fra le note -LastPass condivise con lei ce n'è una che si chiama *VPN*: se no, salti il +e non arriva qui. Alla VPN (passo 5) le chiedi soltanto se fra le schede +LastPass condivise con lei c'è `OTO > VPN HK nome.cognome`: se no, salti il passo, e `verifica.sh` segnerà rossi VPN e staging: dille che per lei è normale. @@ -104,13 +108,15 @@ spiegala in una riga la prima volta. continui. 3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026): le password sono già le definitive e l'MFA di AWS lo attiva chi - amministra, con il seme nella nota LastPass. La chiave di accesso **non** - la crea: è già nella nota LastPass. Solo se lì non c'è, la crea dalla - console AWS (percorso nella tabella qui sopra), entrando con utente e - password della mail e il codice a due fattori della nota. + amministra, con il seme nella scheda LastPass `AWS > Nome Cognome`. La + chiave di accesso **non** la crea: è già nel campo di testo di quella + scheda. Solo se lì non c'è, la crea dalla console AWS (percorso nella + tabella qui sopra), entrando con utente, password e codice a due fattori + della stessa scheda. 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 - la nota LastPass; crea l'accesso a + password di Gitea (l'utente dalla mail, la password dalla scheda + `Gitea > nome.cognome`) e poi i due pezzi della chiave AWS, che lei copia + dal campo di testo della scheda `AWS > Nome Cognome`; 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 @@ -119,13 +125,13 @@ 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 se su LastPass ha la nota *VPN* (chiediglielo). Prima +5. **VPN**, solo se su LastPass ha la scheda `OTO > VPN HK nome.cognome` (chiediglielo). Prima installi tu OpenVPN Connect: su Windows `winget install -e --id OpenVPNTechnologies.OpenVPNConnect`, su Mac - `brew install --cask openvpn-connect`. Poi lei, un passo alla volta: apre la nota VPN su LastPass e scarica il file + `brew install --cask openvpn-connect`. Poi lei, un passo alla volta: apre la scheda 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*. + password della VPN dalla stessa scheda, 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 diff --git a/README.md b/README.md index d595eb9..6bc69a2 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,10 @@ 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 scrivi le tue chiavi nel terminale, con il comando che ti da' Claude. -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. +L'utente e' nella mail *I tuoi accessi OTO* che ti ha mandato chi amministra; +password e chiavi su LastPass, nelle schede condivise con te: +`Gitea > nome.cognome` (password Gitea), `AWS > Nome Cognome` (chiave AWS nel +campo di testo) e, se ti serve, `OTO > VPN HK nome.cognome`. ## Una regola diff --git a/configura.sh b/configura.sh index a3682c5..69344fb 100755 --- a/configura.sh +++ b/configura.sh @@ -18,7 +18,8 @@ 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 della mail di benvenuto: dal 07/10/2026 Gitea non +# La password e' nella scheda LastPass "Gitea > nome.cognome", condivisa da +# chi amministra (nella mail non c'e', apposta): 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)" @@ -40,10 +41,11 @@ fi if [ -n "$UTENTE" ] ; then ok "token Gitea gia' salvato (utente $UTENTE)" else - echo " Utente e password di Gitea sono nella mail \"I tuoi accessi OTO\" che ti ha" - echo " mandato chi amministra: copiali da li'." + echo " L'utente Gitea e' nella mail \"I tuoi accessi OTO\" che ti ha mandato chi" + echo " amministra. La password no: e' su LastPass, nella scheda \"Gitea > nome.cognome\"" + echo " col tuo utente (per esempio \"Gitea > sara.locatelli\"), campo Password." 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 scheda LastPass \"Gitea > $UTENTE_DATO\" (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. PASSWORD_CURL="$(printf '%s:%s' "$UTENTE_DATO" "$PASSWORD" | sed 's/[\\"]/\\&/g')" @@ -92,7 +94,8 @@ fi titolo "2. AWS" # -------------------------------------------------------------------------- # La chiave di accesso la crea chi amministra insieme all'utente, e la -# persona la trova nella nota LastPass della chiave AWS: qui la si incolla +# persona la trova su LastPass, nel campo di testo della scheda +# "AWS > Nome Cognome": 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. @@ -103,10 +106,13 @@ 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 " 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 " della mail di benvenuto);" + # Il nome della scheda e' quello per esteso: sara.locatelli -> Sara Locatelli. + SCHEDA_AWS="AWS > $(printf '%s' "${UTENTE:-nome.cognome}" | awk -F. '{for (i = 1; i <= NF; i++) printf "%s%s", (i > 1 ? " " : ""), toupper(substr($i, 1, 1)) substr($i, 2)}')" + echo " Non sono nella mail: li trovi su LastPass, nella scheda \"$SCHEDA_AWS\" che ti" + echo " ha condiviso chi amministra, nel campo di testo (righe Access key ID e Secret" + echo " access key). Se li' non c'e', la crei tu nella console AWS:" + echo " 1. entra su $AWS_CONSOLE (IAM user, utente, password e" + echo " codice a due fattori dalla stessa scheda LastPass);" 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." @@ -128,7 +134,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 della tua nota LastPass, e rilancia." + male "questa chiave e' di ${IDENTITA##*/}, non tua ($UTENTE): usa quella della tua scheda LastPass \"$SCHEDA_AWS\", e rilancia." else ok "accesso AWS: ${IDENTITA##*/}" fi @@ -226,4 +232,4 @@ ok "ssh $STAGING_NOME, ssh $PRODUZIONE_NOME e ssh $PRODUZIONE_VECCHIA_NOME: conf # -------------------------------------------------------------------------- titolo "Fatto" # -------------------------------------------------------------------------- -echo " Ora: accendi la VPN (file e credenziali nella nota LastPass), poi torna da Claude." +echo " Ora: se su LastPass hai la scheda \"OTO > VPN HK ${UTENTE:-nome.cognome}\", accendi la VPN (file e credenziali sono li'); poi torna da Claude."