# Connecter une organisation Scaleway

Créer une clé API Scaleway en lecture seule pour inventorier les ressources cloud et remonter les constats de posture de sécurité.

> **Accès :** administrateur d’entreprise. Fonctionnalité en **bêta** ; le connecteur doit être activé sur votre plateforme.

## Prérequis

- Être administrateur de l’entreprise dans CISAPP.
- Pouvoir créer une application, une politique et une clé API dans l’**IAM** de l’organisation Scaleway visée (propriétaire ou droits équivalents).
- Une organisation Scaleway ne peut être connectée qu’à **une seule** organisation CISAPP.

## Créer l’accès dans Scaleway

CISAPP n’utilise jamais votre compte personnel : créez une **application IAM** dédiée, en lecture seule.

1. Dans la console Scaleway, **IAM → Applications** : créez une application (par exemple `cisapp-readonly`).
2. **IAM → Politiques** : créez une politique pour cette application avec exactement les jeux de permissions ci-dessous.
3. **IAM → Clés API** : créez une clé API pour l’application, avec une **date d’expiration** (recommandé). Notez la **clé d’accès** et la **clé secrète**.

### Jeux de permissions à accorder

| Portée | Jeux de permissions |
| --- | --- |
| Projets à analyser | `InstancesReadOnly`, `ObjectStorageBucketsRead`, `RelationalDatabasesReadOnly`, `LoadBalancersReadOnly`, `VPCReadOnly`, `KubernetesReadOnly`, `FunctionsReadOnly`, `ContainersReadOnly`, `ContainerRegistryReadOnly`, `BlockStorageReadOnly` |
| Organisation | `IAMReadOnly`, `ProjectReadOnly` |

Si un produit n’est pas accordé, CISAPP l’indique comme « non accordé » dans la synchronisation et analyse le reste. Accordez les jeux de permissions sur **chaque projet** de l’organisation, ou restreignez la connexion aux projets accordés avec le champ **Projets** : sinon, les projets sans ces permissions sont signalés comme non collectés à chaque synchronisation.

**N’accordez jamais** `SecretManagerSecretAccess`, un jeu `*FullAccess` ou `*Manager`, `BillingReadOnly` ni `AllProductsReadOnly` : CISAPP n’en a pas besoin.

> La clé secrète n’est affichée qu’**une seule fois** par Scaleway. CISAPP la stocke chiffrée et ne l’affiche plus jamais.

L’assistant de CISAPP propose aussi un guide repliable avec un exemple en ligne de commande (`scw iam …`). C’est un exemple à adapter : vérifiez les arguments avec `scw iam --help` avant de l’exécuter.

## Connecter dans CISAPP

1. Ouvrez **Mon entreprise → Connecteurs**, puis **Connecter** sur la carte Scaleway.
2. Collez la **clé d’accès** (elle commence par `SCW`) et la **clé secrète**.
3. Indiquez éventuellement les **projets** (identifiants UUID) et les **régions** à analyser. Vide : tous les projets accessibles à la clé et toutes les régions.
4. **Vérifier la clé** : CISAPP teste l’accès auprès de Scaleway avant d’enregistrer quoi que ce soit.
5. Contrôlez l’**organisation Scaleway** affichée, puis **Connecter**. La première synchronisation démarre.

Si vous fermez l’assistant avant la confirmation, la connexion reste **En attente** : **Confirmer le compte** depuis sa fiche.

## Ce que CISAPP collecte

CISAPP lit uniquement des **configurations**, jamais de contenu :

- instances et leurs groupes de sécurité, volumes ;
- buckets de stockage objet (configuration, pas les objets), bases de données managées ;
- load balancers, clusters Kapsule, Functions et Containers, registres de conteneurs, réseaux privés ;
- utilisateurs et clés API IAM (statut MFA, dates d’expiration).

CISAPP ne lit jamais les secrets (Secret Manager), les variables d’environnement, les données utilisateur des instances, ni le fichier d’accès `kubeconfig`, et ne modifie rien dans votre organisation. Les ressources sont visibles dans le menu **Sécurité opérationnelle → Patrimoine cloud** et sa **Cartographie**.

## Constats de posture

Les constats apparaissent dans les constats de sécurité avec la source **Posture Scaleway**. Une règle ne se déclenche que si l’information est certaine : un état inconnu (droit manquant, produit non accordé) ne crée ni ne résout de constat.

- **Réseau** : groupe de sécurité joignable depuis tout Internet (0.0.0.0/0 ou ::/0) sur l’administration à distance (SSH 22, RDP 3389) ou sur un port de base de données courant (3306, 5432, 6379, 27017…) ; politique d’entrée par défaut sur « accepter » pour un groupe attaché à un serveur ; serveur avec IP publique derrière un groupe permissif.
- **Bases de données** : accès public dont l’ACL autorise 0.0.0.0/0, chiffrement au repos désactivé, sauvegardes automatiques désactivées ou aucune sauvegarde prête (une base neuve est signalée jusqu’à sa première sauvegarde), pas de haute disponibilité.
- **Stockage objet** : bucket dont l’ACL ouvre l’accès à tous (`AllUsers`) ou à tout utilisateur authentifié, versioning désactivé ou suspendu.
- **Load balancers** : frontend HTTP (port 80) sans certificat, niveau TLS « old » sur un load balancer qui termine du TLS.
- **Kubernetes** : cluster à mettre à jour sans mise à jour automatique, API ouverte (ACL du cluster qui autorise explicitement 0.0.0.0/0 ou ::/0 ; une ACL vide n’est pas signalée, et un réseau privé ne rend pas l’API privée).
- **Functions, Containers et registres** : fonction ou conteneur public (invocable sans jeton), registre de conteneurs public.
- **IAM** : utilisateur sans authentification multifacteur, clé API sans date d’expiration ou créée il y a plus de 365 jours.

La clé de la connexion elle-même est exclue de ces règles et traitée à part : sans date d’expiration, elle affiche un avertissement sur la fiche ; à moins de 30 jours de l’échéance, un badge **Identifiants bientôt expirés**.

## Remplacer la clé (rotation)

1. Créez une nouvelle clé API pour la même application, avec une date d’expiration.
2. Sur la fiche de la connexion, **Mettre à jour les identifiants** et collez la nouvelle clé d’accès et la clé secrète.
3. La nouvelle clé doit appartenir à la **même organisation Scaleway** ; sinon elle est refusée et la clé actuelle est conservée.
4. Révoquez ensuite l’ancienne clé dans la console Scaleway.

Les projets et régions se modifient depuis la fiche (**Modifier**), sans ressaisir la clé. Retirer un projet ou une région de la connexion retire ses ressources de l’inventaire à la synchronisation suivante.

## Difficultés courantes

| Message | Que faire |
| --- | --- |
| Le connecteur Scaleway est indisponible sur cette instance | Le connecteur n’est pas encore configuré sur votre plateforme : contactez le support. |
| Scaleway a refusé cette clé API | Vérifiez que la clé n’est ni révoquée ni expirée et que la politique accorde au minimum `IAMReadOnly` et `ProjectReadOnly` à l’organisation, en plus des jeux de lecture par produit. |
| Cette organisation Scaleway est déjà connectée par une autre organisation CISAPP | Une organisation Scaleway n’a qu’une connexion : déconnectez-la d’abord de l’autre organisation CISAPP. |
| Cette clé API appartient à une autre organisation Scaleway | Lors d’une rotation, utilisez une clé de la même organisation Scaleway. |
| Identifiants expirés ou refusés | Créez une nouvelle clé et faites la rotation depuis la fiche. |
| Produit « non accordé » | Ajoutez le jeu de permissions correspondant à la politique de l’application. |

## Déconnecter

**Déconnecter** supprime la connexion et l’inventaire cloud associé, et passe ses constats de posture en résolus. Révoquez ensuite la clé API (et l’application si elle n’a plus d’usage) dans **IAM** sur la console Scaleway.

## Résultat attendu

La connexion est active, l’inventaire cloud est alimenté et les constats de posture Scaleway remontent dans CISAPP.

Voir aussi : [Configurer les connecteurs](https://docs.cisapp.eu/organisation/connecteurs).
