- Intégrations & API
- Intégrations
- Cloud
- AWS
Connecter AWS à votre inventaire d'actifs
Le connecteur AWS lit les ressources exposées sur Internet de vos comptes AWS et les conserve dans l'inventaire d'actifs d'Ostorlab, afin que vous puissiez les scanner et les suivre dans le cadre de votre surface d'attaque. Il n'a besoin que d'un accès en lecture.
Que collecte le connecteur ?
Pour chaque compte, le connecteur lit les ressources suivantes. Les adresses privées sont ignorées.
| Portée | Ressources |
|---|---|
| Chaque région | Instances EC2 avec une adresse publique, adresses IP Elastic, équilibreurs de charge Classic, Application et Network exposés sur Internet, instances RDS accessibles publiquement |
| Global | Zones hébergées publiques Route 53 avec leurs enregistrements A, AAAA et CNAME (les enregistrements génériques sont ignorés), distributions CloudFront avec leur domaine par défaut et leurs noms de domaine alternatifs |
Seuls les types de ressources listés ci-dessus sont importés ; les buckets S3, les fonctions Lambda, API Gateway, ECS et EKS ne sont pas collectés.
Chaque ressource devient un nœud cloud dans l'inventaire, rattaché à son compte AWS. Les adresses IP publiques et les noms d'hôte qu'elle expose deviennent des actifs IP et domaine ordinaires, que le reste de la plateforme peut scanner.
De quoi ai-je besoin avant de commencer ?
- Une offre Ostorlab qui inclut les intégrations. Sinon, Ostorlab répond « Your organisation does not have the necessary permissions to run this integration. »
- L'ID à 12 chiffres du compte AWS à connecter.
- L'autorisation, dans ce compte, de créer une pile CloudFormation qui crée des ressources IAM (ou de créer un utilisateur IAM, pour la méthode des clés d'accès).
- Un propriétaire Ostorlab pour les actifs importés. Créez-en un au préalable si nécessaire.
Configurer l'accès dans AWS
Ouvrez Library > Integrations, sélectionnez la catégorie Cloud, puis la carte AWS. L'onglet Configuration commence par Étape 1 : préparez votre compte AWS.

Choisissez l'une des deux méthodes d'authentification. Le rôle inter-comptes est à privilégier : il ne nécessite aucune clé de longue durée.
Option 1 : rôle IAM inter-comptes (recommandé)
Le rôle OstorlabReadOnly fait confiance au rôle de synchronisation AWS d'Ostorlab et ne l'accepte que s'il présente l'ID externe de votre organisation.
-
Dans l'Étape 1, cliquez sur Rôle IAM inter-comptes : télécharger le fichier de configuration. Vous obtenez le modèle CloudFormation
ostorlab-read-only-role.yaml. Le bloc Paramètres à utiliser affiche les trois valeurs déjà présentes dans le modèle : les paramètresOstorlabPrincipal,ExternalIdetRoleName.
-
Dans la console CloudFormation du compte, créez une pile à partir du modèle. Conservez les paramètres par défaut (
OstorlabPrincipal,ExternalId,RoleName) et confirmez que CloudFormation peut créer des ressources IAM. Vous pouvez aussi utiliser l'AWS CLI :aws cloudformation create-stack --stack-name ostorlab-read-only \ --template-body file://ostorlab-read-only-role.yaml \ --capabilities CAPABILITY_NAMED_IAM aws cloudformation describe-stacks --stack-name ostorlab-read-only --no-cli-pager \ --query "Stacks[0].Outputs[?OutputKey=='RoleArn'].OutputValue" --output text -
Lorsque la pile est terminée, copiez sa sortie
RoleArn, par exemplearn:aws:iam::123456789012:role/OstorlabReadOnly.
Le rôle n'accorde que ces actions de lecture, sur toutes les ressources :
ec2:DescribeRegions
ec2:DescribeInstances
ec2:DescribeAddresses
elasticloadbalancing:DescribeLoadBalancers
route53:ListHostedZones
route53:ListResourceRecordSets
cloudfront:ListDistributions
rds:DescribeDBInstances
Plusieurs comptes avec AWS Organizations
- Depuis le compte de gestion, activez l'accès approuvé pour AWS CloudFormation StackSets dans AWS Organizations. Dans la console CloudFormation, ouvrez StackSets et choisissez Enable trusted access, ou exécutez
aws organizations enable-aws-service-access --service-principal member.org.stacksets.cloudformation.amazonaws.com. Sans lui, les ensembles de piles gérés par le service ne peuvent pas être créés. - Depuis le compte de gestion, ouvrez CloudFormation StackSets et créez un ensemble de piles à partir du même modèle, avec des autorisations gérées par le service.
- Déployez-le sur les unités organisationnelles ou les comptes à connecter, dans une seule région : les rôles IAM sont globaux.
- Créez un connecteur Ostorlab pour le compte dont vous avez copié l'ARN du rôle, et listez les autres ID de compte dans Comptes membres AWS Organizations (optionnel).
Ostorlab déduit
arn:aws:iam::<account id>:role/OstorlabReadOnlypour chaque compte membre.
Option 2 : clés d'accès
Utilisez cette méthode si vous ne pouvez pas créer de rôle inter-comptes. Elle ne lit que le compte propre du connecteur.
- Dans l'Étape 1, cliquez sur Clés d'accès : télécharger le fichier de configuration. Vous obtenez
ostorlab-read-only-user.yaml. - Créez-en une pile dans le compte. Elle crée l'utilisateur IAM
OstorlabReadOnly, sans accès à la console, avec une politique en ligne qui autorise exactement les actions listées ci-dessus. -
Créez une clé d'accès pour cet utilisateur et conservez la paire pour le formulaire du connecteur :
aws iam create-access-key --user-name OstorlabReadOnly --no-cli-pager -
Pour renouveler la clé, relancez la commande
aws iam create-access-key --user-name OstorlabReadOnlyde l'étape 3 afin de créer la clé de remplacement (un utilisateur IAM détient au plus deux clés d'accès), mettez à jour le connecteur avec la nouvelle paire, puis supprimez ou désactivez la clé précédente.
Tip
La clé d'accès secrète est chiffrée au repos et n'est plus jamais affichée dans Ostorlab. Supprimez toute copie enregistrée localement une fois le connecteur opérationnel.
Ajouter le connecteur
-
Dans l'onglet Configuration, sous Étape 2 : connecteurs AWS, cliquez sur Ajouter un connecteur (ou Ajouter un autre connecteur).

-
Remplissez le formulaire, puis cliquez sur Créer.

| Champ | Ce qu'il faut saisir |
|---|---|
| Nom | Un nom unique dans votre organisation, par exemple AWS Production. |
| ID de compte AWS | Le compte à 12 chiffres qui détient le rôle ou les clés. |
| Régions | Les régions à lire, sous forme de codes de région AWS tels que eu-west-1. Laissez vide pour lire toutes les régions activées. |
| Méthode d'authentification | Rôle IAM inter-comptes ou Clés d'accès. |
| ARN du rôle | Méthode du rôle uniquement. L'ARN du rôle OstorlabReadOnly. Il doit appartenir à l'ID de compte AWS ci-dessus. |
| Comptes membres AWS Organizations (optionnel) | Méthode du rôle uniquement. Un ID de compte à 12 chiffres par ligne. Le rôle OstorlabReadOnly doit exister dans chacun. |
| ID de clé d'accès et Clé d'accès secrète | Méthode des clés d'accès uniquement. |
| Propriétaire | Obligatoire. Les actifs importés sont rattachés à ce propriétaire. |
| Emplacement | Emplacement optionnel des actifs importés. |
| Actif | Les connecteurs inactifs sont ignorés par la synchronisation planifiée. |
Les clés d'accès et les comptes membres ne peuvent pas être combinés : les clés d'accès ne lisent que le compte propre du connecteur.
Tester la connexion
Cliquez sur Tester la connexion dans la ligne du connecteur. Le test lit les données de votre compte sans rien importer.

Quatre vérifications s'exécutent, dans l'ordre, et celles d'un compte s'arrêtent à la première qui échoue :
| Vérification | Ce qu'elle contrôle |
|---|---|
| Identifiants | Ostorlab a obtenu des identifiants pour le compte. Pour les clés d'accès, elle confirme aussi que les clés appartiennent au compte du connecteur. |
| Permissions | Le rôle ou l'utilisateur est autorisé à appeler route53:ListHostedZones. |
| Périmètres | Les régions qui seront lues. La vérification échoue si aucune région n'est activée. |
| Ressource exemple | Ostorlab lit les IP Elastic de la première région. La vérification réussit aussi si le compte n'en a aucune. |
Pour un connecteur avec des comptes membres, chaque compte a ses propres vérifications, chaque message commençant par l'ID du compte.

Synchroniser le connecteur
Chaque connecteur actif se synchronise automatiquement toutes les douze heures. Pour importer immédiatement, cliquez sur Synchroniser maintenant dans la ligne du connecteur.

Une notification confirme la tâche (Synchronisation lancée (tâche ...)). Une synchronisation est refusée si le connecteur est inactif ou si une synchronisation du même connecteur est déjà en cours.

Lire les exécutions de synchronisation et les erreurs
Cliquez sur Synchronisations récentes pour voir les exécutions d'un connecteur.

| Colonne | Signification |
|---|---|
| Statut | En cours, Succès, Partiel (certains périmètres ont échoué, le reste a été importé) ou Échec (la synchronisation n'a pas pu aboutir, par exemple parce qu'aucun identifiant n'a été accepté). |
| Ressources | Ressources trouvées lors de cette exécution. |
| Créés, Mis à jour | Actifs et nœuds nouveaux et modifiés. Le nombre de créés inclut les actifs IP et nom d'hôte en plus des nœuds. |
| Obsolètes | Ressources que le connecteur a marquées cloud:stale parce qu'elles n'ont pas été vues lors de cette exécution. |
| Erreurs | Le nombre d'erreurs de périmètre. Cliquez dessus pour les lister. |
Une région ou un service en échec n'arrête jamais les autres périmètres : il est signalé comme une erreur et l'exécution se termine en Partiel.
Chaque erreur nomme le périmètre sous la forme <ID de compte>/<région> / <service>, par exemple 123456789012/eu-central-1 / rds, suivi du message d'AWS.

Note
Les ressources qui disparaissent d'AWS ne sont marquées cloud:stale qu'après une exécution sans aucune erreur de périmètre. Elles ne sont jamais supprimées de l'inventaire. Le tag est retiré lorsqu'une synchronisation ultérieure revoit la ressource.
Une exécution restée En cours pendant plus de deux heures est considérée comme arrêtée : elle ne bloque plus une nouvelle synchronisation, et la prochaine synchronisation planifiée la marque Échec.
Consulter les actifs dans l'inventaire
Les actifs importés appartiennent au propriétaire et à l'emplacement que vous avez choisis. Chacun porte le tag cloud:aws.
- Ouvrez Inventory > Assets.
-
Ouvrez le panneau de recherche, allez dans l'onglet Tags, définissez le nom du tag sur
cloudet la valeur suraws, puis cliquez sur Search.
-
Pour affiner la liste, filtrez sur les autres tags ajoutés par le connecteur :
aws:account(l'ID du compte),aws:region,aws:resource(l'ARN) etaws:connector(l'ID du connecteur).

Suivre le chemin de découverte
Ouvrez un nœud cloud, tel qu'un équilibreur de charge, pour voir sa cible, ses tags, son propriétaire et son emplacement. La carte Discovery Path montre l'origine du nœud : le compte AWS, puis sa ressource parente. Les adresses publiques et les noms d'hôte d'un nœud citent ce nœud dans leur propre chemin de découverte, ce qui permet de toujours savoir quel compte et quelle ressource les exposent.

Modifier, suspendre ou supprimer le connecteur
-
Modifier permet de changer le nom, les régions, la méthode d'authentification, le propriétaire, l'emplacement et l'interrupteur Actif. Laissez un secret enregistré vide pour le conserver, ou saisissez-en un nouveau pour le remplacer. Pour remplacer la clé d'accès secrète, saisissez le nouvel ID de clé d'accès complet avec le nouveau secret : l'ID et le secret forment une paire. Changer de méthode d'authentification efface les champs de la précédente.

-
Désactivez Actif pour suspendre la synchronisation planifiée tout en conservant le connecteur.
- Supprimer retire le connecteur : les actifs déjà importés restent dans l'inventaire et les synchronisations futures s'arrêtent.
- Pour retirer aussi l'accès d'Ostorlab dans AWS, supprimez la pile CloudFormation (elle supprime le rôle ou l'utilisateur
OstorlabReadOnly) et, pour la méthode des clés d'accès, supprimez la clé d'accès.
Dépannage
| Symptôme | À vérifier |
|---|---|
| « AWS connections are not available right now. Try again later. » | Un problème du côté d'Ostorlab, pas dans votre compte. Réessayez plus tard et contactez le support s'il persiste. |
La vérification Permissions échoue avec AccessDenied |
La pile a été modifiée ou supprimée, ou la relation d'approbation du rôle a été éditée. Conservez les paramètres par défaut : le rôle ne fait confiance qu'au principal d'Ostorlab avec votre ID externe. |
| « The access keys belong to AWS account ... not to the connector's account » | Les clés ont été créées dans un autre compte que l'ID de compte AWS du connecteur. |
SignatureDoesNotMatch ou InvalidClientTokenId |
L'ID de clé d'accès ou le secret est incorrect. Saisissez-les de nouveau tous les deux. |
| Erreur de formulaire : « Le rôle doit appartenir à l'ID de compte AWS ci-dessus. » | L'ID de compte de l'ARN du rôle diffère de l'ID de compte AWS du connecteur. |
Synchronisation Partiel avec AccessDenied sur un service |
Le rôle ou l'utilisateur n'a pas l'une des actions de lecture ci-dessus pour ce service. Redéployez le modèle téléchargé. |
| « The cloud connector is disabled. » | Activez Actif dans le formulaire de modification du connecteur. |
| « A sync of this cloud connector is already running. » | Attendez la fin de la synchronisation en cours. |
| Des ressources attendues sont absentes | Vérifiez les Régions du connecteur, et que la ressource est exposée sur Internet (adresse publique, équilibreur de charge exposé, zone hébergée publique). |
Étapes suivantes
- Découverte de la surface d'attaque
Passez en revue, confirmez et surveillez les actifs que vous avez importés. - Recherche avancée
Combinez les tags cloud avec d'autres filtres d'actifs. - Connecter Google Cloud
Importez les ressources de vos projets Google Cloud. - Connecter Azure
Importez les ressources de vos abonnements Azure.