Aller au contenu
Documentation

Démarrer

Connecter un compte AWS

Le rôle IAM créé par gabarit CloudFormation ou une clé d'accès, les options d'analyse de contenu, AWS Organizations et ce que Ctadel lit.

Cette page décrit comment donner à Ctadel accès à un compte AWS : des droits de lecture pour l'inventaire et la configuration, et, pour les analyses de contenu, des droits de création et de suppression de ressources éphémères que le gabarit accorde par défaut et que vous pouvez refuser option par option. Elle décrit ensuite ce que le collecteur lit.

Deux façons de s'authentifier

ModeCe que vous créezCe que Ctadel conserve
« Endosser un rôle (recommandé) »Un rôle IAM dans votre compte, par le gabarit CloudFormation fourni, avec un identifiant externe.L'ARN du rôle et l'identifiant externe. Aucun secret permanent ; supprimer le rôle coupe l'accès.
« Clé d'accès »Un utilisateur IAM et sa clé d'accès.La clé, chiffrée. Elle n'expire pas d'elle-même.

Dans les deux cas, le collecteur vérifie l'identité obtenue avec sts:GetCallerIdentity au début de chaque scan et en déduit le numéro de compte si vous ne l'avez pas saisi.

Créer le rôle avec le gabarit CloudFormation

Le gabarit CloudFormation aws-ctadel-role.yaml vous est remis par l'équipe Ctadel. Déployez-le dans chaque compte à analyser :

aws cloudformation deploy \
  --template-file aws-ctadel-role.yaml \
  --stack-name ctadel-scanner \
  --capabilities CAPABILITY_NAMED_IAM \
  --parameter-overrides \
      CtadelPrincipalArn=<ARN_FOURNI_PAR_CTADEL> \
      ExternalId=<IDENTIFIANT_EXTERNE>

Le rôle créé porte les politiques gérées SecurityAudit et job-function/ViewOnlyAccess, plus une politique en lecture CtadelReadExtras pour ce que ces deux politiques ne couvrent pas : le rapport d'identifiants IAM (hygiène du compte racine et des clés), Shield, les politiques TLS des répartiteurs de charge, le code et la configuration des fonctions Lambda, les politiques de dépôt ECR et de système de fichiers EFS, les entrées d'accès EKS, les attachements de passerelle de transit, la journalisation des requêtes Resolver, l'inventaire Bedrock et SageMaker, et les identifiants spécifiques à un service.

La politique de confiance n'accepte que le principal de votre instance Ctadel, et seulement si l'appel porte l'identifiant externe.

Paramètres du gabarit

ParamètreValeur par défautRôle
CtadelPrincipalArnaucuneLe principal IAM de votre instance, communiqué par l'équipe Ctadel.
ExternalIdaucuneSecret partagé, huit caractères au minimum. Générez-le dans Ctadel (bouton « Générer ») et reportez la même valeur ici.
RoleNameCtadelScannerNom du rôle. Gardez le même nom dans tous les comptes d'une organisation.
MaxSessionSeconds43200Durée maximale d'une session, de 3600 à 43200 secondes. Un inventaire complet d'un gros compte dépasse une heure.
EnableDiskScanningtrueInstantané du volume, copie, machine de scan temporaire dans votre compte.
EnableSSMTransportfalsePilotage de la machine de scan par AWS Systems Manager au lieu de SSH : ni adresse publique, ni règle entrante. Crée un profil d'instance.
ScannerArtifactBucketvideAvec SSM, un bucket de votre compte où le binaire du scanner est déposé sous ctadel-scanner/ puis supprimé.
EnableDatabaseScanningtrueCopie temporaire d'une base RDS depuis un instantané, lue puis supprimée.
EnableBucketScanningtrueLecture des objets S3 (s3:GetObject), et kms:Decrypt via S3 pour les objets chiffrés par clé gérée. Objets lus jusqu'à 10 Mo chacun.
EnableKubernetesAccesstrueCtadel s'enregistre comme entrée d'accès EKS. Mettez false si vous créez l'accès vous-même.
EnableRuntimeEventstrueConsommation d'une file SQS de notifications CloudTrail. Sert à la détection sur journaux, en validation interne, non disponible pour les clients.

Avec les valeurs par défaut, le rôle créé n'est donc pas un rôle de lecture seule : EnableDiskScanning et EnableDatabaseScanning ajoutent la création d'instantanés, de volumes, d'instances, de paires de clés, de groupes de sécurité et d'instances RDS temporaires. Passez-les à false pour un rôle limité à la lecture ; l'inventaire, la configuration et la lecture des buckets restent complets, seuls les disques et les bases ne sont plus lus. Les droits d'écriture accordés par ces options sont bornés : les suppressions (volumes, instantanés, instances, copie de base) ne s'appliquent qu'aux ressources portant l'étiquette ctadel-managed=true, et le rôle ne peut poser cette étiquette qu'au moment où il crée une ressource. Avec EnableSSMTransport, les commandes ne peuvent viser que les instances portant cette étiquette.

Les sorties du gabarit donnent RoleArn (à coller dans Ctadel), ScannerInstanceProfileName (avec SSM) et EnabledCapabilities, le résumé des options retenues.

Déclarer le compte dans Ctadel

  1. Ouvrez « Paramètres », onglet « Intégrations », sous-onglet « Fournisseurs cloud », puis « Ajouter un compte » sur la ligne Amazon Web Services.
  2. Saisissez un « Libellé ».
  3. Sous « Mode d'authentification de Ctadel », laissez « Endosser un rôle (recommandé) ».
  4. Cliquez sur « Générer » à côté d'« Identifiant externe », puis déployez le gabarit avec cette valeur.
  5. Collez la sortie RoleArn dans « ARN du rôle ».
  6. Cliquez sur « Découvrir les projets » : Ctadel endosse le rôle et liste le compte, ou les comptes de l'organisation.
  7. Cliquez sur « Créer », ou « Ajouter les N comptes » si plusieurs ont été découverts.

Au début de chaque scan, Ctadel endosse le rôle avec l'identifiant externe et obtient des identifiants temporaires, utilisés pour l'inventaire et les analyses de contenu. La session demandée dure douze heures ; si le rôle refuse, une heure.

Si vous changez de mode après coup, les identifiants enregistrés sont remplacés : renseignez tous les champs du nouveau mode.

Mode clé d'accès

Créez un utilisateur IAM, attachez-lui SecurityAudit et ViewOnlyAccess, et ajoutez les actions listées dans CtadelReadExtras du gabarit si vous voulez la même couverture. Choisissez « Clé d'accès » dans le dialogue et renseignez « Access Key » et « Secret Key ». Les options d'analyse de contenu correspondent alors aux politiques CtadelDiskScanning, CtadelDatabaseScanning, CtadelBucketScanning et CtadelKubernetesAccess du gabarit, à reproduire sur l'utilisateur.

Une organisation entière

Si le rôle est déployé dans le compte de gestion et peut appeler organizations:ListAccounts, « Découvrir les projets » renvoie tous les comptes actifs de l'organisation. Ctadel attend dans chaque compte membre un rôle du même nom, ce que produit un déploiement du gabarit par StackSet ; « Ajouter les N comptes » crée une entrée par compte avec l'ARN correspondant. Sans ce droit, la découverte retombe sur le compte du rôle.

Ce que le collecteur lit

Le collecteur énumère les régions activées du compte avec ec2:DescribeRegions ; si l'appel échoue, il se rabat sur une liste fixe de dix-sept régions. Les services globaux (IAM, CloudFront, Route 53) sont lus dans us-east-1.

FamilleRessources lues
Compte et identitésAlias du compte, utilisateurs, groupes, rôles et politiques IAM, rapport d'identifiants, identifiants spécifiques à un service, entrées d'accès EKS, groupes d'utilisateurs Cognito.
CalculInstances EC2, groupes de sécurité, volumes et instantanés EBS, adresses IP élastiques, groupes Auto Scaling, Lightsail, fonctions et couches Lambda, ECS, ECR, clusters et groupes de nœuds EKS.
RéseauVPC et peering, attachements de passerelle de transit, Route 53 et journalisation Resolver, répartiteurs de charge, CloudFront, API Gateway et ses intégrations, WAF, Shield, certificats ACM.
Stockage et donnéesBuckets S3, EFS, instances et clusters RDS, DynamoDB, ElastiCache, OpenSearch, Athena, Glue, EMR, AWS Backup.
Sécurité et journalisationTrails CloudTrail, filtres et alarmes CloudWatch, règles EventBridge, enregistreurs et canaux AWS Config, GuardDuty, Security Hub, clés KMS, Secrets Manager, SNS et SQS.
IABedrock (agents, garde-fous, modèles, bases de connaissances, journalisation) et SageMaker (notebooks, configurations de point de terminaison, modèles, domaines).
AutresAmplify, CodeBuild.

Une région que le compte n'a pas activée, qu'une politique de contrôle de service interdit, ou dans laquelle un service n'a pas de point de terminaison, est ignorée pour ce service. Si certains collecteurs échouent, le compte passe à l'état « Scan partiel » avec le nombre de collecteurs en échec ; ce qui a été lu est conservé.

Limites

  • La détection sur journaux CloudTrail (option EnableRuntimeEvents, file SQS) est en validation interne et n'est pas disponible pour les clients. Vous pouvez laisser l'option à false.
  • L'ARN du principal Ctadel (CtadelPrincipalArn) n'est pas affiché dans l'interface ; il vous est communiqué par l'équipe Ctadel.
  • Si ec2:DescribeRegions échoue, seules les dix-sept régions de la liste de repli sont lues.
  • Les objets S3 de plus de 10 Mo ne sont pas lus.
  • Sans lambda:GetFunction, le code des fonctions Lambda n'est pas lu, seulement leur configuration.
  • Dans un compte membre qui ne peut pas appeler organizations:ListAccounts, une couche Lambda publiée par un autre compte de l'organisation reste d'origine inconnue.
  • L'analyse de disques exige un chemin réseau vers la machine de scan : adresse publique par défaut, sous-réseau privé avec peering ou VPN, ou transport SSM. Voir Réglages du scanner.
  • Sur la copie de disque, les contrôles de conformité système qui exigent un système en cours d'exécution sont rapportés comme ignorés ; voir Hôtes.