Identity and Access Management (IAM) allows you to share access to the management of your Scaleway resources and Organization settings, in a controlled and secure manner. With IAM, you can invite other users to your Organization, as well as create IAM applications which represent non-human users with their own API keys. You define permissions for users and applications in your Organization via highly customizable policies. Policies let you specify exactly what rights users and applications (or groups of users and applications) should have within your Organization.
Concepts
Refer to our dedicated IAM concepts pageOpen in new context to find definitions of the different terms referring to IAM.
Quickstart
-
Configure your environment variables.
Code -
Create an application. Replace the parameter values in the request payload with the details of your new application.
Note
The UUIDs used in the following code examples are not real
CodeParameter Description nameREQUIRED The name of your new application organization_idThe ID of your Scaleway Organization descriptionThe description of your application -
Retrieve your application ID from the response.
Code -
Create a policy. Replace the parameter values in the request payload with the details of your new application, including the application ID retrieved in the previous step.
CodeParameter Description nameREQUIRED The name of your new application descriptionThe description of your policy organization_idThe ID of your Scaleway Organization rulesThe rulesOpen in new context of your policy permission_set_namesThe permission sets you want to grant. You can either list all permission sets or find a complete list in the permission sets documentation pageOpen in new context organization_idThe ID of the Scaleway Organization where you want your permission sets to apply. You can add one as the scopeOpen in new context of your policy application_idThe ID of your application Note
To learn more about IAM policies, refer to our dedicated IAM policies reference pageOpen in new context.
-
Create an API key for your application.
CodeParameter Description application_idThe ID of your application expires_atOPTIONAL The expiration date of your API key default_project_idOPTIONAL The Project ID of your preferred Project, to use with Object Storage. If no Project ID is specified, the default project is used. Refer to the Using API Keys with Object Storage documentation pageOpen in new context descriptionThe description of your API key -
Retrieve your access and secret keys from the response.
You can now have an IAM configuration fully set up and can begin working on your Scaleway projects.Note
The secret key is only showed once. Make sure that you copy and store both keys somewhere safe.
Requirement
To perform the following steps, you must first ensure that:
- you have an account and are logged into the Scaleway consoleOpen in new context
- you have created an API keyOpen in new context and that the API key has sufficient IAM permissionsOpen in new context to perform the actions described on this page.
- you have installed curlOpen in new context
Technical Limitations
-
Currently, IAM users cannot be created within Scaleway Organizations, they can only be invited to join them. Refer to the Users, groups and applications reference pageOpen in new context to learn more about users.
-
Access management at resource level is not yet available. You can currently scope the permission sets to a Project or to an Organization. Refer to the Permission sets reference pageOpen in new context to learn more about permission sets.
-
Explicit deny permissions are not yet available. You can currently only explicitly allow access to different products or Organization management features.
Going Further
For more information about IAM, you can check out the following pages:
- Identity and Access Management DocumentationOpen in new context
- Identity and Access Management FAQOpen in new context
- Scaleway Slack CommunityOpen in new context join the #iam channel
- Contact our support teamOpen in new context
- Scaleway CLI for IAMOpen in new context
- Scaleway Provider Terraform Documentation for IAMOpen in new context.
-
A scope, which defines where the permission sets should apply. At Scaleway, a scope can be at Project or Organization level.
- Projects group your Scaleway resources (eg. Instances, Object Storage buckets, Managed Databases etc.) together. An Organization may have many Projects, or just one default Project. If you choose to define scope at Project level, you can select one, many, or all Projects. When you then define the permission sets for this scope, you can give access to different resources within the Project(s).
- An Organization is made of one or several Projects. Billing, IAM, Project management and support are all managed at Organization level, so choose the Organization scope to give access to these features.
-
One or more permission sets (eg. "list all Instances"). A permission set consists of one or multiple permissions to perform actions on resources or features. Each permission set has a clear description, e.g.
InstancesFullAccess,InstancesReadOnly,RelationalDatabasesFullAccess,BillingReadOnly.
InstancesFullAccess.
Permissions sets (eg.InstanceReadAccess) and their scope (eg. "on Project A only") make up IAM rules, which define the access rights that a principal (user, group or application) should have.