Come accedere al tuo account AWS

(Nicolo Marchesi) (3 dicembre 2020)

Come accedere al tuo account AWS

Ciao. Hai appena creato il tuo primo account AWS e non vedi lora di immergerti in tutti gli entusiasmanti servizi e tecnologie che AWS ha da offrirti per iniziare a costruire la prossima grande novità. Ma aspetta un secondo … accederai con le credenziali del tuo account di root? O è meglio generare un nuovo utente? O magari usi un ruolo?

Rallenta un minuto e, alla fine del post sul blog, ti prometto che sarai in grado di scegliere il modo migliore per accedere al tuo account AWS in modo sicuro .

Attenzione, tuttavia, prenderemo in considerazione laccesso a un singolo account aws poiché tratteremo le strategie multi-account la prossima volta . Dobbiamo camminare prima di poter correre, giusto?

Account e risorse

Ogni incredibile viaggio con AWS inizia con account e risorse e un account è proprio come una scatola vuota.

Le cose che puoi inserire nel tuo account possono essere qualsiasi cosa relativa ai servizi di AWS, ad esempio, reti, macchine virtuali, container e così via.

Ma la parte più cruciale è quella per impostazione predefinita, nessun account condivide alcuna risorsa in modo che nulla possa entrare o uscire tra due diversi account AWS. E questo è ottimo per dividere i carichi di lavoro ed essere sicuri che solo le persone giuste accedano a tutto.

IAM – Identity & Gestione degli accessi

Allinterno di ogni account, IAM è lì per proteggere le risorse allinterno del tuo account gestendo quali entità possono eseguire alcune azioni su tali risorse:

  • CHI – quali identità
  • COSA – possono eseguire alcune azioni
  • WHERE – su alcune risorse
  • COME – e ho soddisfatto alcune condizioni

le definisco come 4W e per ora dovremo concentrarci solo sui primi 3.

Allinizio, lutente root

Quando hai effettuato laccesso dopo aver creato laccount AWS, hai utilizzato quellaccount utente root .

Questo è diverso dagli altri che puoi creare perché:

  • Creato durante la registrazione dellaccount
  • Tu puoi accedere utilizzando lindirizzo email e la password che hai utilizzato per creare laccount
  • Puoi accedere alle informazioni di fatturazione
  • Ha accesso illimitato a tutte le risorse nel tuo account

Questo utente è estremamente importante e dovresti proteggerlo nel miglior modo possibile. È un super amministratore con steroidi poiché è in grado di visualizzare le informazioni di fatturazione oltre a poter fare tutto con tutte le tue risorse.

Quindi, la prima cosa da fare dovrebbe essere:

  • Abilita lautenticazione a più fattori (MFA) e salva il codice QR in un luogo sicuro
  • Elimina tutte le chiavi di accesso relative a questo utente per disabilitare laccesso programmatico (non ne avresti comunque bisogno!)

E la prossima cosa dovrebbe essere decidere come accedere a questo account dora in poi.

Dallinterno di AWS

Concentriamoci per ora su ciò che AWS ci offre senza fare affidamento su terze parti. Ciò è particolarmente utile se ci concentriamo su questo singolo account perché dobbiamo padroneggiare i tre elementi costitutivi di IAM: utente, gruppi e ruoli.

Utenti

Ricordi lutente root? Gli utenti IAM sono dello stesso tipo di entità ma in modo diverso dallutente root. Non hanno autorizzazioni di fatturazione predefinite e accesso amministratore (a meno che tu non conceda loro … cosa che non dovresti).

Con un utente, possiamo creare unentità che può accedere alla console Web AWS o con accesso programmatico tramite una serie di credenziali (una chiave di accesso e una chiave di accesso segreta) che sono fisse e non cambieranno nel tempo. Insieme alle chiavi SSH / HTTPS per AWS CodeCommit o alle credenziali per Amazon Keyspaces (per Apache Cassandra)

  • Credenziali di accesso per la console Web
  • Credenziali di accesso e chiave segreta per laccesso programmatico per API, CLI e SDK
  • Chiavi SSH / HTTPS per AWS CodeCommit
  • Credenziali per Amazon Keyspaces (per Apache Cassandra)

Accesso granulare

È del tutto possibile con un utente IAM abilitare una o più chiavi di accesso a seconda di come si desidera che si comporti lutente.Ad esempio:

  • Un analista di dati che deve controllare solo le analisi sulla console web ma senza bisogno di accesso programmatico
  • Un DevOps serverless che deve eseguire azioni sul console e utilizzare la CLI per fornire alcune risorse avranno bisogno di entrambi questi accessi
  • Uno sviluppatore che lavora su un singolo repository e non ha bisogno di interagire con le risorse AWS avrà chiavi SSH / HTTPS per AWS CodeCommit.

Tieni presente che condividi credenziali utente IAM è un grande no-no, poiché è il primo passo per perdere credenziali e governance e esporsi a minacce alla sicurezza.

Non lo fai. Non voglio che il tuo account di produzione venga completamente cancellato a favore di un set completo di minatori di bitcoin, vero?

Applica la sicurezza

Unaltra caratteristica interessante degli utenti di AWS IAM è la possibilità di applicare la password complessità (che per impostazione predefinita è piuttosto alta con una lunghezza compresa tra 8 e 128 chara cters, un minimo di 3 caratteri speciali e che non siano identici al nome dellaccount AWS o allindirizzo e-mail) e il tempo di scadenza della password per garantire che dopo un certo tempo gli utenti cambino la password.

di questo, puoi abilitare la MFA con vari dispositivi:

  • Un dispositivo MFA virtuale con unapp di autenticazione installata sul tuo dispositivo mobile o computer
  • Una chiave di sicurezza U2F come una YubiKey o qualsiasi altro dispositivo U2F conforme
  • Un altro dispositivo MFA hardware come il token Gemalto

In generale, esiste un approccio granulare in quanto è possibile disporre di mezzi specifici per ogni utente IAM .

Quando utilizzare

Se hai pochissimi utenti (tra 1-5) con autorizzazioni precise legate a ciascuna di esse, gli utenti IAM possono risparmiare un po di tempo sulla configurazione iniziale e sullaccesso alla console. Fai attenzione alle credenziali statiche perché sono problemi di sicurezza sostanziali, quindi gestiscili con estrema cura. Oppure utilizza il token get-session-token di AWS CLI per generare credenziali temporanee da quelle statiche.

Gruppi

Non unentità di per sé, ma i gruppi IAM sono lì per raggruppare gli utenti IAM insieme e concedere lo stesso insieme di autorizzazioni a un gruppo di utenti. Ciò attenua un po i bordi irregolari degli utenti IAM, ma nel complesso si applicano le stesse cose che abbiamo visto per gli utenti IAM.

Una cosa carina da tenere a mente è che un utente IAM può ancora avere policy personali mentre è associato con un gruppo, con il permesso risultante equivale allunione del gruppo e di quelli personali.

Questa dovrebbe essere più uneccezione rispetto al flusso di lavoro tipico. Con troppe autorizzazioni individuali, creiamo molte norme non gestibili e perdiamo la panoramica generale delle autorizzazioni nellaccount.

Quando utilizzarle

Se hai pochi utenti (tra 5 e 15), i gruppi IAM possono evitare alcuni dei problemi di gestione e configurazione di ogni utente IAM. Ma vale la stessa considerazione degli utenti IAM, quindi se possibile, evitali a meno che tu non stia lavorando solo su un singolo account.

Ruoli

Ed eccoci ai ruoli AWS. I ruoli IAM possono avere autorizzazioni (proprio come gli utenti) e accedere alla console (di nuovo come gli utenti …). Invece di essere associato in modo univoco a una persona, chiunque ne abbia bisogno può assumere un ruolo.

Quindi una persona indossa il berretto del ruolo che vuole assumere e

il logo del ruolo IAM ha acquisito molto più senso, giusto?

Credenziali temporanee

Unaltra differenza fondamentale rispetto agli utenti IAM è che i ruoli IAM non hanno credenziali statiche. Quando qualcuno assume i ruoli, viene generata e fornita una serie di credenziali temporanee . È possibile personalizzare la durata di tali credenziali e limitare ulteriormente laccesso se necessario.

Il tempo può essere impostato da 900 secondi (15 minuti) a 12 ore, ma a mio parere, limpostazione di unora- la lunga scadenza è il miglior compromesso tra sicurezza e prestazioni.

Monitoraggio di CloudTrail

Lo menzionerò perché alcune persone non usano i ruoli perché pensano di non poter controllare cosa i ruoli possono fare. La verità è che puoi e dovresti. Abilitando il monitoraggio di Cloudtrail, puoi vedere tutte le azioni eseguite allinterno del tuo account, così puoi sempre sapere cosa sta succedendo.

Cross Account

Questo sarà discusso più dettagliatamente in un altro blog post, poiché ci stiamo concentrando su account singoli, ma per ora, tieni presente che i ruoli IAM possono essere utilizzati per dare accesso ad altri ruoli IAM o utenti IAM.

Ed è incredibilmente utile.

Punto di ingresso richiesto

E ora per gli aspetti negativi. Sfortunatamente, non puoi concedere laccesso diretto alla console e credenziali temporanee a un ruolo IAM. Innanzitutto, è necessario aver impostato un utente o un ruolo federato (maggiori informazioni su questo in pochi paragrafi) per consentire laccesso a un ruolo IAM.

Quando utilizzare

Sempre. Lunico fatto che i ruoli IAM sono non legati a credenziali statiche li rende il modo migliore per accedere al tuo cloud. Combinali con la capacità di monitorare le azioni dei ruoli IAM e applicare la sicurezza anche con MFA. Lunico svantaggio è che è un po più di configurazione, ma è un prezzo basso da pagare secondo me.

Dallesterno di AWS

E ora, vediamo cosa possiamo fare quando abbiamo entrare nel campo delle identità aziendali. Mi riferisco allutilizzo di un provider di identità come fonte di identità e accedi con la nostra email e password aziendali.

Federazione

Ma cosa si intende per federazione? Da un lato, abbiamo il provider di identità. Questi sistemi contengono una directory di utenti e alcuni software in grado di comunicare tramite specifici protocolli di federazione. Tutti i dati dei nostri utenti risiedono come Identities .

Dallaltro lato, cè il tuo AWS Account come consumatore di identità . Mantiene un riferimento alle identità senza salvarle. Da questo lato, generalmente abbiamo livelli di autorizzazione molto più granulari (grazie, IAM!).

Quindi la federazione è la relazione di fiducia che rende il consumatore di identità in grado di fare riferimento alle identità nel provider di identità.

Federazione SAML

La definizione più comune di Security Assertion Markup Language (SAML ) è uno standard aperto per lo scambio di dati di autenticazione e autorizzazione tra le parti. Ciò significa che possiamo utilizzare le nostre identità per accedere ad AWS e persino ottenere credenziali temporanee assumendo ruoli. È un approccio generalistico che puoi applicare a quasi tutti i provider di identità.

La relazione di fiducia

Per impostare la federazione tra le due parti, dobbiamo creare e gestire un Provider di identità IAM . Ciò è necessario perché rappresenta il vero Identity Provider e detiene il segreto condiviso che consente alle due parti di comunicare. Inoltre, allinterno di ogni ruolo che vogliamo che i nostri utenti assumano, definiremo una trust policy per consentire entità correlate allo IAM Provider di identità che assume il ruolo:

Gestione personalizzata

Il fatto è che la gestione della federazione da soli può essere impegnativa e richiedere molto tempo allinizio. Ci sono alcuni concetti da capire bene e devi creare un mucchio di entità, relazioni e cose personalizzate per farlo accadere. Per avere unidea, puoi trovare un esempio di tutorial completo qui .

Quando utilizzarlo

In generale, questo è un approccio eccellente e testato in battaglia che funzionerà in quasi tutti i casi. Tuttavia, la gestione personalizzata delle identità può essere difficile e richiedere molto tempo per le persone inesperte.

I casi duso tipici sono se si desidera gestirla da soli per scopi di sicurezza o conformità. Non hai accesso alla tua organizzazione AWS o AWS SSO non supporta ancora il tuo provider di identità.

AWS SSO

Questo è il servizio SSO gestito e basato su cloud che consente connetti il ​​tuo provider di identità con il tuo account AWS.

Organizzazione AWS

Per configurare AWS SSO, dovrai configurare le organizzazioni AWS e, per ora, puoi pensare a gestire più account AWS. Per essere brevi, devi sapere che la configurazione di unorganizzazione AWS richiede autorizzazioni estese (vale a dire lutente root).

Archiviazione identità interna

Per impostazione predefinita, AWS SSO fornisce una directory per memorizzare le informazioni dellutente e le credenziali per fungere direttamente da provider di identità. È fantastico se non disponi già di un provider di identità o non vuoi darti la pena di configurarne uno.

Archiviazione identità esterna

Ma supponi che la tua organizzazione ne utilizzi già Directory utente, come Microsoft Active Directory. In tal caso, puoi collegarlo ad AWS SSO, eliminando la necessità di mantenere due directory distinte con provisioning automatico .

Attenzione, però, che questa funzionalità è supportata solo su un set limitato di provider di identità:

Autenticazione a più fattori

Con AWS SSO, puoi configurare un dispositivo MFA per i tuoi utenti allinterno del servizio. Al momento, supporta app di Authenticator come Google Authenticator e chiavi di sicurezza come Yubikey. La soluzione interna è entusiasmante, ma manca del supporto MFA se impostata su un provider di identità esterno.

Quando utilizzarlo

È lo standard suggerito da AWS e può essere il modo predefinito per procedere se non sei sicuro di come procedere. Tuttavia, ci sono almeno un paio di requisiti che devi soddisfare per ottenere il massimo da questa soluzione:

hai già configurato la tua organizzazione AWS, e hai accesso allaccount root. Desideri mantenere le tue identità allinterno di AWS SSO o utilizzare un provider di identità supportato dal provisioning automatico.

Note finali

Quindi, abbiamo gettato le basi per accedere a un singolo account AWS, e ora dovresti avere gli elementi per scegliere il metodo migliore per il tuo caso duso specifico. Lo useremo per coprire il terreno per la gestione di più account e le organizzazioni AWS nel prossimo post del blog.

Leapp

Come ultima nota, consiglio vivamente a tutti di utilizzare uno strumento che li aiuta a memorizzare tutti i dati necessari per connettersi al proprio account AWS. Io e il mio team stiamo sviluppando uno strumento open source che supporta tutti questi casi duso, quindi sentiti libero di dare unocchiata:

Noovolari / leapp

Leapp è il tuo compagno quotidiano per accedere al tuo cloud; progettato per funzionare con API, CLI e SDK di Cloud Provider. È …

github.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *