Amazon Web Services

Concernant les supports de cours

Supports de cours

Les cours sont maintenus et donnés par : https://www.alterway.fr/cloud-consulting

Licence Creative Commons BY-SA 4.0
Licence Creative Commons BY-SA 4.0

Identity Access Managment (IAM)

IAM: Présentation

IAM: Identity Access Management

  • Gestion des accès aux services et ressources AWS
  • Création et gestion des utilisateurs et des groupes
  • Gestion des rôles et autorisations
  • Gestion des utilisateurs fédérés et leurs permissions

IAM Users: users

  • Authentification console : Username/Password
  • Authentification CLI, SDKs et API: Access key/Secret key

IAM Users: groups

  • Regroupement d'utilisateurs IAM
  • Simplifie la gestion des permissions et roles pour plusieurs utilisateurs

IAM Policies: définition

  • Ensemble d'autorisations IAM
  • Allow/Deny une ou des actions sur une ou plusieurs ressources
  • Format JSON décrivant les permissions
  • Peut être assignée à:
    • Des users
    • Des groupes
    • Des rôles
    • Des ressources

IAM Policies: types de policies

  • Managed Policies:
    • Managées par AWS
    • Managées par les utilisateurs
  • Inline policies

IAM Policies: propriétés

  • Version
  • Id
  • Statement
  • Sid
  • Effect
  • Princial
  • Actions
  • Ressources

IAM Policies: exemple

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}

IAM Roles: définition

  • Permettent déléguer l'accès à des users, applications et services qui, en temps normal, n'ont pas accès aux ressources AWS
  • Permettent d'éviter de partager des informations d'identification ou de définire des autorisations pour chaque entité afin faire des appels d'API AWS
  • Un rôle IAM est associé une policy IAM
  • Pas de credentials associés à un rôle
  • Le service utilisant un rôle IAM se voit attribué dynamiquement une paire d'Access key/Secret key temporaire

IAM Roles: exemple

  • Une Instance EC2 hébergeant une application Python et qui a besoin d'accéder à des objets stockés sur Amazon S3
  • Méthode 1: embarquer l'Access Key (AK) et le Secret Key (SK) dans la configuration de l'application
  • Méthode 2: attribuer un role à l'instance EC2 portant l'application
  • La méthode 2 sera préférée car évite d'exposer des credentials et donc une potentielle faille de sécurité

IAM: Best practices

  • Créer des comptes IAM individuels
  • Utiliser les groupes pour assigner des permissions
  • Toujours attribuer le minimum de privilège possible
  • Configurer une politique de mots de passe forts (complexité, longueur)
  • Activer le MFA pour les utilisateurs IAM

IAM: Best practices

  • Utiliser les rôles pour les applications hébergées sur AWS EC2
  • Déléguer des rôles plutôt que de partager des credentials (cross-accounts)
  • Établir une politique de renouvellement des credentials régulier
  • Supprimer les users et les credentials inutilisés
  • Utiliser les conditions dans les policies pour un niveau supplémentaire de sécurité
  • Monitorer l'activité des comptes AWS

Réseau

Virtual Private Cloud (VPC)

VPC: Présentation

  • Virtual Private Cloud
  • Ressources cloud isolées
  • Permet le contrôle de l'environnement de mise en réseau
  • Peut être connecté à des centres de données existants via VPN ou Direct Connect
  • Peut être appairé à d'autres VPC dans AWS

VPC et subnets

  • Géographiquement:
    • AWS global
    • Region
    • Availability Zone (AZ)
  • Virtuellement:
    • VPC
    • Subnet

VPC et subnets

  • VPC: CIDR block compris entre /16 et /28
  • Subnet: CIDR block compris entre /16 et /28

Évitons les problèmes, restons sur la RFC1918 !

VPC et subnets

Subnets dans un VPC
Subnets dans un VPC

Accès internet

Accès internet

VPC avec subnets privés et publics
VPC avec subnets privés et publics

Internet Gateway

  • Composant de VPC redondant et hautement disponible qui permet la communication entre des ressources dans un VPC et Internet
  • Fournit une cible dans les tables de routage VPC pour le trafic routable sur Internet

Besoins:

  • Table de routage
  • Attacher l'IGW au VPC
  • Attribuer une IP publique à l'instance
  • Ne pas bloquer les flux (ACL et Security Group)

NAT Gateway

  • Passerelle NAT managée et scalable
  • Création et association:
    • Nécessite une adresse Elastic IP (EIP) à associer à la passerelle NAT
    • Mettre à jour la table de routage associée à un ou à plusieurs sous-réseaux privés pour router le trafic lié à Internet vers la passerelle NAT

Security Groups

  • Gestion des flux niveau 4 (modèle OSI)
  • Gestion des règle par autorisation (à opposition à l'interdiction des ACL)
  • Un groupe de sécurité par défaut est créé pour tout VPC
  • Par défaut:
    • En entrée: rien n'est autorisé
    • En sortie: tout est autorisé

Tables de routage

  • Tables de routage (L4) classiques pour router le réseau dans le VPC
  • Chaque subnet est associé à une table de routage (sinon les paquets ne sont pas routé)
  • Un sous-réseau peut être associé à une seule table de routage à la fois
  • Possible d'associer plusieurs subnets à la même table de routage

Tables de routage

Tables de routage
Tables de routage

VPC peering

  • Interconnexion entre VPC
  • Permet de router le trafic entre les VPC de manière privée (sans passer par internet)
  • Peut se créer pour des VPC sur le même compe AWS ou entre VPCs de différents comptes
  • Possibilité de faire du Peering transitif grace à VPC Transit Gateway

Amazon Route 53

Présentation

  • Service DNS managé
  • Registrar
  • Service de heath checks

Stratégies de routage

  • Plusieurs stratégies de routage DNS:
    • Simple routing policy
    • Failover routing policy: failover actif-passif
    • Geolocation routing policy
    • Geoproximity routing policy
    • Latency routing policy
    • Multivalue answer routing policy: réponse aléatoire de Route 53 dans un choix de 8 records (au plus)
    • Weighted routing policy: notamment pour l'A/B testing