5.7 KiB

Description du module

Ce module a pour but de gérer les applications et leur ressources associées dans le cloud public Scaleway.

Fonctionnement du module

  • Ce module prend en charge la gestion des ressources suivantes :
    • Les applications, groupes et policies de l'IAM Scaleway.
    • Les buckets S3 et de leur policy associée.
    • Les file d'attente de type SQS et leurs identifiants associés.

Fonctionnement bucket S3

Pré-requis

  • Une liste de bucket est déclarée au sein de l'application.
  • Pour déclarer des règles de cycle de vie (lifecycle_rules), au moins expiration_days ou le couple transition_days et transition_sc doivent être déclarés.

Fonctionnement

  • Pour chaque bucket de la liste buckets_list, une resource va être déclarée. Dans cette ressource, une lifecycle_rule va être déclarée pour chaque membre de la liste de lifecycle_rule.
  • Pour chaque bucket de la liste buckets_list, une policy est attachée et contient 3 sections :
    • Une section pour autoriser l'application principale à accéder au bucket.
    • Une section pour donner accès aux user_id et application_id des administrateurs.
    • Une section pour donner accès à d'autres user_id pour une application tierce.

Fonctionnement SQS

Pré-requis

  • Avoir activé le module SQS dans l'interface Scaleway -> Messaging.
  • Une liste de queue est déclarée au sein de l'application.

Informations

  • On utilise une resource de type scaleway_mnq_sqs_credentials.admin_creds par projet. En effet, en lui donnant uniquement le droit "can_manage", elle peut créer, supprimer et modifier des queues mais pas accéder à leur contenu.
  • En parallèle, on créé un jeu d'identifiant par application et par queue qui ne disposent que des droits de publication/réception.

Requirements

Name Version
scaleway >= 2.35.0

Providers

Name Version
scaleway >= 2.35.0

Modules

No modules.

Resources

Name Type
scaleway_iam_api_key.keys resource
scaleway_iam_application.apps resource
scaleway_iam_group.groups resource
scaleway_iam_policy.group_policies resource
scaleway_object_bucket.s3_buckets resource
scaleway_object_bucket_policy.s3_policies resource

Inputs

Name Description Type Default Required
admins_user_id List of s3 admin user's ID list(string) [] no
app_desc Application's description string "" no
app_name Name of the application string "changeme" no
app_tags Application's tags map(string) {} no
buckets_list List of the application's buckets
list(object({
bucket_name = string
bucket_region = optional(string)
bucket_versioning = optional(bool)
bucket_tags = optional(map(string))
bucket_policy_actions = optional(list(string))
bucket_lifecycle_rules = optional(list(object({
id = string
enabled = bool
prefix = optional(string)
expiration_days = optional(number)
transition_days = optional(number)
transition_sc = optional(string)
tags = optional(map(string))
})))
other_app_access = optional(list(string))
other_app_policy_actions= optional(list(string))
}))
n/a yes
env App's environment (dev/stg/prd/inf) string "dev" no
policy_permissions Policy permissions for app list(string) [] no
project_id App's project ID string "changeme" no

Outputs

Name Description
api_access_key App access key
api_secret_key App secret key
app_desc Description of the application
app_id ID of the application
app_name Name of the application
bucket_ID ID of the bucket
bucket_endpoint Bucket's endpoint