Hoe toegang te krijgen tot uw AWS-account

(Nicolo Marchesi) (3 dec.2020)

Hoe toegang te krijgen tot uw AWS-account

Hallo. U heeft zojuist uw eerste AWS-account gemaakt en u kunt niet wachten om u te verdiepen in alle opwindende services en technologieën die AWS u te bieden heeft om te beginnen met het bouwen van het volgende grote ding. Maar wacht even … ga je inloggen met je root-inloggegevens? Of is het beter om een ​​nieuwe gebruiker te genereren? Of misschien een rol gebruiken?

Vertraag een minuut, en aan het einde van de blogpost beloof ik dat je de beste manier kunt kiezen om veilig toegang te krijgen tot uw AWS-account .

Pas echter op, we zullen de toegang tot één aws-account overwegen, aangezien we de volgende keer strategieën voor meerdere accounts behandelen . We moeten lopen voordat we kunnen rennen, toch?

Accounts en bronnen

Elke ongelooflijke reis met AWS begint met accounts en bronnen, en een account is net als een lege doos.

De dingen die u in uw account kunt plaatsen, kunnen alles zijn dat te maken heeft met de services van AWS, bijvoorbeeld netwerken, virtuele machines, containers, enzovoort.

Maar het meest cruciale is dat Standaard deelt geen enkele account een bron, zodat er niets in of uit kan gaan tussen twee verschillende AWS-accounts. En dit is geweldig om uw workloads te verdelen en ervoor te zorgen dat alleen de juiste mensen toegang hebben tot alles.

IAM – Identity & Toegangsbeheer

Binnen elk account is IAM er om de bronnen in uw account te beschermen door te beheren welke entiteiten bepaalde acties op die bronnen kunnen uitvoeren:

  • WIE – welke identiteiten
  • WAT – kan sommige acties uitvoeren
  • WAAR – op sommige bronnen
  • HOE – en voldeed aan enkele voorwaarden

Ik definieer deze als de 4W , en voorlopig hoeven we ons alleen te concentreren op de eerste 3.

In het begin – de rootgebruiker

Wanneer u zich aanmeldde nadat u het AWS-account had aangemaakt, gebruikte u dat account rootgebruiker .

Dat is anders dan de andere die u kunt maken omdat:

  • Gemaakt op de accountregistratie
  • U kan inloggen met het e-mailadres en wachtwoord dat je hebt gebruikt om het account aan te maken.
  • Je hebt toegang tot de factuurgegevens
  • Het heeft onbeperkte toegang tot alle bronnen in uw account

Deze gebruiker is superbelangrijk en je moet hem op de best mogelijke manier beschermen. Het is een superbeheerder op het gebied van steroïden, omdat het de factureringsinformatie kan zien en alles kan doen met al uw middelen.

Het eerste wat u moet doen, zou dus moeten zijn:

  • Schakel multi-factor authentication (MFA) in en bewaar de QR-code op een veilige plaats
  • Verwijder alle toegangssleutels die betrekking hebben op deze gebruiker om programmatische toegang uit te schakelen (je zou dit toch niet nodig hebben!)

En het volgende zou moeten zijn om te beslissen hoe je vanaf nu toegang krijgt tot dit account.

Van binnenuit AWS

Laten we ons nu concentreren op wat AWS ons geeft zonder afhankelijk te zijn van derden. Dit is vooral handig als we ons concentreren op dit enkele account, omdat we de drie IAM-bouwstenen onder de knie moeten krijgen: gebruiker, groepen en rollen.

Gebruikers

Herinner je je de root-gebruiker nog? IAM-gebruikers zijn hetzelfde type entiteit, maar anders dan de rootgebruiker. Ze hebben geen standaardmachtigingen voor facturering en beheerderstoegang (tenzij u ze geeft… wat u niet zou moeten doen).

Met een gebruiker kunnen we een entiteit maken die kan inloggen op de AWS-webconsole of met programmatische toegang via een set inloggegevens (een toegangssleutel en een geheime toegangssleutel) die vast zijn en niet in de loop van de tijd zullen veranderen. Samen met SSH / HTTPS-sleutels voor AWS CodeCommit, of Credentials voor Amazon Keyspaces (voor Apache Cassandra)

  • Inloggegevens voor de webconsole
  • Toegang en geheime sleutelreferenties voor programmatische toegang voor APIs, CLI en SDK
  • SSH / HTTPS-sleutels voor AWS CodeCommit
  • Inloggegevens voor Amazon Keyspaces (voor Apache Cassandra)

Granulaire toegang

Het is heel goed mogelijk met een IAM-gebruiker om een ​​of meer toegangssleutels in te schakelen, afhankelijk van hoe u wilt dat die gebruiker zich gedraagt.Bijvoorbeeld:

  • Een data-analist die alleen de analyses op de webconsole hoeft te controleren, maar zonder programmatische toegang nodig heeft.
  • Een serverloze DevOps die acties moet uitvoeren op de console en gebruik de CLI om een ​​aantal bronnen te bieden, heeft beide toegang nodig
  • Een ontwikkelaar die aan een enkele repository werkt en geen interactie met AWS-bronnen nodig heeft, heeft SSH / HTTPS-sleutels voor AWS CodeCommit.

Houd er rekening mee dat delen IAM-gebruikersgegevens is een groot nee-nee, aangezien het de eerste stap is om inloggegevens en beheer te verliezen en jezelf bloot te stellen aan beveiligingsrisicos.

Dat doe je niet. Wilt u toch dat uw productieaccount volledig wordt gewist ten gunste van een volledige set bitcoin-mijnwerkers?

Beveiliging afdwingen

Een andere coole functie van AWS IAM-gebruikers is het kunnen afdwingen van een wachtwoord complexiteit (die standaard vrij hoog is met een lengte tussen 8-128 chara cters, minimaal 3 speciale tekens, en niet identiek aan uw AWS-accountnaam of e-mailadres) en de vervaltijd van het wachtwoord om ervoor te zorgen dat uw gebruikers na een bepaalde tijd het wachtwoord wijzigen.

Bovenaan daarvan kun je MFA inschakelen met verschillende apparaten:

  • Een virtueel MFA-apparaat met een authenticator-app geïnstalleerd op je mobiele apparaat of computer
  • Een U2F-beveiligingssleutel zoals een YubiKey of een ander compatibel U2F-apparaat
  • Een ander hardware-MFA-apparaat zoals het Gemalto-token

Over het algemeen is er een gedetailleerde benadering, aangezien u voor elke IAM-gebruiker specifieke middelen kunt hebben .

Wanneer te gebruiken

Als u zeer weinig gebruikers (tussen 1–5) met precieze permissies die aan elk zijn gekoppeld, kunnen IAM-gebruikers wat tijd besparen op de initiële configuratie en consoletoegang. Pas op voor statische inloggegevens omdat dit substantiële beveiligingsproblemen zijn, dus ga er uiterst voorzichtig mee om. Of gebruik het AWS CLI get-session-token om tijdelijke inloggegevens te genereren uit statische.

Groepen

Geen entiteit op zich, maar IAM-groepen zijn er om IAM-gebruikers te bundelen en geef dezelfde set rechten aan een groep gebruikers. Dit verzacht een beetje de ruwe kantjes van IAM-gebruikers, maar over het algemeen zijn dezelfde dingen die we hebben gezien voor IAM-gebruikers van toepassing.

Een leuk ding om in gedachten te houden is dat een IAM-gebruiker nog steeds persoonlijk beleid kan hebben terwijl hij is gekoppeld met een groep, met de resulterende toestemming gelijk aan het samenvoegen van de groep en persoonlijke.

Dit zou meer de uitzondering moeten zijn dan de typische workflow. Met te veel individuele rechten, creëren we veel ononderhoudbare beleidsregels en verliezen we het algemene overzicht van de rechten in het account.

Wanneer te gebruiken

Als je weinig gebruikers (tussen 5–15), kan IAM Groups het gedoe van het beheren en configureren van elke IAM-gebruiker besparen. Maar dezelfde overweging als IAM-gebruikers is van toepassing, dus vermijd ze indien mogelijk tenzij u slechts aan één account werkt.

Rollen

En hier zijn we voor de AWS-rollen. IAM-rollen kunnen machtigingen hebben (net als gebruikers) en inloggen op de console (opnieuw zoals gebruikers…). In plaats van uniek geassocieerd te zijn met één persoon, kan iedereen die het nodig heeft een rol aannemen.

Dus een persoon draagt ​​de hoofdletter van de rol die hij wil spelen, en

Het IAM-rollogo heeft net veel meer inzicht gekregen, toch?

Tijdelijke inloggegevens

Een ander belangrijk verschil met IAM-gebruikers is dat IAM-rollen geen statische inloggegevens hebben. Wanneer iemand de rollen op zich neemt, wordt een set tijdelijke referenties gegenereerd en gegeven. Het is mogelijk om aan te passen hoelang deze inloggegevens geldig blijven en indien nodig de toegang verder te beperken.

De tijd kan worden ingesteld van 900 seconden (15 minuten) tot 12 uur, maar naar mijn mening kan ik een uur instellen. lange vervaldatum is de beste afweging tussen beveiliging en prestaties.

CloudTrail monitoring

Ik zal dit vermelden omdat sommige mensen geen rollen gebruiken omdat ze denken dat ze niet kunnen controleren wat rollen kunnen doen. De waarheid is dat je het kunt, en dat zou je moeten doen. Door Cloudtrail-monitoring in te schakelen, kunt u alle acties zien die binnen uw account zijn uitgevoerd, zodat u altijd weet wat er aan de hand is.

Cross-account

Dit wordt in een andere blog in meer detail besproken post, aangezien we ons concentreren op enkele accounts, maar houd er voorlopig rekening mee dat IAM-rollen kunnen worden gebruikt om toegang te geven aan andere IAM-rollen of IAM-gebruikers.

En dat is ongelooflijk handig.

Entry-point vereist

En nu voor de minpunten. Helaas kunt u geen directe toegang tot de console en tijdelijke inloggegevens geven aan een IAM-rol. Ten eerste moet u een gebruiker of een federatieve rol hebben ingesteld (meer hierover in een paar paragrafen) om toegang te geven tot een IAM-rol.

Wanneer gebruiken

Altijd. Het enige feit dat IAM-rollen niet gebonden aan statische inloggegevens, maakt ze de beste manier om toegang te krijgen tot uw cloud. Combineer ze met de mogelijkheid om IAM-rolacties te bewaken en beveiliging af te dwingen, zelfs met MFA. Het enige nadeel is dat het een beetje meer configuratie heeft, maar het is naar mijn mening een lage prijs.

Van buiten AWS

En laten we nu eens kijken wat we kunnen doen als we ga op het gebied van corporate identities. Ik verwijs naar het gebruik van een identiteitsprovider als een identiteitsbron en log in met ons zakelijke e-mailadres en wachtwoord.

Federatie

Maar wat bedoelen we met federatie? Aan de ene kant hebben we de identiteitsprovider. Deze systemen bevatten een directory met gebruikers en sommige software die kunnen communiceren via specifieke federatieprotocollen. Alle gegevens van onze gebruikers bevinden zich als Identiteiten .

Aan de andere kant is er uw AWS Account als Identity Consumer . Het behoudt een verwijzing naar de identiteiten zonder ze op te slaan. Aan deze kant hebben we over het algemeen veel gedetailleerdere autorisatieniveaus (bedankt, IAM!).

Dus de federatie is de vertrouwensrelatie die de identiteitsconsument in staat stelt om te verwijzen naar de identiteiten in de identiteitsprovider.

SAML-federatie

De meest gebruikelijke definitie voor Security Assertion Markup Language (SAML ) is een open standaard voor het uitwisselen van authenticatie- en autorisatiegegevens tussen partijen. Dit betekent dat we onze identiteiten kunnen gebruiken om in te loggen op AWS en zelfs tijdelijke inloggegevens kunnen krijgen door rollen aan te nemen. Het is een algemene benadering die u op bijna alle identiteitsproviders kunt toepassen.

De vertrouwensrelatie

Om de federatie tussen de twee partijen op te zetten, moeten we een IAM-identiteitsprovider . Dit is nodig omdat het de echte identiteitsprovider vertegenwoordigt en het gedeelde geheim bevat waarmee de twee partijen kunnen communiceren. Bovendien zullen we binnen elke rol die we onze gebruikers willen laten aannemen, een vertrouwensbeleid definiëren om entiteiten toe te staan ​​die verband houden met de IAM Identiteitsprovider die de rol op zich neemt:

Aangepast beheer

Het punt is dat het zelf beheren van de federatie in het begin een uitdaging en tijdrovend kan zijn. Er zijn enkele concepten die u goed moet begrijpen, en u moet een aantal entiteiten, relaties en aangepaste dingen maken om dit mogelijk te maken. Om een ​​idee te krijgen, kun je hier een volledig instructievoorbeeld vinden.

Wanneer te gebruiken

In het algemeen, dit is een uitstekende en beproefde aanpak die in bijna alle gevallen zal werken. Toch kan het aangepaste beheer van identiteiten moeilijk en tijdrovend zijn voor onervaren mensen.

Typische use-cases zijn als u dit zelf wilt beheren voor beveiligings- of nalevingsdoeleinden. U hebt geen toegang tot uw AWS-organisatie, of AWS SSO ondersteunt uw identiteitsprovider nog niet.

AWS SSO

Dit is de cloudgebaseerde en beheerde SSO-service waarmee u u verbindt uw identiteitsprovider met uw AWS-account.

AWS-organisatie

Om AWS SSO in te stellen, moet u AWS-organisaties configureren, en voor nu kunt u eraan denken om meerdere AWS-accounts beheren. Om het kort te houden, moet u weten dat het opzetten van een AWS-organisatie uitgebreide rechten nodig heeft (namelijk de rootgebruiker).

Interne identiteitsopslag

Standaard biedt AWS SSO een directory om uw gebruikersinformatie en inloggegevens op te slaan om rechtstreeks als identiteitsprovider te dienen. Het is geweldig als u nog geen identiteitsprovider heeft of niet de moeite wilt nemen om er een in te stellen.

Externe identiteitsopslag

Maar stel dat uw organisatie al een aantal Gebruikerslijst, zoals Microsoft Active Directory. In dat geval kunt u het verbinden met AWS SSO, waardoor het niet meer nodig is om twee verschillende mappen te onderhouden met automatische provisioning .

Houd er echter rekening mee dat deze functie alleen wordt ondersteund op een beperkte set identiteitsproviders:

Multi-factor authenticatie

Met AWS SSO, u kunt een MFA-apparaat configureren voor uw gebruikers binnen de service. Op dit moment ondersteunt het Authenticator-apps zoals Google Authenticator en beveiligingssleutels zoals de Yubikey. De interne oplossing is opwindend, maar het mist MFA-ondersteuning als deze is ingesteld op een externe identiteitsprovider.

Wanneer te gebruiken

Dit is de standaard die door AWS wordt voorgesteld en het kan de standaardmanier zijn als u niet zeker weet hoe u verder moet. Toch zijn er in ieder geval een aantal vereisten die u moet aanvinken om het meeste uit deze oplossing te halen:

u heeft uw AWS-organisatie al opgezet, en heb je toegang tot het root-account. U wilt uw identiteiten binnen AWS SSO houden of een identiteitsprovider gebruiken die wordt ondersteund door automatische voorziening.

Laatste opmerkingen

We hebben dus de basis gelegd voor toegang tot één AWS-account, en nu zou u de elementen moeten hebben om de beste methode voor uw specifieke gebruikssituatie te kiezen. We zullen dit gebruiken om de grond te leggen voor multi-accountbeheer en AWS-organisaties in de volgende blogpost.

Leapp

Als laatste opmerking raad ik iedereen ten zeerste aan om een ​​tool te gebruiken die helpt hen alle gegevens op te slaan die nodig zijn om verbinding te maken met hun AWS-account. Mijn team en ik zijn een open-source tool aan het ontwikkelen die al deze use-cases ondersteunt, dus kijk gerust eens naar:

Noovolari / leapp

Leapp is uw dagelijkse metgezel voor toegang tot uw cloud; ontworpen om te werken met APIs, CLIs en SDKs van Cloud Providers. Het is …

github.com

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *