26 februari 2020
Leestijd 6 min
Hoe uw cloud beveiligen met AWS Config
<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Hoe uw cloud beveiligen met AWS Config</span>
Share this via:

AWS Config is een service waarmee u de configuraties van uw AWS-bronnen kunt beoordelen, controleren en evalueren. Dit kan worden gebruikt voor:

  • beveiliging: valideer best practices voor beveiliging op uw AWS-account
  • compliance: rapporteer over afwijkingen in de configuratie van AWS-resources op basis van best practices of architectuurprincipes en -richtlijnen
  • efficiëntie: rapporteer over verloren of ongebruikte bronnen in uw AWS-account

In deze blogpost wil ik gedetailleerd uiteenzetten hoe u uw cloudresources kunt bewaken met deze tool. Dit eerste deel bespreekt het instellen van een AWS Config-account, het inschakelen van meldingen wanneer resources niet voldoen en de implementatie.

Waarom AWS Config gebruiken?

AWS is het belangrijkste cloudplatform dat we bij ACA gebruiken. We beheren meerdere accounts in AWS om allerlei applicaties te hosten voor onszelf en voor onze klanten. In de loop der jaren hebben we steeds meer projecten opgezet in AWS. Dit heeft geleid tot het aanmaken van veel accounts, die op hun beurt veel cloudresources gebruiken. Dit betekent natuurlijk dat het bijhouden van al deze resources ook steeds uitdagender wordt.

AWS Config heeft ons geholpen om met deze uitdaging om te gaan. We gebruiken het omalle resources in onze hele AWS-organisatie te inventariseren en te bewaken. Het stelt ons ook in staat omcompliance-regels inte stellen voor onze resources die in elk account moeten worden nageleefd. Bijvoorbeeld: een Elastic IP mag niet ongebruikt blijven of een EC2-beveiligingsgroep mag niet al het inkomende verkeer zonder beperkingen toestaan. Op deze manier kunnen we een standaard creëren voor al onze AWS-accounts.

Het inschakelen van AWS Config in je organisatie geeft ons een aantal voordelen.

  • We hebben altijd een up-to-date inventaris van alle resources in onze accounts.
  • We kunnen 24/7 de wijzigingsgeschiedenis van al onze resources bekijken.
  • Het geeft ons de mogelijkheid om organisatieregels aan te maken en continu te controleren of onze resources voldoen aan de regels. Als dat niet het geval is, krijgen we direct een melding.

AWS Config instellen voor één account

In dit eerste deel van mijn AWS Config blog wil ik laten zien hoe je AWS Config instelt voor een enkel account. In een toekomstige blogpost zal ik meer uitleggen over hoe je dit voor een hele AWS organisatie kunt doen. De afbeelding hieronder toont een overzicht van de setup in een enkel account, met daarin

  • de AWS Config recorder,
  • de AWS Config-regels,
  • en de S3 emmer.

AWS congif recorder explained with a figure

De AWS Config recorder is het belangrijkste onderdeel van de set-up. Je kunt de standaardrecorder inschakelen in de AWS-console. Standaard neemt deze alle resource types op. Meer informatie over alle beschikbare resourcetypes vind je op deze pagina.

AWS config settings overview

Wanneer je begint met opnemen, worden alle AWS-resources opgeslagen in de S3-bucket als configuratie-items. Het opnemen van deze configuratie-items is niet gratis. Op het moment van schrijven kost het $0,003 per opgenomen configuratie-item. Deze kosten worden gegenereerd wanneer het configuratie-item voor het eerst wordt opgenomen of wanneer er iets verandert aan het configuratie-item of een vanzijn relaties. In de instellingen van de AWS Config recorder kun je ook aangeven hoe lang deze configuratie-items moeten worden opgeslagen in de S3 bucket.

De AWS Config regels zijn het belangrijkste onderdeel van je setup. Deze regels kunnen worden gebruikt als compliancy controles om ervoor te zorgen dat de bronnen in je account zijn geconfigureerd zoals bedoeld. Het is mogelijk om aangepaste regels te maken of te kiezen uit een grote set vanAWS beheerde regels. In onze setup bij ACA hebben we ervoor gekozen om alleen AWS managed rules te gebruiken, omdat deze aan al onze behoeften voldeden. In de afbeelding hieronder zie je een van de regels die we hebben ingezet.

AWS config settings rules

Net als het vastleggen van configuratie-items, kost het uitvoeren van regelevaluaties geld. Op het moment van schrijven is dit $0,001 voor de eerste 100.000 regelevaluaties per regio, $.0008 van 100.000 - 500.000 en daarna $.0005.

Er zijn veel regels beschikbaar met verschillende voordelen voor je AWS account. Dit zijn enkele van deAWS beheerde regels die we hebben geconfigureerd:

  • Regels die de beveiliging verbeteren
    • AccessKeysRotated: controleert of de toegangssleutels van een IAM-gebruiker binnen een bepaald aantal dagen worden geroteerd.
    • IamRootAccessKeyCheck: controleert of aan een root account toegangssleutels zijn toegewezen, wat niet wordt aanbevolen
    • S3BucketServerSideEncryptionEnabled: controleert of standaard encryptie voor een S3 bucket is ingeschakeld
  • Regels die ongebruikte bronnen detecteren (kostenreductie)
    • Ec2VolumeInuseCheck: controleert of een EBS volume wordt gebruikt
    • EipAttached: controleert of een Elastic IP wordt gebruikt
  • Regels die optimalisatie van bronnen detecteren
    • VpcVpn2TunnelsUp: controleert of een VPN-verbinding twee tunnels beschikbaar heeft

Meldingen instellen wanneer resources niet voldoen

AWS Config-regels controleren configuratie-items. Als een configuratie-item niet voldoet aan de eisen van de regel, wordt het gemarkeerd als 'niet-conform'. Wanneer dit gebeurt, wil je hiervan op de hoogte worden gebracht zodat je de juiste acties kunt ondernemen om het probleem op te lossen. In de afbeelding hieronder zie je hoe we de notificaties voor onze AWS Config-regels hebben geïmplementeerd.

notifications implemented in AWS config rules

Om te beginnen met meldingen, moet CloudTrail zijn ingeschakeld en moet er een spoor zijn dat alle activiteit in het account logt. Nu kan CloudWatch de CloudTrail-gebeurtenissen oppikken. In onze setup hebben we 5 CloudWatch-eventregels gemaakt die meldingen versturen op basis van prioriteit. Dit maakt het voor ons mogelijk om te beslissen wat het prioriteitsniveau van de melding voor elke AWS Config-regel moet zijn. De afbeelding hieronder laat hier een voorbeeld van zien.

AWS config rule explained how to create rule

In de sectie 'Targets' zie je het SNS topic dat de meldingen van de CloudWatch event rule ontvangt. Opsgenie heeft een apart abonnement voor elk van de SNS topics (P1, P2, P3, P4 & P5). Op deze manier ontvangen we meldingen wanneer er wijzigingen in de compliance plaatsvinden en zien we ook de ernst ervan door naar het prioriteitsniveau van onze Opsgenie-melding te kijken.

OpsGenie SNS topic

Uw AWS-configuratie implementeren

Bij ACA proberen we onze AWS-infrastructuur altijd te beheren met Terraform. Dit is niet anders voor AWS Config. Dit is onze implementatieworkflow:

deployment workflow terraform

We beheren alles wat met AWS Config te maken heeft in Terraform. Hier is een voorbeeld van een van de AWS Config regels in Terraform, waarbij de waarde van het rule_identifier attribuut kan worden gevonden in de documentatie van de AWS Config beheerde regels:

resource "aws_config_config_rule" "mfa_enabled_for_iam_console_access" { name = "MfaEnabledForIamConsoleAccess" description = "Controleert of AWS Multi-Factor Authentication (MFA) is ingeschakeld voor alle AWS Identity and Access Management (IAM) gebruikers die een consolewachtwoord gebruiken. De regel voldoet als MFA is ingeschakeld." rule_identifier = "MFA_ENABLED_FOR_IAM_CONSOLE_ACCESS" maximum_execution_frequency = "One_Hour" excluded_accounts = "${var.aws_config_organization_rules_excluded_accounts}" }

De Terraform code wordt versiebeheer met Git. Als de code moet worden ingezet, doet Jenkins een checkout van de Git repository en zet het uit op AWS met Terraform.

Takeaway

Met AWS Config krijgen we meer inzicht in onze AWS-cloudbronnen. AWS Config verbetert onzebeveiliging, voorkomt dat we resources in gebruik houden die niet worden gebruikt en zorgt ervoor dat onze resources optimaal worden geconfigureerd. Naast deze voordelen biedt het ons ook een inventaris van al onze resources en hun configuratiegeschiedenis, die we op elk moment kunnen inzien.

Tot zover deze blogpost over AWS Config. In een toekomstig deel wil ik uitleggen hoe je het instelt voor een AWS-organisatie. Als je dit onderwerp interessant vond en je hebt een vraag of je wilt meer weten over onze AWS Config setup, neem dan contact met ons op viacloud@aca-it.be


Peter Jans
Peter Jans
Solution Engineer, ACA Group
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas