Este módulo facilita la creación de uno o más depósitos de GCS y les asigna permisos básicos a usuarios arbitrarios.
Los recursos/servicios/activaciones/eliminaciones que este módulo creará/activará son:
Si solo desea crear un único depósito, considere utilizar el submódulo de depósito simple.
Este módulo está diseñado para usarse con Terraform 0.13+ y probado con Terraform 1.0+. Si encuentra incompatibilidades al usar Terraform>=0.13, abra un problema. Si no ha actualizado y necesita una versión de este módulo compatible con Terraform 0.12.x, la última versión lanzada destinada a Terraform 0.12.x es la v1.7.1.
El uso básico de este módulo es el siguiente:
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] "
}
}
Los ejemplos funcionales se incluyen en el directorio de ejemplos.
Nombre | Descripción | Tipo | Por defecto | Requerido |
---|---|---|---|---|
administradores | Miembros de estilo IAM a quienes se les otorgarán roles/storage.objectAdmin en todos los depósitos. | list(string) | [] | No |
autoclase | Mapa opcional de nombre de depósito en minúsculas sin prefijo => booleano, el valor predeterminado es falso. | map(bool) | {} | No |
administradores_de_cubo | Mapa de nombre sin prefijo en minúsculas => administradores por depósito de estilo IAM delimitados por comas. | map(string) | {} | No |
creadores de cubos | Mapa de nombre sin prefijo en minúsculas => creadores por depósito de estilo IAM delimitados por comas. | map(string) | {} | No |
cubo_hmac_key_admins | Mapa de nombre sin prefijo en minúsculas => administradores de claves HMAC por depósito de estilo IAM delimitados por comas. | map(string) | {} | No |
reglas_del_ciclo_de_vida_del_bucket | Reglas de ciclo de vida adicionales para depósitos específicos. Mapa de nombre sin prefijo en minúsculas => lista de reglas de ciclo de vida para configurar. | mapa(conjunto(objeto({ | {} | No |
cubo_policy_only | Deshabilite las ACL ad-hoc en depósitos específicos. El valor predeterminado es verdadero. Mapa de nombre en minúsculas sin prefijo => booleano | map(bool) | {} | No |
depósitos_almacenamiento_admins | Mapa de nombre sin prefijo en minúsculas => administradores de almacenamiento por depósito de estilo IAM delimitados por comas. | map(string) | {} | No |
visores de cubos | Mapa de nombre sin prefijo en minúsculas => visores por depósito de estilo IAM delimitados por comas. | map(string) | {} | No |
cors | Conjunto de mapas de atributos de tipo mixto para valores CORS. Vea los tipos de atributos apropiados aquí: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | No |
creadores | Miembros de estilo IAM a quienes se les otorgarán roles/storage.objectCreators en todos los depósitos. | list(string) | [] | No |
configuración_ubicación_personalizada | Mapa de nombre sin prefijo en minúsculas => objeto de configuración de ubicación personalizada. El formato es el mismo que se describe en la documentación del proveedor https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config | any | {} | No |
default_event_based_hold | Habilite la retención basada en eventos para nuevos objetos agregados a un depósito específico. El valor predeterminado es falso. Mapa de nombre en minúsculas sin prefijo => booleano | map(bool) | {} | No |
nombres_clave_cifrado | Mapa opcional de nombre en minúsculas sin prefijo => cadena, las cadenas vacías se ignoran. | map(string) | {} | No |
carpetas | Mapa de nombre en minúsculas sin prefijo => lista de objetos de carpeta de nivel superior. | map(list(string)) | {} | No |
fuerza_destruir | Mapa opcional de nombre en minúsculas sin prefijo => booleano, el valor predeterminado es falso. | map(bool) | {} | No |
hmac_key_admins | Miembros de estilo IAM a quienes se les otorgarán roles/storage.hmacKeyAdmin en todos los depósitos. | list(string) | [] | No |
hmac_service_accounts | Lista de cuentas de servicio HMAC para otorgar acceso a GCS. | map(string) | {} | No |
etiquetas | Etiquetas para colocar en los cubos. | map(string) | {} | No |
reglas_ciclo_vida | Lista de reglas de ciclo de vida para configurar. El formato es el mismo que se describe en la documentación del proveedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule excepto que condition.matches_storage_class debe ser una cadena delimitada por comas. | establecer (objeto ({ | [] | No |
ubicación | Ubicación del cubo. | string | "EU" | No |
explotación florestal | Mapa de nombre sin prefijo en minúsculas => objeto de configuración de registro de depósito. El formato es el mismo que se describe en la documentación del proveedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging | any | {} | No |
nombres | Sufijos de nombres de depósitos. | list(string) | n / A | Sí |
prefijo | Prefijo utilizado para generar el nombre del depósito. | string | "" | No |
id_proyecto | ID del proyecto del depósito. | string | n / A | Sí |
prevención_de_acceso_público | Impide el acceso público a un depósito. Los valores aceptables se heredan o se aplican. Si se hereda, el depósito utiliza la prevención de acceso público, solo si el depósito está sujeto a la restricción de política de la organización de prevención de acceso público. | string | "inherited" | No |
sufijo_aleatorio | Agrega un sufijo de 4 caracteres idéntico, pero aleatorio, a todos los nombres de depósitos | bool | false | No |
política_de_retención | Mapa de valores de la política de retención. El formato es el mismo que se describe en la documentación del proveedor https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy | any | {} | No |
establecer_admin_roles | Otorgue el rol roles/storage.objectAdmin a administradores y bucket_admins. | bool | false | No |
set_creator_roles | Otorgue el rol roles/storage.objectCreator a los creadores y a los creadores de depósitos. | bool | false | No |
set_hmac_acceso | Configure el acceso compatible con S3 a GCS. | bool | false | No |
set_hmac_key_admin_roles | Otorgue el rol roles/storage.hmacKeyAdmin a hmac_key_admins y bucket_hmac_key_admins. | bool | false | No |
set_storage_admin_roles | Otorgue el rol roles/storage.admin a Storage_admins y bucket_storage_admins. | bool | false | No |
set_viewer_roles | Otorgue el rol roles/storage.objectViewer a los espectadores y a los bucket_viewers. | bool | false | No |
política_de_eliminación_soft | Se aplicarán políticas de eliminación temporal. Mapa de nombre en minúsculas sin prefijo => política de eliminación temporal. El formato es el mismo que se describe en la documentación del proveedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy | map(any) | {} | No |
administradores_almacenamiento | Miembros de estilo IAM a quienes se les otorgarán roles/storage.admin en todos los depósitos. | list(string) | [] | No |
clase_almacenamiento | Clase de almacenamiento en cubo. | string | "STANDARD" | No |
versionando | Mapa opcional de nombre en minúsculas sin prefijo => booleano, el valor predeterminado es falso. | map(bool) | {} | No |
espectadores | Miembros de estilo IAM a quienes se les otorgarán roles/storage.objectViewer en todos los depósitos. | list(string) | [] | No |
sitio web | Mapa de valores del sitio web. Atributos admitidos: main_page_suffix, not_found_page | map(any) | {} | No |
Nombre | Descripción |
---|---|
apphub_service_uri | URI en estilo CAIS para ser utilizado por Apphub. |
balde | Recurso de depósito (para un solo uso). |
cubos | Agrupe los recursos como lista. |
mapa_cubos | Guarde los recursos por nombre. |
hmac_keys | Lista de claves HMAC. |
nombre | Nombre del depósito (para un solo uso). |
nombres | Nombres de cubos. |
lista_nombres | Lista de nombres de depósitos. |
URL | URL del depósito (para un solo uso). |
URL | URL de depósito. |
lista_urls | Lista de URL de depósito. |
Estas secciones describen los requisitos para utilizar este módulo.
Las siguientes dependencias deben estar disponibles:
Se deben utilizar credenciales de cuenta de usuario o de servicio con las siguientes funciones para aprovisionar los recursos de este módulo:
roles/storage.admin
El módulo Project Factory y el módulo IAM se pueden usar en combinación para aprovisionar una cuenta de servicio con las funciones necesarias aplicadas.
Se debe utilizar un proyecto con las siguientes API habilitadas para alojar los recursos de este módulo:
storage-api.googleapis.com
El módulo Project Factory se puede utilizar para aprovisionar un proyecto con las API necesarias habilitadas.
Consulte las pautas de contribución para obtener información sobre cómo contribuir a este módulo.