Slik får du tilgang til AWS-kontoen din

(Nicolo Marchesi) (3. des 2020)

Hvordan få tilgang til AWS-kontoen din

Hei der. Du opprettet akkurat din første AWS-konto, og du kan ikke vente med å dykke ned i alle de spennende tjenestene og teknologiene som AWS har å tilby deg for å begynne å bygge den neste store tingen. Men vent et øyeblikk … skal du logge på med root-kontoinformasjonen din? Eller er det bedre å generere en ny bruker? Eller kanskje bruke en rolle?

Sakte et øyeblikk, og på slutten av blogginnlegget lover jeg at du vil kunne velge den beste måten for å få sikker tilgang til AWS-kontoen din .

Vær imidlertid oppmerksom på at vi vil vurdere tilgang til en enkelt aws-konto, ettersom vi vil dekke strategier for flere kontoer neste gang . Vi må gå før vi kan løpe, ikke sant?

Kontoer og ressurser

Hver utrolige reise med AWS starter med kontoer og ressurser, og en konto er akkurat som en tom boks.

Ting du kan legge inn i kontoen din, kan være alt relatert til AWS tjenester, for eksempel nettverk, virtuelle maskiner, containere og så videre.

Men den viktigste delen er at som standard deler ingen konto noen ressurs slik at ingenting kan gå inn eller ut mellom to forskjellige AWS-kontoer. Og dette er flott å dele arbeidsbelastningen din og være sikker på at bare de riktige personene får tilgang til alt.

IAM – Identitet & Access Management

Innen hver konto er IAM der for å beskytte ressursene i kontoen din ved å administrere hvilke enheter som kan utføre noen handlinger på disse ressursene:

  • HVEM – hvilke identiteter
  • HVA – kan gjøre noen handlinger
  • WHERE – på noen ressurser
  • HVORDAN – og oppfylte noen betingelser

Jeg definerer disse som 4W , og foreløpig trenger vi bare å fokusere på de første 3.

I begynnelsen – rotbrukeren

Når du logget på etter at du opprettet AWS-kontoen, brukte du den kontoen rotbruker .

Det er forskjellig fra de andre du kan opprette fordi:

  • Opprettet på kontoregistreringen
  • Du kan logge på med e-postadressen og passordet du brukte til å opprette kontoen
  • Du får tilgang til faktureringsinformasjonen
  • Den har ubegrenset tilgang til alle ressursene i kontoen din

Denne brukeren er veldig viktig, og du bør beskytte den på den beste måten du kan. Det er en superadministrator på steroider siden den kan se faktureringsinformasjonen sammen med å kunne gjøre alt med alle ressursene dine.

Så den første tingen å gjøre bør være:

  • Aktiver multifaktorautentisering (MFA) og lagre QR-koden på et sikkert sted
  • Slett alle tilgangsnøkler relatert til denne brukeren for å deaktivere programmatisk tilgang (du trenger ikke dette uansett!)

Og den neste tingen bør være å bestemme hvordan du får tilgang til denne kontoen fra nå av.

Fra innsiden av AWS

La oss fokusere for nå på hva AWS gir oss uten å stole på tredjeparter. Dette er spesielt nyttig hvis vi fokuserer på denne enkeltkontoen fordi vi trenger å mestre de tre IAM-byggesteinene: bruker, grupper og roller.

Brukere

Husker du rotbrukeren? IAM-brukere er av samme type enhet, men forskjellig fra rotbrukeren. De har ikke standard faktureringstillatelser og administratortilgang (med mindre du gir dem … som du ikke burde).

Med en bruker kan vi opprette en enhet som kan logge på AWS-nettkonsollen. eller med programmatisk tilgang gjennom et sett med legitimasjon (en tilgangsnøkkel og en hemmelig tilgangsnøkkel) som er løst og ikke vil endres over tid. Sammen med SSH / HTTPS-nøkler for AWS CodeCommit, eller legitimasjon for Amazon-nøkkelområder (for Apache Cassandra)

  • Påloggingsinformasjon for nettkonsollen
  • Tilgangs- og hemmelig nøkkelinformasjon for programmatisk tilgang for APIer, CLI og SDK
  • SSH / HTTPS-nøkler for AWS CodeCommit
  • Legitimasjonsinformasjon for Amazon nøkkelområder (for Apache Cassandra)

Granulær tilgang

Det er fullt mulig med en IAM-bruker å aktivere en eller flere tilgangstaster avhengig av hvordan du vil at brukeren skal oppføre seg.For eksempel:

  • En dataanalytiker som bare trenger å sjekke analysene på nettkonsollen, men uten behov for programmatisk tilgang
  • En serverfri DevOps som trenger å utføre handlinger på konsoll og bruk CLI for å skaffe noen ressurser trenger begge disse tilgangene
  • En utvikler som arbeider på et enkelt lager og ikke trenger å samhandle med AWS-ressurser, vil ha SSH / HTTPS-nøkler for AWS CodeCommit.

Vær oppmerksom på at deling IAM-brukerlegitimasjon er et stort nei-nei, da det er det første trinnet for å miste legitimasjon og styring og legge deg åpen for sikkerhetstrusler.

Du trenger ikke vil du ikke at produksjonskontoen din skal bli fullstendig slettet til fordel for et komplett sett med bitcoin-gruvearbeidere, gjør du? kompleksitet (som standard er ganske høy med en lengde mellom 8–128 chara cters, minimum 3 spesialtegn, og for ikke å være identisk med AWS-kontonavnet eller e-postadressen din) og passordets utløpstid for å sikre at brukerne etter en viss tid vil endre passordet.

På toppen av det kan du aktivere MFA med forskjellige enheter:

  • En virtuell MFA-enhet med en godkjenningsapp installert på mobilenheten eller datamaskinen
  • En U2F-sikkerhetsnøkkel som en YubiKey eller en hvilken som helst annen kompatibel U2F-enhet
  • En annen maskinvare MFA-enhet som Gemalto-tokenet

Generelt er det en detaljert tilnærming da du kan ha spesifikke midler for hver IAM-bruker .

Når skal du bruke

Hvis du har svært få brukere 1–5) med presise tillatelser knyttet til hver enkelt, kan IAM-brukere spare litt tid på den opprinnelige konfigurasjonen og konsolladgangen. Vær oppmerksom på statisk legitimasjon fordi de er vesentlige sikkerhetsproblemer, så håndter det med ekstrem forsiktighet. Eller bruk AWS CLI get-session-token for å generere midlertidige legitimasjonsopplysninger fra statiske.

Grupper

Ikke en enhet i seg selv, men IAM-grupper er der for å pakke IAM-brukere sammen og gi samme sett tillatelser til en gruppe brukere. Dette glatter litt de tøffe kantene til IAM-brukere, men generelt gjelder de samme tingene vi har sett for IAM-brukere.

En fin ting å huske på er at en IAM-bruker fortsatt kan ha personlige retningslinjer mens den er tilknyttet med en gruppe, med den resulterende tillatelsen tilsvarer sammenslåing av gruppen og personlige.

Dette burde være mer unntaket enn den typiske arbeidsflyten. Med for mange individuelle tillatelser oppretter vi mange uvedlikeholdelige policyer og mister den samlede oversikten over tillatelsene i kontoen.

Når skal du bruke

Hvis du har få brukere (mellom 5–15), IAM-grupper kan spare noen problemer med å administrere og konfigurere hver IAM-bruker. Men det samme hensynet som IAM-brukere gjelder, så hvis mulig, unngå dem med mindre du bare jobber med en enkelt konto.

Roller

Og her er vi for AWS-roller. IAM-roller kan ha tillatelser (akkurat som brukere) og logge på konsollen (igjen som brukere …). I stedet for å være unikt tilknyttet en person, kan alle som trenger det påta seg en rolle.

Så en person bærer hetten for rollen som han vil påta seg, og

IAM-rollelogoen nettopp fått mye mer mening, ikke sant?

Midlertidige referanser

En annen viktig forskjell fra IAM-brukere er at IAM-roller ikke har statisk legitimasjon. Når noen påtar seg rollene, genereres og gis et sett med midlertidige referanser . Det er mulig å tilpasse hvor lenge disse legitimasjonene vil vare og ytterligere begrense tilgangen om nødvendig.

Tid kan stilles inn fra 900 sekunder (15 minutter) opp til 12 timer, men etter min mening kan du angi en time- lang utløp er den beste kompromissen mellom sikkerhet og ytelse.

CloudTrail-overvåking

Jeg vil nevne dette fordi noen ikke bruker roller fordi de tror at de ikke kan revidere hva roller kan gjøre. Sannheten er at du kan, og du burde. Ved å aktivere Cloudtrail-overvåking kan du se alle handlinger utført i kontoen din, slik at du alltid kan vite hva som skjer.

Tverrkonto

Dette vil bli diskutert mer detaljert i en annen blogg post, ettersom vi fokuserer på enkeltkontoer, men for øyeblikket, vær oppmerksom på at IAM-roller kan brukes til å gi tilgang til andre IAM-roller eller IAM-brukere.

Og det er utrolig nyttig.

Inngangspunkt kreves

Og nå for ulempene. Dessverre kan du ikke gi direkte tilgang til konsollen og midlertidig legitimasjon til en IAM-rolle. Først må du ha satt opp en bruker eller en forent rolle (mer om dette i noen få avsnitt) for å gi tilgang til en IAM-rolle.

Når skal du bruke

Alltid. Det eneste faktum at IAM-roller er ikke bundet med statiske legitimasjoner gjør dem til den beste måten å få tilgang til skyen din. Kombiner dem med muligheten til å overvåke IAM-rollehandlinger og håndheve sikkerhet selv med MFA. Den eneste ulempen er at den er litt mer konfigurert, men det er en lav pris å betale etter min mening.

Fra utenfor AWS

Og nå, la oss se hva vi kan gjøre når vi gå inn i feltet bedriftsidentiteter. Jeg refererer til å bruke en identitetsleverandør som en identitetskilde og logge på med bedriftens e-post og passord.

Federation

Men hva mener vi med føderasjon? På den ene siden har vi identitetsleverandøren. Disse systemene inneholder en katalog over brukere og noe programvare som kan kommunisere gjennom spesifikke føderasjonsprotokoller. Alle brukerdataene våre ligger som Identiteter .

På den andre siden er det AWS Konto som en Identitetsforbruker . Den opprettholder en referanse til identitetene uten å lagre dem. På denne siden har vi generelt mye mer detaljerte autorisasjonsnivåer (takk, IAM!).

føderasjonen er tillitsforholdet som gjør identitetsforbrukeren i stand til å referere til identitetene i identitetsleverandøren.

SAML Federation

Den vanligste definisjonen for Security Assertion Markup Language (SAML ) er en åpen standard for utveksling av autentiserings- og autorisasjonsdata mellom parter. Dette betyr at vi kan bruke identitetene våre til å logge på AWS og til og med få midlertidig legitimasjon ved å påta oss roller. Det er en generalistisk tilnærming du kan bruke på nesten alle identitetsleverandører.

Tillitsforholdet

For å sette opp føderasjonen mellom de to partiene, må vi opprette og administrere en IAM Identity Provider . Dette er nødvendig fordi det representerer den virkelige identitetsleverandøren og har den delte hemmeligheten som lar de to partene kommunisere. Videre vil vi definere en tillitspolicy i hver rolle som vi vil at brukerne skal innta. Identitetsleverandør til å påta seg rollen:

Tilpasset ledelse

Saken er at det å administrere føderasjonen selv kan være utfordrende og tidkrevende i begynnelsen. Det er noen konsepter å forstå godt, og du må opprette en rekke enheter, relasjoner og tilpassede ting for å få dette til. For å få en ide kan du finne et komplett veiledningseksempel her .

Når skal du bruke

Generelt, Dette er en utmerket og kamptestet tilnærming som vil fungere i nesten alle tilfeller. Likevel kan den tilpassede administrasjonen av identiteter være vanskelig og tidkrevende for uerfarne mennesker.

Typiske brukssaker er hvis du vil administrere dette selv av sikkerhets- eller overholdelsesøyemed. Du har ikke tilgang til AWS-organisasjonen din, eller AWS SSO støtter ennå ikke identitetsleverandøren din.

AWS SSO

Dette er den skybaserte og administrerte SSO-tjenesten som lar du kobler identitetsleverandøren din til AWS-kontoen din.

AWS-organisasjon

For å konfigurere AWS SSO må du konfigurere AWS-organisasjoner, og foreløpig kan du tenke på det til administrere flere AWS-kontoer. For å holde ting kort, må du vite at konfigurering av en AWS-organisasjon trenger omfattende tillatelser (nemlig rotbrukeren).

Intern identitetslagring

Som standard gir AWS SSO en katalog for å lagre brukerinformasjon og legitimasjon for å fungere som identitetsleverandør direkte. Det er flott hvis du ikke allerede har en identitetsleverandør eller ikke vil bry deg med å konfigurere en.

Ekstern identitetslagring

Men antar at organisasjonen din allerede bruker noe Brukerkatalog, som Microsoft Active Directory. I så fall kan du koble den til AWS SSO, og eliminere behovet for å opprettholde to forskjellige kataloger med automatisk klargjøring .

Vær imidlertid oppmerksom på at denne funksjonen bare støttes av et begrenset sett med identitetsleverandører:

Flerfaktorautentisering

Med AWS SSO, du kan konfigurere en MFA-enhet for brukerne i tjenesten. Akkurat nå støtter den Authenticator-apper som Google Authenticator og sikkerhetsnøkler som Yubikey. Den interne løsningen er spennende, men den mangler MFA-støtte hvis den er satt opp på en ekstern Identity Provider-side.

Når skal du bruke

Det er standarden som AWS foreslår, og det kan være standardveien å gå hvis du er usikker på hvordan du skal fortsette. Likevel er det minst et par krav du trenger for å krysse av for å få mest mulig ut av denne løsningen:

du har allerede konfigurert AWS-organisasjonen din, og har du tilgang til rotkontoen. Du vil beholde identitetene dine innenfor AWS SSO eller bruke en identitetsleverandør som støttes av automatisk klargjøring.

Avsluttende notater

Så vi har lagt grunnlaget for å få tilgang til en enkelt AWS-konto, og nå bør du ha elementene til å velge den beste metoden for din spesifikke brukstilfelle. Vi vil bruke dette til å dekke bakken til flerkontostyring og AWS-organisasjoner i neste blogginnlegg.

Leapp

Som en siste merknad anbefaler jeg alle å bruke noe verktøy som hjelper dem med å lagre alle dataene som trengs for å koble til AWS-kontoen sin. Teamet mitt og jeg utvikler et åpen kildekodeverktøy som støtter alle disse brukstilfellene, så sjekk gjerne ut:

Noovolari / leapp

Leapp er din daglige følgesvenn for å få tilgang til skyen din; designet for å fungere med API-er, CLI og SDK-er for Cloud Providers. Det er …

github.com

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *