Behulpzame Gids voor IAM in AWS Via Voorbeelden

De IAM in AWS kan een uitdaging zijn om te gebruiken en te begrijpen, vooral voor nieuwe gebruikers. Maak je echter geen zorgen! Als je moeite hebt om te begrijpen hoe IAM werkt bij het beheren van gebruikersmachtigingen in AWS, ben je hier aan het juiste adres om te begrijpen wat er mogelijk is met IAM.

In deze tutorial leer je de basisconcepten van IAM door je door een reeks voorbeelden te leiden die op elkaar voortbouwen.

Klaar? Haal diep adem en duik erin!

Vereisten

Deze tutorial zal een hands-on demonstratie zijn. Als je wilt meedoen, zorg er dan voor dat je een pc en een AWS-account hebt. Als je geen AWS-account hebt, is een gratis laag account beschikbaar.

IAM in AWS Gebruikers Aanmaken

Voordat je je verdiept in hoe IAM werkt, begin je deze tutorial door gebruikers aan te maken. Gebruikers kunnen voor allerlei doeleinden worden gebruikt. Maar voor deze tutorial maak je gebruikers aan die geen machtigingen hebben, niet tot groepen behoren en nergens toegang toe hebben.

1. Log in op AWS Console. Deze demo gebruikt een gebruikersnaam genaamd cloud_user, maar jouw gebruikersnaam zal verschillend zijn.

Logging in to the AWS console

2. In de AWS-console, typ IAM in het zoekvak, klik vervolgens op de IAM-service die verschijnt, zoals hieronder wordt weergegeven. Uw browser zal worden doorgestuurd naar het IAM-dashboard.

Searching for IAM service

IAM is een wereldwijde service, wat betekent dat gebruikers en hun rechten van toepassing zijn op uw volledige AWS-account/regio. Als meerdere mensen één AWS-account delen (wat zeer gebruikelijk is, bijvoorbeeld in het geval van een dev-team voor het hele bedrijf), moet u zorgen voor een juiste rotatie van IAM-medewerkers.

Bovendien kunt u een EC-instantie maken binnen de us-east regio. Instanties zijn regionaal. De AWS Identity and Access Management-regelingen zijn echter niet regionaal. De rechten die aan een gebruiker zijn toegewezen, zijn van toepassing ongeacht de regio waarmee de EC-instantie waarmee de gebruikers verbinding maken.

Previewing the global option

4. Klik op het IAM-dashboard op Gebruikers aan de linkerkant, klik vervolgens op Gebruikers toevoegen rechtsboven op de pagina om het toevoegen van gebruikers te starten.

Adding a new user

Configureer nu de gebruikersgegevens met het volgende:

  • Geef een gebruikersnaam op in het veld Gebruikersnaam zoals hieronder weergegeven. Voor dit voorbeeld is de gebruikersnaam ingesteld op gebruiker-1.
  • Schakel de optie Wachtwoord – toegang tot AWS Management Console in om gebruikers in staat te stellen zich aan te melden bij de AWS Management Console.
  • Selecteer de optie Aangepast wachtwoord voor het Consolewachtwoord, en geef een veilig wachtwoord op in het tekstveld.
  • Haal het vinkje weg bij de optie Wachtwoordreset vereisen zodat de gebruiker niet wordt gevraagd om een nieuw wachtwoord aan te maken bij de volgende aanmelding, klik vervolgens op Volgende: Rechten.
Setting the username and password

5. Overslaan van het instellen van toestemming en klik op Volgende: Tags aangezien je een gebruiker aanmaakt die geen toestemmingen heeft.

Skipping setting permissions

6. Voeg ook geen tags toe en klik op Volgende: Review.

Skipping settings tags

7. Controleer de gebruikersgegevens en klik op Gebruiker aanmaken om het aanmaken van de gebruiker te voltooien.

Creating a new user

Na het aanmaken van de gebruiker, krijg je een Succes scherm te zien zoals hieronder.

Previewing the Success screen

8. Ga nu terug naar de pagina Gebruikers in je IAM-dashboard, en klik op de nieuw aangemaakte gebruiker (gebruiker-1) om de informatie van de gebruiker te bekijken. Het openen van gebruiker-1

Opening your user-1

Onder de Toestemmingen– en Groepen-tabbladen hieronder, kun je zien dat gebruiker-1 geen enkele toestemming heeft en geen lid is van een groep.

Previewing the new user’s (user-1) permissions
Previewing the new user’s (user-1) group

In het tabblad Beveiligingsreferenties zie je verschillende toegangssleutels die gebruiker-1 kan hebben. Je kunt hier een SSH openbare sleutel uploaden, wat handig is voor je AWS EC2-instanties.

Previewing the user-1 security credentials

Het tabblad Toegang Adviseur toont je de services waartoe gebruiker-1 toegang heeft gehad, direct of via andere services, samen met wanneer gebruiker-1 voor het laatst toegang heeft gehad tot die service.

Previewing the user-1 Access Advisor

9. Herhaal tot slot het proces (stappen drie tot zeven) om nog twee gebruikers aan te maken (gebruiker-2 en gebruiker-3). Ga terug naar de pagina Gebruikers van je IAM-dashboard en je zult een lijst zien die vergelijkbaar is met de onderstaande.

Previewing lists of users (user-1, user-2, and user-3)

Het aanmaken van de Gebruikersgroepen

Nu je de gebruikers hebt aangemaakt, is het tijd om groepen te creëren. Je zult groepen aanmaken met behulp van het AWS-beheerde beleid en een JSON-bestand.

Voor deze handleiding maak je drie groepen aan:

  • EC2-Admin: Biedt machtigingen om EC2-instanties te bekijken, te starten en te stoppen
  • EC2-Support: Biedt alleen-lezen toegang tot EC2
  • S3-Support: Biedt alleen-lezen toegang tot S3

Om te beginnen met het maken van gebruikersgroepen:

1. Klik in je IAM-dashboard op de Gebruikersgroepen in het linkerpaneel, klik vervolgens op Groep maken.

2. Geef een Gebruikersgroepnaam (EC2-Admin) op de Gebruikersgroep maken-pagina, zoals hieronder weergegeven.

Provide a User group name (EC2-Admin)

Houd de standaardmachtigingen en klik op Groep maken om het maken van de EC2-Admin-groep af te ronden.

Creating a new group

Zodra je de nieuwe groep hebt aangemaakt, krijg je het bericht EC2-Admin gebruikersgroep aangemaakt bovenaan de pagina te zien, zoals hieronder weergegeven. Je browser wordt vervolgens automatisch doorgestuurd naar de Gebruikersgroepen-pagina (stap drie).

Showing successful group creation notification

3. Klik op de EC2-Admin-groep onder de Groepsnaam-kolom om de samenvattingsinformatie van de groep te bekijken waar je inline-beleid kunt toevoegen (stap vier).

Previewing the EC2-Admin group

4. Klik nu op het tabblad Machtigingen > Machtigingen toevoegen > Inline-beleid maken om een inline-beleid te maken. Inline-beleidsregels worden meestal rechtstreeks aan gebruikers gekoppeld en worden typisch gebruikt om machtigingen in eenmalige situaties toe te passen.

Bijvoorbeeld, je team migreert een oude EC2-omgeving naar een nieuwe. Je wilt ervoor zorgen dat de beheerder van de oude EC2-instantie toegang heeft om te starten/stoppen en de beveiligingsgroepsinstellingen naar de nieuwe EC2-instantie te kopiëren.

Creating a policy for EC-Admin group.

5. Op de pagina Beleid maken, klik op het tabblad JSON hieronder weergegeven om een JSON-editor te openen waar je een beleid zult maken.

Accessing the policy editor

6. Plak de code (beleid) hieronder in het editorveld en klik op Beleid controleren om een inline beleid te maken. Dit inline beleid is vooraf gebouwd door AWS of een beheerder binnen je AWS-account dat je kunt gebruiken, aanpassen of bewerken om aan je exacte behoeften te voldoen.

Met dit beleid mogen leden van de EC2-Admin groep starten ("ec2:StartInstances"), stoppen ("ec2:StopInstances") en bekijken ("ec2:Describe*") EC2-instanties. Ze hebben toestemming (”Effect”: “Allow”) om acties uit te voeren op alle resources ("Resource": "*"). Deze acties zijn in essentie gekoppeld aan AWS’s programmatische of API-oproepen.

Leden van de EC2-Admin groep hebben ook toestemming om alle elastische load balancers te bekijken (Action": "elasticloadbalancing:Describe), metrics op te sommen (cloudwatch:ListMetrics), metrics statistieken te verkrijgen cloudwatch:GetMetricStatistics, en metrics te beschrijven (cloudwatch:Describe).

CloudWatch-metrics worden automatisch geconfigureerd met je EC2-instantie, en hetzelfde geldt voor de Auto Scaling-service.

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Action": [
				"ec2:Describe*",
				"ec2:StartInstances",
				"ec2:StopInstances"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "elasticloadbalancing:Describe",
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": [
				"cloudwatch:ListMetrics",
				"cloudwatch:GetMetricStatistics",
				"cloudwatch:Describe"
			],
			"Resource": "",
			"Effect": "Allow"
		},
		{
			"Action": "autoscaling:Describe",
			"Resource": "*",
			"Effect": "Allow"
		}
	]
}
Editing your JSON file for policy

7. Bekijk de samenvatting van het beleid en klik op Wijzigingen opslaan om het beleid op te slaan.

Saving your policy

8. Ga nu opnieuw naar je IAM-dashboard en start met het aanmaken van een groep zoals je deed in stap twee. Maar noem deze keer de groepsnaam Gebruikersgroep naam als EC2-Support.

Scroll naar beneden, zoek naar AmazonEC2ReadOnlyAccess in het zoekvak Machtigingsbeleid koppelen om dat beleid aan de groep (EC2-Support) te koppelen:

AmazonEC2ReadOnlyAccess is een beheerd beleid dat vergelijkbaar is met een ingebed beleid omdat het ook kan worden gekoppeld aan meerdere gebruikers of groepen van gebruikers. Maar in tegenstelling tot het ingebedde beleid is dit type beleid dat door beheerders is gemaakt herbruikbaar en kan het worden gedeeld binnen jouw organisatie of met alle AWS-accounts in jouw account.

A managed policy is a shared policy. As a result, all users or groups of users who use the shared policy will have updated permissions automatically when the policy is updated.

Deze automatische updatefunctie maakt de beheerde beleidsregels aantrekkelijker dan ingebedde beleidsregels. Met ingebedde beleidsregels moet elke toestemming worden bijgewerkt door de beheerder als het beleid wordt gewijzigd.

Vink de optie AmazonEC2ReadOnlyAccess aan en klik op Groep maken om het aanmaken van de groep af te ronden.

Setting up the AmazonEC2ReadOnlyAccess policy

10. Herhaal nu stappen acht tot negen om de groep S3-Support aan te maken met een beheerd beleid AmazonS3ReadOnlyAccess. Zodra je de groep S3-Support hebt aangemaakt, heb je een lijst met groepen vergelijkbaar met die hieronder die laten zien dat elke groep gedefinieerde toestemmingen heeft.

Previewing the groups

Gebruikers toevoegen aan hun juiste groepen

Je hebt de gebruikers en groepen met gedefinieerde toestemmingen aangemaakt. Nu is het tijd om de gebruikers toe te voegen aan hun juiste groepen. Je opent de samenvattingspagina van elke groep en voegt handmatig een gebruiker toe aan die groep.

De onderstaande tabel toont de juiste groepen waar je elke gebruiker aan zult toevoegen:

Users In-group Permissions
user-1 S3-Support Read-only access to S3 Bucket
user-2 EC2-Support Read-only access to EC2 Instance
user-3 EC2-Admin Full EC2 Access (View/Start/Stop)

1. Ga naar het Gebruikersgroepen pagina in je IAM-dashboard, en klik op de S3-ondersteuningsgroep hieronder om toegang te krijgen tot de samenvattingspagina van de groep.

Accessing the S3-Support group.

2. Klik vervolgens op het Gebruikers tabblad —> Gebruikers toevoegen om gebruikers aan de groep toe te voegen. Je browser wordt omgeleid naar een pagina waar je een lijst met gebruikers ziet die nog niet tot een groep behoren (stap drie).

Accessing the list of users to add to the S3-Support group.

3. Vink het vakje voor gebruiker-1 aan, klik dan op Gebruikers toevoegen om de gebruiker aan de S3-ondersteuningsgroep toe te voegen. Je browser wordt vervolgens automatisch omgeleid naar de samenvattingspagina van de S3-ondersteuningsgroep.

Adding a user (user-1) to the S3-Support group

Onderaan zie je dat gebruiker-1 nu deel uitmaakt van de S3-ondersteuningsgroep.

user-1 is now a part of the S3-Support group

4. Herhaal stappen één tot en met drie om gebruiker-2 en gebruiker-3 toe te voegen aan hun respectievelijke groepen.

5. Ga ten slotte naar de Gebruikersgroepen pagina en je zult zien dat de groepen nu elk één gebruiker hebben, zoals in de onderstaande schermafbeelding.

Verifying the groups now have one user each

Testen of Gebruikersmachtigingen Correct Werken

Je hebt gebruikers volledig gemaakt in hun eigen groepen met gedefinieerde machtigingen. Maar hoe weet je of ze werken? Het is tijd om te controleren of de machtigingen werken zoals bedoeld, en er zijn verschillende manieren om dat te doen. Een van de meest voorkomende manieren is via de webgebaseerde AWS Management Console.

1. Ga naar je IAM-dashboard en kopieer de IAM-gebruikersaanmeldings-URL in het rechterpaneel, zoals hieronder weergegeven.

Noting the IAM user sign-in URL

2. Ga op je webbrowser naar de eerder genoteerde aanmeldings-URL (stap één) en log in met de referenties van gebruiker-1. Google Chrome en Firefox zijn de meest aanbevolen browsers voor deze taak.

Signing in as user-1

3. Typ S3 in het zoekvak en klik op de onderstaande link S3 om toegang te krijgen tot de pagina met Amazon S3 Buckets.

Accessing the S3 bucket

4. Klik nu op Bucket maken om het maken van een S3 bucket te initialiseren.

Creating an S3 bucket

5. Voer een emmer naam in onder de Algemene configuratie sectie, klik vervolgens op Bucket maken om een S3 emmer te proberen te maken.

Adding an S3 Bucket Name
Attempting to create an S3 Bucket

Als je het je herinnert, heb je het beleid AmazonS3ReadOnlyAccess aan gebruiker-1 gekoppeld, wat gebruiker-1 alleen leesrechten geeft om S3-emmers te bekijken. Als gevolg hiervan verschijnt de onderstaande foutmelding als gebruiker-1 probeert een S3-emmer te maken, te verwijderen of bij te werken.

De onderstaande foutmelding geeft aan dat de machtiging die je aan gebruiker-1 hebt ingesteld goed werkt.

Testing if user-1 permission is working

Merk op dat gebruiker-1 ook geen EC2-machtigingen heeft. Dus voor controle, ga naar je EC2-dashboard en je krijgt veel API-fouten die verschijnen zoals in de onderstaande screenshot.

U krijgt deze fouten vanwege het principe van minste privilege (PoLP). PoLP is het concept dat elk gegeven OS-gebruikersaccount of proces de absolute minimumprivileges moet hebben die nodig zijn om een taak te voltooien.

Viewing the EC2 dashboard

6. Log nu uit van gebruiker-1 en log in als gebruiker-2, en navigeer naar uw EC2-dashboard.

Previewing the EC2 dashboard

7. Klik op een willekeurige draaiende EC2-instantie om de machtigingen van gebruiker-2 te bekijken. Zoals hieronder wordt getoond, krijgt u informatie over de instantie zoals Instantie-ID, Openbaar IPv4-adres, enzovoort.

Previewing running EC2 instance

8. Klik op de Instantiestatus aan de meest rechtse kant van de pagina, en kies vervolgens Stop instantie, Opnieuw opstarten instantie of Instantie beëindigen optie om te testen of de machtiging van gebruiker-2 werkt.

Stopping/starting/ terminating an EC2 instance

Onthoud dat gebruiker-2 alleen leesrechten heeft voor EC2-instanties (AmazonEC2ReadOnlyAccess). Dus als een gebruiker probeert een EC2-instantie te manipuleren, verschijnt de onderstaande foutmelding.

Het krijgen van de onderstaande fout geeft aan dat de machtiging van gebruiker-2 correct werkt.

Previewing the error message.

9. Log ten slotte uit van gebruiker-2, log dan in als gebruiker-3 en probeer een EC2-instantie te manipuleren die wordt uitgevoerd in uw account. Aangezien gebruiker-3 volledige EC2-toestemming heeft, kunt u een instantie starten, stoppen of beëindigen zonder een foutmelding te krijgen.

Conclusie

Gedurende deze tutorial heb je geleerd hoe je IAM-gebruikers en gebruikersgroepen kunt maken met gedefinieerde beleidsregels. Je hebt ook kort aangestipt hoe je kunt controleren of machtigingen werken zoals bedoeld door te proberen de status van een EC2-instantie te wijzigen en door te proberen een S3-bucket te maken.

Op dit punt heb je nu je basisconfiguratie voor IAM-gebruikers en -groepen om gebruikersmachtigingen te beheren. Natuurlijk kun je altijd meer gebruikers aan je account toevoegen en meer beleidsregels toepassen zoals je nodig acht.

Wat is nu de volgende stap om voort te bouwen op je nieuwe kennis? Misschien kijken naar het opzetten van je EC2-services op Auto-Scaling om te werken met IAM.

Source:
https://adamtheautomator.com/iam-aws/