Avant de commencer
Git et Docker
Python 3.11 ou supérieur
Une identité AWS autorisée à assumer le rôle créé
Le droit de déployer les rôles IAM dans le compte cible
1. Installez Wasteless
git clone https://github.com/wasteless-io/wasteless.git
cd wasteless
./install.shSur Linux compatible, ./install.sh --install-system-deps peut installer les dépendances système. Docker Desktop reste un prérequis externe sur macOS et WSL2.
2. Créez les rôles AWS
Utilisez soit le template CloudFormation onboarding/cloudformation/wasteless-onboarding.yaml, soit le module onboarding/terraform/. Pour une évaluation, désactivez la création du rôle de remédiation.
| Sortie | Usage |
|---|---|
ReadOnlyRoleArn | Collecte et détection |
RemediationRoleArn | Actions AWS optionnelles |
ExternalId | Protection de l'assumption cross-account, si configurée |
3. Démarrez et testez la connexion
wastelessOuvrez http://localhost:8888/setup, renseignez AWS_ROLE_ARN, l'ExternalId éventuel et seulement si nécessaire AWS_WRITE_ROLE_ARN. Utilisez ensuite Test connection, puis Test & save.
| Valeur AWS | Configuration |
|---|---|
ReadOnlyRoleArn | AWS_ROLE_ARN |
RemediationRoleArn | AWS_WRITE_ROLE_ARN, optionnel |
ExternalId | AWS_EXTERNAL_ID, si configuré |
4. Ajoutez Steampipe pour la couverture complète
Les détecteurs load balancer, NAT Gateway, VPC vide et migration gp2 vers gp3 nécessitent Steampipe et son plugin AWS.
brew install turbot/tap/steampipe
steampipe plugin install awsconnection "aws" {
plugin = "aws"
role_arn = "arn:aws:iam::123456789012:role/wasteless-readonly"
regions = ["eu-west-1"]
}5. Lancez la première collecte
wasteless collect
wasteless status- La connexion utilise le rôle AWS en lecture seule
- Une collecte complète ou partielle apparaît dans l'historique
- L'inventaire et les recommandations disponibles sont consultables
- Aucun accès en écriture n'est nécessaire pour détecter
Le temps d'exécution dépend du nombre de ressources, des appels AWS et de la disponibilité de Steampipe.
Si le résultat n'est pas celui attendu
| Symptôme | Vérification |
|---|---|
| Connexion AWS refusée | ARN, principal de confiance et ExternalId |
| Quatre étapes ignorées | command -v steampipe, plugin AWS et fichier aws.spc |
| PostgreSQL indisponible | docker ps puis docker compose up -d postgres |
| Aucune donnée récente | Lancer wasteless collect et lire la sortie |
| Environnement Python absent | Recréer venv et installer requirements.lock |