Connect a Scaleway organization
Create a read-only Scaleway API key to inventory cloud resources and report security posture findings.
Access: organization administrator. Beta feature; the connector must be enabled on your platform.
Prerequisites
- Be an organization administrator in CISAPP.
- Be able to create an application, a policy and an API key in the IAM of the target Scaleway organization (owner or equivalent rights).
- A Scaleway organization can only be connected to one CISAPP organization.
Create the access in Scaleway
CISAPP never uses your personal account: create a dedicated, read-only IAM application.
- In the Scaleway console, IAM → Applications: create an application (for example
cisapp-readonly). - IAM → Policies: create a policy for this application with exactly the permission sets below.
- IAM → API keys: create an API key for the application, with an expiration date (recommended). Note the access key and the secret key.
Permission sets to grant
| Scope | Permission sets |
|---|---|
| Projects to analyze | InstancesReadOnly, ObjectStorageBucketsRead, RelationalDatabasesReadOnly, LoadBalancersReadOnly, VPCReadOnly, KubernetesReadOnly, FunctionsReadOnly, ContainersReadOnly, ContainerRegistryReadOnly, BlockStorageReadOnly |
| Organization | IAMReadOnly, ProjectReadOnly |
If a product is not granted, CISAPP reports it as "not granted" in the synchronization and analyzes the rest. Grant the permission sets on every project of the organization, or restrict the connection to the granted projects with the Projects field: otherwise projects without these permissions are reported as not collected at every synchronization.
Never grant SecretManagerSecretAccess, any *FullAccess or *Manager set, BillingReadOnly or AllProductsReadOnly: CISAPP does not need them.
Scaleway shows the secret key only once. CISAPP stores it encrypted and never displays it again.
The CISAPP wizard also offers a collapsible guide with a command-line example (scw iam …). It is an example to adapt: check the arguments with scw iam --help before running it.
Connect in CISAPP
- Open My company → Connectors, then Connect on the Scaleway card.
- Paste the access key (it starts with
SCW) and the secret key. - Optionally list the projects (UUID identifiers) and the regions to analyze. Empty: every project the key can access and every region.
- Verify the key: CISAPP tests access with Scaleway before saving anything.
- Check the displayed Scaleway organization, then Connect. The first synchronization starts.
If you close the wizard before confirmation, the connection stays Pending: use Confirm the account from its record.
What CISAPP collects
CISAPP only reads configuration, never content:
- instances and their security groups, volumes;
- object storage buckets (configuration, not the objects), managed databases;
- load balancers, Kapsule clusters, Functions and Containers, container registries, private networks;
- IAM users and API keys (MFA status, expiration dates).
CISAPP never reads secrets (Secret Manager), environment variables, instance user data or the kubeconfig access file, and changes nothing in your organization. Resources appear in the Operational Safety → Cloud inventory menu entry and its Map view.
Posture findings
Findings appear in security findings with the Scaleway posture source. A rule only triggers when the information is certain: an unknown state (missing permission, product not granted) neither creates nor resolves a finding.
- Network: security group reachable from the whole Internet (0.0.0.0/0 or ::/0) on remote administration (SSH 22, RDP 3389) or on a common database port (3306, 5432, 6379, 27017…); inbound default policy set to "accept" on a group attached to a server; server with a public IP behind a permissive group.
- Databases: public access whose ACL allows 0.0.0.0/0, encryption at rest disabled, automatic backups disabled or no ready backup (a new database is flagged until its first backup), no high availability.
- Object storage: bucket whose ACL opens access to everyone (
AllUsers) or to any authenticated user, versioning disabled or suspended. - Load balancers: HTTP frontend (port 80) without a certificate, TLS level "old" on a load balancer that terminates TLS.
- Kubernetes: cluster to upgrade without automatic upgrade, open API (cluster ACL that explicitly allows 0.0.0.0/0 or ::/0; an empty ACL is not reported, and a private network does not make the API private).
- Functions, Containers and registries: public function or container (invocable without a token), public container registry.
- IAM: user without multi-factor authentication, API key without an expiration date or created more than 365 days ago.
The connection's own key is excluded from these rules and handled separately: without an expiration date it shows a warning on the record; less than 30 days before expiry, a Credentials expiring soon badge.
Replace the key (rotation)
- Create a new API key for the same application, with an expiration date.
- On the connection record, Update credentials and paste the new access key and secret key.
- The new key must belong to the same Scaleway organization; otherwise it is refused and the current key is kept.
- Then revoke the old key in the Scaleway console.
Projects and regions can be changed from the record (Edit), without re-entering the key. Removing a project or region from the connection removes its resources from the inventory at the next sync.
Common issues
| Message | What to do |
|---|---|
| The Scaleway connector is unavailable on this instance | The connector is not configured on your platform yet: contact support. |
| Scaleway refused this API key | Check that the key is neither revoked nor expired and that the policy grants at least IAMReadOnly and ProjectReadOnly on the organization, in addition to the per-product read sets. |
| This Scaleway organization is already connected by another CISAPP organization | A Scaleway organization has a single connection: disconnect it from the other CISAPP organization first. |
| This API key belongs to another Scaleway organization | When rotating, use a key from the same Scaleway organization. |
| Expired or refused credentials | Create a new key and rotate it from the record. |
| Product "not granted" | Add the matching permission set to the application's policy. |
Disconnect
Disconnect deletes the connection and its cloud inventory, and marks its posture findings as resolved. Then revoke the API key (and the application if it is no longer used) in IAM in the Scaleway console.
Expected result
The connection is active, the cloud inventory is populated and Scaleway posture findings appear in CISAPP.
See also: Configure connectors.