Mit diesem Modul können Sie ganz einfach einen oder mehrere GCS-Buckets erstellen und beliebigen Benutzern grundlegende Berechtigungen dafür zuweisen.
Die Ressourcen/Dienste/Aktivierungen/Löschungen, die dieses Modul erstellt/auslöst, sind:
Wenn Sie nur einen einzelnen Bucket erstellen möchten, sollten Sie stattdessen das einfache Bucket-Submodul verwenden.
Dieses Modul ist für die Verwendung mit Terraform 0.13+ gedacht und wurde mit Terraform 1.0+ getestet. Wenn Sie Inkompatibilitäten mit Terraform >=0.13 feststellen, öffnen Sie bitte ein Problem. Wenn Sie kein Upgrade durchgeführt haben und eine mit Terraform 0.12.x kompatible Version dieses Moduls benötigen, ist die letzte für Terraform 0.12.x vorgesehene Version v1.7.1.
Die grundlegende Verwendung dieses Moduls ist wie folgt:
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] "
}
}
Funktionsbeispiele sind im Beispielverzeichnis enthalten.
Name | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
Administratoren | Mitglieder im IAM-Stil, denen die Rolle „roles/storage.objectAdmin“ für alle Buckets zugewiesen wird. | list(string) | [] | NEIN |
Autoklasse | Optionale Zuordnung des Bucket-Namens ohne Präfix in Kleinbuchstaben => boolean, Standardwert ist „false“. | map(bool) | {} | NEIN |
Bucket_admins | Karte von Namen ohne Präfix in Kleinbuchstaben => durch Kommas getrennte IAM-basierte Pro-Bucket-Administratoren. | map(string) | {} | NEIN |
Bucket_creators | Karte der kleingeschriebenen Namen ohne Präfix => durch Kommas getrennte IAM-Stil-pro-Bucket-Ersteller. | map(string) | {} | NEIN |
Bucket_hmac_key_admins | Karte des kleingeschriebenen Namens ohne Präfix => durch Kommas getrennte HMAC-Schlüsseladministratoren im IAM-Stil pro Bucket. | map(string) | {} | NEIN |
Bucket_lifecycle_rules | Zusätzliche Lebenszyklusregeln für bestimmte Buckets. Karte des Namens ohne Präfix in Kleinbuchstaben => Liste der zu konfigurierenden Lebenszyklusregeln. | map(set(object({ | {} | NEIN |
Bucket_policy_only | Deaktivieren Sie Ad-hoc-ACLs für bestimmte Buckets. Der Standardwert ist „true“. Zuordnung des Namens in Kleinbuchstaben ohne Präfix => boolean | map(bool) | {} | NEIN |
Bucket_storage_admins | Karte der kleingeschriebenen Namen ohne Präfix => durch Kommas getrennte IAM-basierte Speicheradministratoren pro Bucket. | map(string) | {} | NEIN |
Bucket_viewers | Karte von Namen ohne Präfix in Kleinbuchstaben => durch Kommas getrennte Bucket-Viewer im IAM-Stil. | map(string) | {} | NEIN |
kors | Satz von Karten gemischter Typattribute für CORS-Werte. Passende Attributtypen finden Sie hier: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | NEIN |
Schöpfer | Mitglieder im IAM-Stil, denen für alle Buckets die Rolle „roles/storage.objectCreators“ zugewiesen wird. | list(string) | [] | NEIN |
custom_placement_config | Karte des Namens ohne Präfix in Kleinbuchstaben => Konfigurationsobjekt für benutzerdefinierte Platzierung. Das Format ist dasselbe wie in der Anbieterdokumentation https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config beschrieben | any | {} | NEIN |
default_event_based_hold | Aktivieren Sie ereignisbasiertes Halten für neue Objekte, die einem bestimmten Bucket hinzugefügt werden. Der Standardwert ist „false“. Zuordnung des Namens in Kleinbuchstaben ohne Präfix => boolean | map(bool) | {} | NEIN |
Verschlüsselungsschlüsselnamen | Optionale Zuordnung von Namen ohne Präfix in Kleinbuchstaben => Zeichenfolge, leere Zeichenfolgen werden ignoriert. | map(string) | {} | NEIN |
Ordner | Karte des kleingeschriebenen Namens ohne Präfix => Liste der Ordnerobjekte der obersten Ebene. | map(list(string)) | {} | NEIN |
force_destroy | Optionale Zuordnung des Namens in Kleinbuchstaben ohne Präfix => boolean, Standardwert ist „false“. | map(bool) | {} | NEIN |
hmac_key_admins | Mitglieder im IAM-Stil, denen für alle Buckets die Rolle „roles/storage.hmacKeyAdmin“ gewährt wird. | list(string) | [] | NEIN |
hmac_service_accounts | Liste der HMAC-Dienstkonten, die Zugriff auf GCS gewähren. | map(string) | {} | NEIN |
Etiketten | Etiketten zum Anbringen an den Eimern | map(string) | {} | NEIN |
lifecycle_rules | Liste der zu konfigurierenden Lebenszyklusregeln. Das Format ist dasselbe wie in der Anbieterdokumentation https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule beschrieben, außer dass „condition.matches_storage_class“ eine durch Kommas getrennte Zeichenfolge sein sollte. | set(object({ | [] | NEIN |
Standort | Bucket-Standort. | string | "EU" | NEIN |
Protokollierung | Karte des kleingeschriebenen Namens ohne Präfix => Bucket-Logging-Konfigurationsobjekt. Das Format ist dasselbe wie in der Anbieterdokumentation https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging beschrieben | any | {} | NEIN |
Namen | Bucket-Namenssuffixe. | list(string) | n / A | Ja |
Präfix | Präfix, das zum Generieren des Bucket-Namens verwendet wird. | string | "" | NEIN |
Projekt_ID | Bucket-Projekt-ID. | string | n / A | Ja |
public_access_prevention | Verhindert den öffentlichen Zugriff auf einen Bucket. Akzeptable Werte werden vererbt oder erzwungen. Bei einer Vererbung verwendet der Bucket die Verhinderung des öffentlichen Zugriffs nur dann, wenn der Bucket der Richtlinieneinschränkung der Organisation zur Verhinderung des öffentlichen Zugriffs unterliegt. | string | "inherited" | NEIN |
randomize_suffix | Fügt allen Bucket-Namen ein identisches, aber zufälliges 4-stelliges Suffix hinzu | bool | false | NEIN |
Aufbewahrungsrichtlinie | Karte der Aufbewahrungsrichtlinienwerte. Das Format ist dasselbe wie in der Anbieterdokumentation https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy beschrieben | any | {} | NEIN |
set_admin_roles | Gewähren Sie Administratoren und Bucket_Admins die Rolle „roles/storage.objectAdmin“. | bool | false | NEIN |
set_creator_roles | Erteilen Sie Erstellern und Bucket_creators die Rolle „roles/storage.objectCreator“. | bool | false | NEIN |
set_hmac_access | Stellen Sie den S3-kompatiblen Zugriff auf GCS ein. | bool | false | NEIN |
set_hmac_key_admin_roles | Gewähren Sie hmac_key_admins und Bucket_hmac_key_admins die Rolle „roles/storage.hmacKeyAdmin“. | bool | false | NEIN |
set_storage_admin_roles | Gewähren Sie „storage_admins“ und „bucket_storage_admins“ die Rolle „roles/storage.admin“. | bool | false | NEIN |
set_viewer_roles | Gewähren Sie Viewern und Bucket_Viewern die Rolle „roles/storage.objectViewer“. | bool | false | NEIN |
soft_delete_policy | Anzuwendende Soft-Delete-Richtlinien. Karte des Namens in Kleinbuchstaben ohne Präfix => Soft-Delete-Richtlinie. Das Format ist dasselbe wie in der Anbieterdokumentation https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy beschrieben | map(any) | {} | NEIN |
storage_admins | Mitglieder im IAM-Stil, denen für alle Buckets die Rolle „roles/storage.admin“ gewährt wird. | list(string) | [] | NEIN |
Speicherklasse | Bucket-Speicherklasse. | string | "STANDARD" | NEIN |
Versionierung | Optionale Zuordnung des Namens in Kleinbuchstaben ohne Präfix => boolean, Standardwert ist „false“. | map(bool) | {} | NEIN |
Zuschauer | Mitglieder im IAM-Stil, denen für alle Buckets die Rolle „roles/storage.objectViewer“ gewährt wird. | list(string) | [] | NEIN |
Webseite | Karte der Website-Werte. Unterstützte Attribute: main_page_suffix, not_found_page | map(any) | {} | NEIN |
Name | Beschreibung |
---|---|
apphub_service_uri | URI im CAIS-Stil, der von Apphub verwendet werden soll. |
Eimer | Bucket-Ressource (zur einmaligen Verwendung). |
Eimer | Bucket-Ressourcen als Liste. |
Buckets_map | Bucket-Ressourcen nach Namen. |
hmac_keys | Liste der HMAC-Schlüssel. |
Name | Bucket-Name (zur einmaligen Verwendung). |
Namen | Bucket-Namen. |
Namensliste | Liste der Bucket-Namen. |
URL | Bucket-URL (zur einmaligen Verwendung). |
URLs | Bucket-URLs. |
URL-Liste | Liste der Bucket-URLs. |
In diesen Abschnitten werden die Anforderungen für die Verwendung dieses Moduls beschrieben.
Die folgenden Abhängigkeiten müssen verfügbar sein:
Zur Bereitstellung der Ressourcen dieses Moduls müssen Benutzer- oder Dienstkontoanmeldeinformationen mit den folgenden Rollen verwendet werden:
roles/storage.admin
Das Project Factory-Modul und das IAM-Modul können in Kombination verwendet werden, um ein Dienstkonto mit den erforderlichen Rollen bereitzustellen.
Zum Hosten der Ressourcen dieses Moduls muss ein Projekt mit den folgenden aktivierten APIs verwendet werden:
storage-api.googleapis.com
Das Project Factory-Modul kann verwendet werden, um ein Projekt mit aktivierten erforderlichen APIs bereitzustellen.
Informationen zum Mitwirken an diesem Modul finden Sie in den Beitragsrichtlinien.