# Scaleway

> Connect Scaleway to Tidal Control so compliance tests read your cloud infrastructure's security configuration. Read-only, with nothing created or modified.

Source: https://tidalcontrol.com/docs/integrations/scaleway

Tidal Control's Scaleway integration monitors your cloud infrastructure's security configuration for compliance purposes.

## What this integration monitors

- **IAM users:** MFA status
- **API keys:** Expiry date configuration
- **Instances:** Deletion protection on publicly accessible instances
- **Security groups:** Default inbound policy
- **Databases:** Public access and backup retention
- **KMS keys:** Rotation configuration
- **Container Registry:** Namespace and image visibility
- **Kubernetes clusters:** Private network usage and pending upgrades
- **Load balancers:** TLS configuration on frontends
- **Serverless:** Container and function privacy settings
- **Transactional Email:** SPF and DKIM configuration on domains
- **Cockpit:** Managed alert configuration

## Requirements

- Super User role in Tidal Control
- Scaleway account with access to IAM settings

## Configuration step-by-step plan

We'll create a **Scaleway IAM API key** and retrieve the **organisation ID**, then add the connection in Tidal Control.

**Configuration steps:**

1. **Find your organisation ID**
2. **Create an IAM API key**
3. **Configure the integration in Tidal Control**

## Step 1: Find your organisation ID

- Log in to the [Scaleway Console](https://console.scaleway.com)
- Click your **organisation name** in the top-right corner
- Select **Organisation Settings**
- Copy the **Organisation ID** shown on this page

## Step 2: Create an IAM API key

- In the Scaleway Console, navigate to **IAM → API Keys**
- Click **Generate an API key**
- Choose **Myself** as the bearer, or select a dedicated IAM application
- Enter a description (e.g. `Tidal Control`)
- Set an optional expiry date
- Click **Generate API key**
- **Copy the secret key**: it is only shown once

> **warning:**

**Save the secret key immediately.** Scaleway only shows the full secret key value once at creation. If you close the dialog without copying it, you will need to generate a new API key.

> **info:**

**Permissions:** The API key needs read access to the resources Tidal Control monitors. If you use IAM policies, make sure the key or its bearer has at least read permissions on: instances, databases, KMS, IAM, Kubernetes, Container Registry, serverless containers and functions, load balancers, Transactional Email, VPC, and Cockpit.

## Step 3: Configure the integration in Tidal Control

- Go to **Settings → Integrations** in Tidal Control
- Click the **plus icon** next to **Scaleway**
- Fill in the configuration:
  - **Name:** A descriptive name, e.g. `Scaleway`
  - **Secret Key:** The secret key from step 2
  - **Organisation ID:** The organisation ID from step 1
  - **Zones (optional):** Leave blank to use all default zones, or enter a comma-separated list of zones to limit monitoring
- Click **"Create"** to save the integration

## Configuration fields explained

The integration dialog asks for the following values:

**Name:**
- A descriptive name for this connection
- For example: `Scaleway`, `Scaleway Production`

**Secret Key:**
- The secret part of the Scaleway IAM API key
- Created in step 2
- Keep this value secure

**Organisation ID:**
- The unique identifier of your Scaleway organisation
- Found in step 1

**Zones (optional):**
- A comma-separated list of Scaleway zones to include in monitoring
- Leave blank to use all default zones: `fr-par-1`, `nl-ams-1`, `pl-waw-1`
- Enter only zone identifiers, for example: `fr-par-1,nl-ams-2`

<table>
<thead>
<tr><th>Zone</th><th>Location</th></tr>
</thead>
<tbody>
<tr><td><code>fr-par-1</code></td><td>Paris, France (AZ 1, default)</td></tr>
<tr><td><code>fr-par-2</code></td><td>Paris, France (AZ 2)</td></tr>
<tr><td><code>fr-par-3</code></td><td>Paris, France (AZ 3)</td></tr>
<tr><td><code>nl-ams-1</code></td><td>Amsterdam, Netherlands (AZ 1, default)</td></tr>
<tr><td><code>nl-ams-2</code></td><td>Amsterdam, Netherlands (AZ 2)</td></tr>
<tr><td><code>nl-ams-3</code></td><td>Amsterdam, Netherlands (AZ 3)</td></tr>
<tr><td><code>pl-waw-1</code></td><td>Warsaw, Poland (AZ 1, default)</td></tr>
<tr><td><code>pl-waw-2</code></td><td>Warsaw, Poland (AZ 2)</td></tr>
<tr><td><code>pl-waw-3</code></td><td>Warsaw, Poland (AZ 3)</td></tr>
</tbody>
</table>

## Verification

The integration is working when all of the following are true:

- Settings → Integrations shows Scaleway under **Configured Integrations**
- Scaleway tests are available in the Tests section
- Test refresh delivers results without authentication errors

## Frequently asked questions

**Can I use the same API key for multiple Tidal Control environments?**
Yes, the same API key can be used across different Tidal Control instances.

**Why does the integration use specific zones instead of all zones?**
Scaleway resources are zone-specific. The default zones cover the three main Scaleway regions. If your organisation uses resources in additional zones, add them to the zones field.

**Do I need to be a Scaleway owner to create an API key?**
You need sufficient permissions in Scaleway to create API keys. Organisation owners can always create API keys. IAM users can create API keys if their policy allows it.

## Common problems

**"Secret Key is required"**
- Make sure you entered the secret key, not the access key ID
- The secret key is only shown once. If you did not copy it, generate a new one

**"Organisation ID is required"**
- Find your organisation ID in **Organisation Settings** in the Scaleway Console

**Tests show no data for certain resource types**
- Check that the API key or its IAM application has read permissions for those resource types
- Confirm that those resource types are deployed in the zones configured for this integration

### Still can't figure it out?

Send an email to support@tidalcontrol.com, and we'll get back to you as soon as possible.

> **info:**

**Gather support info:** Note which browser you're using, exact error messages, and which steps you've already tried. This speeds up the solution considerably.
