====== Security/Compliance ====== ---- ===== Identity & Access Management (IAM) ===== Service global qui couvre toutes les régions ==== Composants ==== === Users === * Objets identifiant les utilisateurs (personne ou compte pour l'accès d'une application) * Un utilisateur peut être associé à 10 groupes maximum === Groups === * Objets identifiant plusieurs utilisateurs. * Sont associés à des policy permissions. * Par défaut 100 groupes maximum par compte. === Roles === * Objets associés à différentes identités pour leur donner des permissions * 4 types de roles : AWS Service Role, AWS Service-Linked Role, Role for Cross-Account Access, Role for Identity Provider Access === Policy Permissions === * JSON policies qui définissent quelles ressources peuvent être accédées ou pas. * Fournis par AWS ou définis par le client. === Access Control Mechanisms === * Mécanismes qui indiquent comment une ressource peut être accédée ==== Security Status ==== 5 bonnes pratiques vérifiés par AWS sur le compte : * Activation MFA sur le compte root * créer des utilisateurs individuels * utiliser des groupes pour assigner les permissions * appliquer une IAM password policy * changer les clés d'accès régulièrement ==== IAM Policies ==== === Managed Policies === * Peuvent être attachées à plusieurs utilisateurs, groupes ou rôles * AWS Managed Policies : police préconfigurée proposée par AWS pour les besoins classiques * Customer Managed Policies : peuvent être créés en modifiant une fournie par AWS, à partir du Policy Genrerator ou manuellement === Inline Policies === * Attachée à un seul utilisateur, groupe ou rôle * Création par le Policy Generator ou manuellement ==== Multi-Factor Authentication (MFA) ==== * Double authentification ==== Identity Federation ==== * Permet l'accès sans compte AWS avec une identification tierce d'un Identity Provider (IdP) * Fonctionne avec 2 type IdP : OpenID Connect (Facebook, Amazon, Google, ...) et SAML (MS Active Directory) ==== Cross-Account Access ==== * Permet l'accès aux services d'un autre compte AWS à l'aides des roles * Trusted account : compte auquel on fait confiance (celui à qui on donne l'accès) * Trusting account : compte qui fait confiance (celui qui donne l'accès) * On prend le role en basculant au niveau du compte "switch role" ---- [[all:bibles:aws:presentation:8-security|Haut de page]] ===== KMS ===== Fonctionne au sein d'une région ==== Cryptographie ==== === symmetric encryption === * une seule clef est utilisée pour crypter et décrypter les données * Exemples : AES, DES (Digital Encryption Standard), Triple-DES, Blowfish, ... === asymmetric cryptography === * on génère une clef publique et une clef privée * on donne la clef publique pour crypter les données * les 2 clefs sont nécessaires pour décrypter, nous seront donc les seuls à pouvoir le faire * Exemples : RSA (Rivest-Shamir-Adleman), Diffie-Hellman, Digital Signature Algorithm ==== Composants ==== === Customer Master Keys (CMK) === * Utiliser typiquement pour encrypter les DEK qui sont ensuite utilisées par d'autres services AWS * 2 types : Customer managed CMKs et AWS managed CMKs === Data Encryption Keys (DEK) === * Créés par par les CMKs et utilisées pour encrypter les données * Envelope encryption : la clef de cryptage est elle-même cryptée === Key Policies === * Définir les accès aux clefs KMS === Grants === * Délégation d'accès aux clefs KMS à un service AWS ==== Accès ==== === Via Key Policies === === Via Key Policies avec IAM === === Via Key Policies avec Grants === ==== Management ==== === Rotation === * Possibilité d'activer une rotation automatique tous les 365 jours (impossible sur une clef importée). Les clefs précédentes sont toujours utilisables sur les données cryptées avant. === Importation === * Importation d'une clef publique === Suppression === * KMS programme l'effacement dans un délai de 7 à 30 jours. La clef est mise dans un état "Pending deletion" où elle ne peut plus servir * Possibilité d'utiliser CloudTrail pour détecter une utilisation ou bien de programmer une alarme avec CloudWatch * En cas de doute sur l'absence d'utilisation de la clef il est également possible de la désactiver plutôt que de la supprimer ---- [[all:bibles:aws:presentation:8-security|Haut de page]] ===== CloudHSM ===== * HSM : Hardware Security Module, composant physique non partagé ---- ===== Secret Manager ===== ==== Secret Manager ==== * Permet le stockage de secrets (mot de passe, clefs d'accès, ...) * Cryptage systématique * Possibilité d'activer une rotation automatique pour mettre à jour automatiquement à partir d'une lambda fonction * Possibilité de partager avec un autre compte AWS * Jusqu'à 10 Ko, payement pour chaque secret storage plus le nombre d'appels via l'API chaque mois * Accès défini par des IAM identity-based policies et IAM resource-based policies ==== Parameter Store ==== * Permet le stockage de paramètres (qui peuvent être aussi des mots de passe) * Cryptage optionnel * Pas de gestion de rotation automatique * Standard jusqu'à 4Ko (gratuit) ou advanced jusqu'à 8 Ko (payant) ---- [[all:bibles:aws:presentation:8-security|Haut de page]] ===== AWS Organizations ===== {{ :all:bibles:aws:organization.jpg?600 |}} * Root :container en haut de l'organisation, tous les éléments se trouvent sous ce root * Organizational Units : pour catégoriser les account. Rattaché sous root ou une autre OU (jusqu'à 5 niveaux) * Accounts : ce sont les comptes AWS dans lesquels on peut gérer les ressources * Service Control Policies : contrôle quels services et fonctionnalités sont accessibles par un compte. Ces SCPs peuvent être associées au niveau root, OU ou account (elles s'appliquent ensuite à tous les objets enfants) ---- [[all:bibles:aws:presentation:8-security|Haut de page]] ===== Firewall ===== ==== Web Application Firewall (WAF) ==== === Conditions === * Cross-site scripting * Geo match * IP addresses * Size constraints * SQL injection attacks * String and regex matching === Rules === * Regular Rule : association de conditions (ET logique) * Rate-based Rule : limite les accès depuis une adresse IP au delà d'un certains nombre de requête par période de 5 mn === ACLs === Association d'une action à chaque règle * Allow * Block * Count === Intégration avec CloudWatch === * Par défaut relevé toutes les minutes et conservés pour 2 semaines * Les métriques sont : AllowedRequests, BlockedRequests, CountedRequests, PassedRequests (requêtes qui ne correspondent à aucune règle WAF) === Intégration avec CloudFront === * Une fois l'association faite entre une WEB ACL et une distribution CloudFront, cela peut prendre 15mn à se propager à tous les Edge Locations * Possibilité de customiser l'erreur 403 retourné à l'utilisateur ==== AWS Firewall Manager ==== Permet de gérer WAF dans un environnement de plusieurs compte au travers des Organizations. === Prérequis === * Le compte doit faire partie d'une organization * Un compte doit être défini comme Firewall Manager Admin * AWS Config doit être activé === Composants === * WAF Rules * Rules Groups : regroupe des règles qui ont la même action (Block ou Count mais pas Allow). A créer soi-même ou à acheter sur AWS Marketplace * Firewall Manager Policies : contient les Rules Groups à assigner aux ressources. 2 Rules groups max par Policy (1 customer et 1 Marketplace) Coût : 100$ / mois par policy et par région. ==== AWS Shield ==== Prévention contre les attaques DDoS (Distributed Denial of Service) qui peuvent être de différents types : * SYN flood : envoi de SYN et suite au SYN ACK laisse la connexion ouverte * DNS query flood : attaque du DNS par de multiples requêtes * HTTP flood/Cache-busting : attaque par requêtes HTTP éventuellement en passant outre du cache pour attaquer le serveur source === AWS Shield Standard === * Gratuit * Contre les attaques DDoS au niveau 3 (réseau) et niveau 4 (transport) * Intégré dans CloudFront et Route 53 === AWS Shield Advanced === * Protection des applications sur EC2, CloudFront, ELB et Route 53 * Protection plus importante des attaques DDoS niveau 3 (réseau), niveau 4 (transport) et niveau 7 (application) * Assistance 24/24 d'une équipe spécialisée * 3 000 $ / mois avec WAF intégré + frais de transfert ---- ===== AWS Single-Sign On (SSO) ===== Permet un accès à plusieurs account AWS avec un un accès SSO. ---- [[all:bibles:aws:presentation:8-security|Haut de page]] ===== Cognito ===== Authentication and user management service ==== User pool ==== * Pour créer et maintenir l'annuaire des utilisateurs * Gère les inscription et les connexions ==== Identity pool ==== * Permet un accès temporaire à des utilisateurs ou bien des invités * 2 type d'identités : authentifié et non authentifié * Chaque identité a un rôle et chaque rôle à une policy attachée qui décrit les permissions ---- [[all:bibles:aws:presentation:8-security|Haut de page]]