Ce module facilite la création d'un ou plusieurs compartiments GCS et l'attribution d'autorisations de base sur ceux-ci à des utilisateurs arbitraires.
Les ressources/services/activations/suppressions que ce module va créer/déclencher sont :
Si vous souhaitez uniquement créer un seul bucket, envisagez plutôt d'utiliser le sous-module bucket simple.
Ce module est destiné à être utilisé avec Terraform 0.13+ et testé avec Terraform 1.0+. Si vous constatez des incompatibilités en utilisant Terraform >=0.13, veuillez ouvrir un problème. Si vous n'avez pas effectué de mise à niveau et avez besoin d'une version compatible Terraform 0.12.x de ce module, la dernière version publiée destinée à Terraform 0.12.x est la v1.7.1.
L'utilisation de base de ce module est la suivante :
module "gcs_buckets" {
source = " terraform-google-modules/cloud-storage/google "
version = " ~> 8.0 "
project_id = " <PROJECT ID> "
names = [ " first " , " second " ]
prefix = " my-unique-prefix "
set_admin_roles = true
admins = [ " group:[email protected] " ]
versioning = {
first = true
}
bucket_admins = {
second = " user:[email protected],user:[email protected] "
}
}
Des exemples fonctionnels sont inclus dans le répertoire des exemples.
Nom | Description | Taper | Défaut | Requis |
---|---|---|---|---|
administrateurs | Membres de style IAM qui se verront attribuer des rôles/storage.objectAdmin sur tous les compartiments. | list(string) | [] | Non |
classe automatique | Carte facultative du nom du bucket en minuscules sans préfixe => booléen, la valeur par défaut est false. | map(bool) | {} | Non |
bucket_admins | Carte des noms minuscules sans préfixe => administrateurs par compartiment de style IAM délimités par des virgules. | map(string) | {} | Non |
bucket_creators | Carte des noms minuscules sans préfixe => créateurs par compartiment de style IAM délimités par des virgules. | map(string) | {} | Non |
bucket_hmac_key_admins | Carte du nom sans préfixe en minuscules => Administrateurs de clé HMAC par compartiment de style IAM délimités par des virgules. | map(string) | {} | Non |
bucket_lifecycle_rules | lifecycle_rules supplémentaires pour des compartiments spécifiques. Carte du nom minuscule sans préfixe => liste des règles de cycle de vie à configurer. | carte(ensemble(objet({ | {} | Non |
bucket_policy_only | Désactivez les ACL ad hoc sur les compartiments spécifiés. La valeur par défaut est vrai. Carte du nom minuscule sans préfixe => booléen | map(bool) | {} | Non |
bucket_storage_admins | Carte des noms minuscules sans préfixe => administrateurs de stockage par compartiment de style IAM délimités par des virgules. | map(string) | {} | Non |
bucket_viewers | Carte des noms minuscules sans préfixe => visualiseurs par compartiment de style IAM délimités par des virgules. | map(string) | {} | Non |
cors | Ensemble de cartes d'attributs de type mixte pour les valeurs CORS. Consultez les types d'attributs appropriés ici : https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | Non |
créateurs | Membres de style IAM qui se verront attribuer des rôles/storage.objectCreators sur tous les compartiments. | list(string) | [] | Non |
personnalisé_placement_config | Carte du nom minuscule sans préfixe => objet de configuration de placement personnalisé. Le format est le même que celui décrit dans la documentation du fournisseur https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config | any | {} | Non |
default_event_based_hold | Activez la conservation basée sur les événements pour les nouveaux objets ajoutés à un compartiment spécifique. La valeur par défaut est false. Carte du nom minuscule sans préfixe => booléen | map(bool) | {} | Non |
noms_clés_cryptage | Carte facultative du nom sans préfixe en minuscules => chaîne, les chaînes vides sont ignorées. | map(string) | {} | Non |
dossiers | Carte des noms minuscules sans préfixe => liste des objets de dossier de niveau supérieur. | map(list(string)) | {} | Non |
force_destroy | Carte facultative du nom sans préfixe en minuscules => booléen, la valeur par défaut est false. | map(bool) | {} | Non |
hmac_key_admins | Membres de style IAM qui se verront attribuer des rôles/storage.hmacKeyAdmin sur tous les compartiments. | list(string) | [] | Non |
hmac_service_accounts | Liste des comptes de service HMAC pour accorder l'accès à GCS. | map(string) | {} | Non |
étiquettes | Etiquettes à coller sur les seaux | map(string) | {} | Non |
règles_du cycle de vie | Liste des règles de cycle de vie à configurer. Le format est le même que celui décrit dans la documentation du fournisseur https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule, sauf que condition.matches_storage_class doit être une chaîne délimitée par des virgules. | ensemble(objet({ | [] | Non |
emplacement | Emplacement du seau. | string | "EU" | Non |
enregistrement | Carte du nom minuscule sans préfixe => objet de configuration de journalisation du compartiment. Le format est le même que celui décrit dans la documentation du fournisseur https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging | any | {} | Non |
noms | Suffixes du nom du compartiment. | list(string) | n / A | Oui |
préfixe | Préfixe utilisé pour générer le nom du bucket. | string | "" | Non |
id_projet | ID du projet du compartiment. | string | n / A | Oui |
public_access_prevention | Empêche l'accès public à un compartiment. Les valeurs acceptables sont héritées ou appliquées. En cas d'héritage, le compartiment utilise la prévention de l'accès public, uniquement s'il est soumis à la contrainte de stratégie d'organisation de prévention de l'accès public. | string | "inherited" | Non |
randomize_suffix | Ajoute un suffixe à 4 caractères identique, mais randomisé, à tous les noms de buckets | bool | false | Non |
politique_de rétention | Carte des valeurs de la politique de rétention. Le format est le même que celui décrit dans la documentation du fournisseur https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy | any | {} | Non |
set_admin_roles | Accordez le rôle rôles/storage.objectAdmin aux admins et bucket_admins. | bool | false | Non |
set_creator_roles | Accordez le rôle rôles/storage.objectCreator aux créateurs et aux bucket_creators. | bool | false | Non |
set_hmac_access | Définissez un accès compatible S3 à GCS. | bool | false | Non |
set_hmac_key_admin_roles | Accordez le rôle rôles/storage.hmacKeyAdmin à hmac_key_admins et bucket_hmac_key_admins. | bool | false | Non |
set_storage_admin_roles | Accordez le rôle rôles/storage.admin à storage_admins et bucket_storage_admins. | bool | false | Non |
set_viewer_roles | Accordez le rôle rôles/storage.objectViewer aux téléspectateurs et aux bucket_viewers. | bool | false | Non |
soft_delete_policy | Politiques de suppression logicielle à appliquer. Carte du nom sans préfixe en minuscules => politique de suppression logicielle. Le format est le même que celui décrit dans la documentation du fournisseur https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy | map(any) | {} | Non |
stockage_admins | Membres de style IAM qui se verront attribuer des rôles/storage.admin sur tous les compartiments. | list(string) | [] | Non |
classe_de stockage | Classe de stockage de seau. | string | "STANDARD" | Non |
gestion des versions | Carte facultative du nom sans préfixe en minuscules => booléen, la valeur par défaut est false. | map(bool) | {} | Non |
téléspectateurs | Membres de style IAM qui se verront attribuer des rôles/storage.objectViewer sur tous les compartiments. | list(string) | [] | Non |
site web | Carte des valeurs du site Web. Attributs pris en charge : main_page_suffix, not_found_page | map(any) | {} | Non |
Nom | Description |
---|---|
apphub_service_uri | URI de style CAIS à utiliser par Apphub. |
seau | Ressource de compartiment (à usage unique). |
seaux | Regrouper les ressources sous forme de liste. |
buckets_map | Regroupez les ressources par nom. |
hmac_keys | Liste des clés HMAC. |
nom | Nom du bucket (à usage unique). |
noms | Noms de compartiment. |
liste_de_noms | Liste des noms de compartiments. |
URL | URL du bucket (à usage unique). |
URL | URL de compartiment. |
liste_urls | Liste des URL de compartiment. |
Ces sections décrivent les conditions requises pour utiliser ce module.
Les dépendances suivantes doivent être disponibles :
Les informations d'identification de l'utilisateur ou du compte de service avec les rôles suivants doivent être utilisées pour provisionner les ressources de ce module :
roles/storage.admin
Le module Project Factory et le module IAM peuvent être utilisés en combinaison pour provisionner un compte de service avec les rôles nécessaires appliqués.
Un projet avec les API suivantes activées doit être utilisé pour héberger les ressources de ce module :
storage-api.googleapis.com
Le module Project Factory peut être utilisé pour provisionner un projet avec les API nécessaires activées.
Reportez-vous aux directives de contribution pour plus d'informations sur la contribution à ce module.