Wat zijn AWS IAM-gebruikers en hoe beheer je ze?

Inhoudsopgave:

Wat zijn AWS IAM-gebruikers en hoe beheer je ze?
Wat zijn AWS IAM-gebruikers en hoe beheer je ze?
Anonim
aws iam-logo
aws iam-logo

Misschien is de ergste beveiligingsfout die u kunt maken, het achterlaten van zeer vertrouwelijke geheime toegangssleutels op een webgerichte server. Dus als het tijd is om de AWS CLI op een externe EC2-instantie te installeren en te verifiëren, hoe configureert u deze dan?

U zou IAM-gebruikers moeten gebruiken

Het antwoord is absoluut niet het gebruik van je root-toegangssleutels - dit zijn de belangrijkste tokens in je account en ze kunnen elk multi-factor authenticatie-apparaat dat je hebt ingesteld omzeilen. (U kunt MFA-beveiligde API-toegang instellen, maar niet voor het root-account.)

AWS biedt een service om dit op te lossen. Met de "Identity and Access Management" (IAM)-console kunt u onderliggende gebruikers maken los van uw root-account. Dit kunnen servicegebruikers zijn met API-toegang of volledige gebruikersaccounts (met toegang tot de AWS Management Console) die u kunt gebruiken voor werknemersaccounts.

Elke IAM-gebruiker heeft beheerde toegang tot de AWS-bronnen binnen uw account. Toegang wordt beheerd met Beleid, dat een reeks machtigingen geeft die bepalen wat elke gebruiker kan doen. Dit diepgaande beleid kan zowat elke actie regelen die u kunt doen in de AWS Management Console.

Je kunt ook handmatig een machtigingsgrens instellen, die fungeert als een maximale machtiging waar een gebruiker niet overheen kan gaan, waarbij elk beleid wordt genegeerd dat hen meer kan verlenen. Het is een geavanceerde functie die wordt gebruikt om machtigingsbeheer te delegeren aan IAM-medewerkers en hen in staat stelt extra servicerollen te creëren zonder escalatie van bevoegdheden.

Hoe IAM-gebruikers in te stellen

Klik in de IAM Management Console op het tabblad 'Gebruikers' en selecteer 'Gebruiker toevoegen'.

IAM gebruiker aanmaken
IAM gebruiker aanmaken

Geef het een naam en selecteer vervolgens hoe u wilt dat deze gebruiker toegang krijgt tot AWS. Programmatische toegang geeft u een toegangssleutel-ID en geheime toegangssleutel, die wordt gebruikt voor authenticatie met de AWS API en CLI.

Management Console-toegang geeft de gebruiker toegang tot de webconsole, wat u inschakelt als u werknemerstoegang geeft. Als u dit instelt, geeft AWS standaard een automatisch gegenereerd wachtwoord en dwingt de werknemer dit te wijzigen wanneer hij zich aanmeldt.

Je kunt beide soorten toegang geven als je wilt.

iam-toegangstype
iam-toegangstype

Vervolgens configureert u de rechten. AWS biedt veel vooraf gemaakte beleidsregels, die u rechtstreeks aan de gebruiker kunt koppelen. U kunt ook een groep maken en de gebruiker aan die groep toevoegen, waardoor u gemakkelijker meerdere gebruikers kunt beheren.

Rechtenkiezer
Rechtenkiezer

We raden echt niet aan om de meeste van deze vooraf opgestelde beleidsregels te gebruiken. U wilt echt geen "Volledige toegang" geven aan een individuele service, en het andere alternatief is meestal "Alleen lezen", wat op zichzelf waarschijnlijk niet voldoende toegang is. Sommige van de meer verfijnde machtigingen zijn prima, maar je zou echt je eigen rechten moeten maken.

Je zult snel zien waarom "Volledige toegang" een slecht idee is. Stel dat u een server configureert die toegang moet krijgen tot S3 en objecten moet uploaden. Misschien wil je het "schrijf" -toegang geven, maar dit stelt die gebruiker ook in staat om hele buckets te verwijderen, wat helemaal niet ideaal is. Een betere oplossing is om de "PutObject"-toestemming te geven, waardoor PUT-verzoeken kunnen worden gedaan.

De PutObject-machtiging inschakelen, waarmee PUT-verzoeken kunnen worden gedaan
De PutObject-machtiging inschakelen, waarmee PUT-verzoeken kunnen worden gedaan

Deze machtigingen zijn behoorlijk intensief en variëren van service tot service, maar u kunt altijd op het vraagteken naast de machtigingsnaam klikken om een snelle definitie op te halen. Anders kunt u onze gids voor IAM-machtigingen lezen voor meer informatie.

Je kunt (en zou waarschijnlijk moeten) de toegang tot bepaalde bronnen beperken met hun Amazon Resource Name (ARN), waardoor accountbrede toegang wordt uitgeschakeld. Er zijn ook bepaalde voorwaarden die u aan machtigingen kunt koppelen, zoals datum en tijd, die AWS controleert voordat een actie wordt uitgevoerd.

Zodra u klaar bent met het toevoegen van machtigingen, kunt u de gebruiker maken (optioneel eerst tags toevoegen). U wordt naar een scherm gebracht waar u de toegangssleutels kunt downloaden of kopiëren, en als u toegang tot de beheerconsole toevoegt, verschijnt er een inloglink die u kunt verzenden naar de werknemer die het account heeft.

Vervang uw root-account door een IAM-gebruiker

AWS raadt dit eigenlijk ten zeerste aan voor organisatorische accounts. In plaats van uw root-account te gebruiken voor zaken als uw persoonlijke CLI, moet u een "Beheerder" IAM-gebruiker maken met toegang tot de beheerconsole en het toegangstoken ervan gebruiken om uw persoonlijke terminal te verifiëren.

Dit betekent niet dat u de inloggegevens voor deze IAM-gebruiker als minder veilig moet behandelen dan uw root-account - het zou nog steeds uw dag verpesten als uw beheerdersaccount wordt gecompromitteerd, dus u moet serviceaccounts blijven gebruiken voor externe toepassingen, en u moet nog steeds zeker multi-factor authenticatie inschakelen voor uw IAM-beheerdersaccount. Het gebruik van een IAM-gebruiker in plaats van het root-account is echter veiliger, omdat er bepaalde acties voor het hele account zijn die alleen het daadwerkelijke root-account kan uitvoeren.

Met deze configuratie is het enige waarvoor je je root-account gebruikt de superveilige dingen die rechtstreeks aan je root-account zijn gekoppeld, zoals accountonderhoud en facturering. Voor al het andere zijn beheerdersmachtigingen voldoende en kunt u uw root-toegangssleutels daadwerkelijk verwijderen, zodat u alleen toegang hebt tot het root-account door handmatig in te loggen (en MFA door te geven).

Populair onderwerp