Introduction#
Comme vous le savez, j’ai obtenu en février 2022 la certification Solutions Architect Professional et j’ai réalisé un article comprenant mon retour d’expérience sur cette certification. Je voulais, dans un deuxième temps et à la suite de ce premier challenge, continuer à compléter mes connaissances sur la partie sécurité qui est déjà bien couverte avec la certification Solutions Architect.
C’est pourquoi, j’ai décidé de me lancer dernièrement dans la certification Security Specialty que j’ai obtenue le 18 juin 2022.
Le but de cet article est de vous parler des différents thèmes couverts par cette certification et évoquer les quelques points d’attention à avoir avant de passer l’examen.
Je ne vais pas reprendre l’ensemble des points que j’ai déjà pu évoquer avec mon article sur la Solutions Architect Professional car beaucoup sont valables pour celle-ci aussi. Je vous invite donc à lire cet article pour vous faire une idée des conditions d’examen chez AWS ainsi que pour les différents réflexes à acquérir pour répondre aux questions.
La certification en détail#
La certification Security Specialty regroupe plusieurs domaines qui seront évalués lors de votre examen final à travers ces différentes catégories avec le pourcentage qui correspond au volume de questions :
- Réponse aux incidents (12%)
- Surveillance et journalisation (20%)
- Sécurité de l’infrastructure (26%)
- Gestion des identités et des accès (20%)
- Protection des données (22%)
Vous pouvez retrouver avec plus de précisions ce qui est attendu dans ces différents domaines avec le guide de l’examen.
Comme pour beaucoup de certification AWS, énormément de produits et services sont concernés à travers celle-ci. Vous devrez donc les connaître, savoir quand les utiliser et évidemment savoir si un service peut s’imbriquer avec un autre.
L’examen, comme pour la partie Professional, dure trois heures avec 30 minutes en plus si vous faites la demande et que vous passez l’examen en anglais (ce que je vous recommande fortement au passage). Il se compose de 65 questions ce qui le place entre un niveau Associate et Professional. Enfin, il vous faudra un score de 750 sur 1000 soit 75 % de bonnes réponses.
Personnellement, je n’ai pas trouvé l’examen plus facile ou plus dur que pour la certification Solutions Architect Professional. C’est une sorte de prolongement de cette dernière, mais qui se concentre sur tous les aspects sécurités d’AWS.
Mes ressources utilisées#
Pour ce qui est de la partie apprentissage et dans le but d’avoir une présentation de tous les domaines et services compris dans cette certification, je vous recommande le cours du site A Cloud Guru. Ce cours est présenté par Ryan Kroonenburg et Faye Ellis au format vidéo allant d’une heure à trois pour chaque chapitre.
Cela vous permettra de connaître les spécificités de chaque service et de savoir comment celui-ci s’intègre dans l’écosystème AWS. Je vous recommande aussi de lire les livres blancs que A Cloud Guru vous propose. Notamment celui sur KMS (Key Management Service) qui a énormément de valeur dans cette certification.
Après avoir terminé la partie théorique, vous aurez besoin de vous exercer et donc, de commencer les tests pratiques. C’est pourquoi je vous recommande le site de TutorialDojo afin de vous entrainer pour atteindre au moins 80-85 % de bonnes réponses.
En complément de la partie pratique, vous pouvez compléter vos connaissances avec le Study Path de TutorialDojo qui regroupe tous les liens importants pour être sûr de ne rien manquer.
Comme pour chaque certification AWS, vous avez 10 questions fournies à titre d’exemple à travers ce lien et vous pouvez utiliser le site skillbuilder.aws pour vous entrainer avec ce lot de 20 questions fourni, lui aussi, par AWS.
J’ai aussi regardé les différents tests pratiques proposés par Whizlabs, qui sont pour moi beaucoup trop faciles à terminer. J’ai dû mettre un peu plus d’une heure à chaque fois pour terminer un test. Vous l’aurez compris, on est assez loin du contenu que l’on peut retrouver à l’examen.
Ce qu’il faut retenir#
Cette section a pour but de récapituler ce qu’il faut avoir en tête en terme de connaissance pour passer l’examen. Je ne dis pas qu’il faut savoir que ça, bien au contraire, mais j’ai trouvé intéressant de vous partager mes quelques notes.
Comme vous le savez, les services d’AWS évoluent avec le temps. Les informations ci-dessous sont valables à la date de publication de l’article. C’est pourquoi pour chaque point, je me permets d’ajouter la documentation officielle d’AWS pour que vous vérifiez si l’information a évolué ou non.
KMS (Key Management Service) et les clés#
Vous entendrez énormément parler de KMS et pour cause, il occupe une place importante dans cette certification. Voici les quelques éléments à retenir au sujet de ce service :
Chaque clé est reliée à une Key Policy, elle permet de définir les permissions de la clé et de la gérer.
Les IAM Policy pour KMS sont facultatives contrairement au Key Policy et permettent de fournir des autorisations sur une ou plusieurs clés.
Les Keys Grants permettent de donner des accès temporaires à une clé. Ils sont souvent utilisés par les services AWS par exemple : une instance EC2 veut monter un volume EBS chiffré. Les Grants ne peuvent qu’autoriser des actions (Allow) et ne peuvent pas en interdire (Deny).
La condition ViaService permet de limiter l’accès au service AWS qui est spécifié dans la condition. Avec cette condition, on peut autoriser une ou plusieurs actions (par exemple
kms:Encrypt
) uniquement quand la demande provient du service AWS de la région qui a été défini.
...
"Condition": {
"StringEquals": {
"kms:ViaService": [
"ec2.eu-west-1.amazonaws.com"
]
}
}
La condition KeyOrigin permet de restreindre un utilisateur à créer une clé (
kms:CreateKey
) dans le contexte utilisé avec cette condition. Les valeurs sontAWS_KMS
(depuis KMS),AWS_CLOUDHSM
(depuis CloudHSM) etEXTERNAL
(importé depuis une source externe).Les clés stockées dans KMS peuvent chiffrer ou déchiffrer de petites données qui sont inférieures à 4 KB. Si la taille des données est supérieure à ce chiffre, c’est une data key qui sera générée par KMS et utilisée pour effectuer ces opérations. Ce principe s’appelle le chiffrement d’enveloppe.
Vous ne pouvez pas exporter les clés que vous créez via KMS.
Lorsque vous demandez à KMS de faire tourner vos clés, il garde automatiquement les anciennes clés pour déchiffrer les ressources qui ont été chiffrées avec ces dernières.
Pour faire tourner les clés dans KMS avec un élément importé depuis une source externe (imported key material), la seule solution est de le faire manuellement en important un nouvel élément de clé afin de créer une nouvelle clé et enfin, de mettre à jour l’alias de la clé.
Si on vous demande dans un scénario, une méthode pour supprimer rapidement une clé dans KMS, il faut penser à utiliser une clé avec un élément importé depuis une source externe. En effet, si vous supprimez les éléments de clé, la clé KMS devient immédiatement inutilisable.
Sinon on peut activer pour les autres types de clé une période de suppression entre 7 et 30 jours.
- Si dans un contexte, on vous demande de choisir une solution pour stocker vos clés répondant à la norme FIPS 140-2 Level 3. Pensez tout de suite à CloudHSM et non pas à KMS.
CloudTrail#
CloudTrail est le service qui permet de suivre l’activité des API AWS, il est omniprésent dans cette certification.
Par défaut, CloudTrail est activé dès la création d’un compte AWS.
Par défaut, le bucket S3 dans lequel CloudTrail stocke ses logs est chiffré avec SSE-S3.
On vous demandera parfois une méthode pour vérifier que vos logs issus de CloudTrail ne soient pas altérés. Pour cela, il suffit d’activer la validation de l’intégrité des logs.
Vous avez jusqu’à 90 jours de rétention pour vérifier un événement depuis CloudTrail sans passer par le bucket S3.
Vous pouvez utiliser Guard Duty ou AWS Config pour vérifier que CloudTrail ne soit pas désactivé par un utilisateur.
Secret Manager VS Parameter Store#
Secret Manager et Parameter Store sont utilisés pour stocker des informations sensibles nécessaires pour votre application sur EC2, Lambda, etc. Il est important de comprendre ce qui les différencie.
Secret Manager permet de faire tourner vos secrets contrairement à Parameter Store.
Dès lors que la rotation d’un secret est activée, Secret Manager va effectuer une rotation du secret immédiatement pour tester que la configuration et les permissions sont correctes.
Il y a des frais de service lors de l’utilisation de Secret Manager contrairement à Parameter Store.
S3 et Bucket Policy#
S3 est présent dans beaucoup de questions, lui aussi. Le but est d’avoir en tête plusieurs conditions que vous pouvez retrouver dans une Bucket Policy.
- Dans un scénario, si on vous demande de faire des opérations sur S3 uniquement en HTTPS. Il suffit d’utiliser
aws:SecureTransport
en condition de votre Bucket Policy.
"Action": "s3:*",
"Effect": "Deny",
...
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
- Si vous devez vérifier que le bucket distant dispose d’un chiffrement serveur, vous pouvez utiliser
s3:x-amz-server-side-encryption
dans la condition.
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
Pour un chiffrement avec KMS (SSE-KMS)
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
Pour un chiffrement avec les clés gérées par S3 (SSE-S3)
- Pour autoriser la création de bucket dans une région spécifique la condition
s3:LocationConstraint
peut être précisée dans une IAM Policy.
AWS Config#
On termine avec AWS Config, l’outil qui permet de vérifier la conformité des ressources déployées.
AWS Config permet de corriger des ressources non conformes via un système de correction automatique (auto remediation).
Afin de mettre en place AWS Security Hub et de réaliser un CIS benchmark, AWS Config doit être activé en premier.
AWS Config n’est pas en mesure de détecter si un service s’exécute dans une machine virtuelle. Néanmoins, il peut suivre l’historique des modifications.
Conclusion#
Vous l’aurez donc compris, la certification AWS Certified Security - Specialty s’adresse à ceux qui souhaitent étendre leurs connaissances sur la mise en place de la sécurité au sein d’AWS.
Cette certification n’est pas facile et demande de la préparation. Je vous conseille d’ailleurs d’avoir au minimum la certification Solutions Architect de niveau Associate dans le but de disposer des connaissances nécessaires qui permettront de l’aborder sereinement.
Comme dans mon retour que j’avais fait pour la certification Solutions Architect Professional, entrainez-vous ! Faites et refaites les tests pratiques dans les conditions de l’examen final afin d’être le plus préparé possible !
Je souhaite à celles et ceux qui veulent la passer du courage et de la réussite. :-)