Este módulo facilita a criação de um ou mais buckets do GCS e a atribuição de permissões básicas a eles para usuários arbitrários.
Os recursos/serviços/ativações/exclusões que este módulo criará/acionará são:
Se você deseja criar apenas um único bucket, considere usar o submódulo de bucket simples.
Este módulo deve ser usado com Terraform 0.13+ e testado usando Terraform 1.0+. Se você encontrar incompatibilidades usando Terraform >=0,13, abra um problema. Se você não atualizou e precisa de uma versão deste módulo compatível com Terraform 0.12.x, a última versão lançada destinada ao Terraform 0.12.x é v1.7.1.
O uso básico deste módulo é o seguinte:
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] "
}
}
Exemplos funcionais estão incluídos no diretório de exemplos.
Nome | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
administradores | Membros no estilo IAM que receberão papéis/storage.objectAdmin em todos os buckets. | list(string) | [] | não |
autoclasse | Mapa opcional de nome de bucket sem prefixo em letras minúsculas => booleano, o padrão é falso. | map(bool) | {} | não |
bucket_admins | Mapa de nomes sem prefixo em letras minúsculas => administradores por bucket no estilo IAM delimitados por vírgulas. | map(string) | {} | não |
bucket_creators | Mapa de nome sem prefixo em letras minúsculas => criadores por bucket no estilo IAM delimitados por vírgulas. | map(string) | {} | não |
bucket_hmac_key_admins | Mapa de nome sem prefixo em letras minúsculas => administradores de chave HMAC por bucket no estilo IAM delimitado por vírgula. | map(string) | {} | não |
bucket_lifecycle_rules | lifecycle_rules adicionais para buckets específicos. Mapa de nome sem prefixo em letras minúsculas => lista de regras de ciclo de vida a serem configuradas. | mapa(set(objeto({ | {} | não |
bucket_policy_only | Desative ACLs ad hoc em buckets especificados. O padrão é verdadeiro. Mapa de nome sem prefixo em letras minúsculas => booleano | map(bool) | {} | não |
bucket_storage_admins | Mapa de nome sem prefixo em letras minúsculas => administradores de armazenamento por bucket no estilo IAM delimitados por vírgulas. | map(string) | {} | não |
bucket_viewers | Mapa de nome sem prefixo em letras minúsculas => visualizadores por bucket no estilo IAM delimitados por vírgulas. | map(string) | {} | não |
corpo | Conjunto de mapas de atributos de tipo misto para valores CORS. Veja os tipos de atributos apropriados aqui: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | não |
criadores | Membros do estilo IAM que receberão papéis/storage.objectCreators em todos os buckets. | list(string) | [] | não |
custom_placement_config | Mapa de nome sem prefixo em letras minúsculas => objeto de configuração de posicionamento personalizado. O formato é o mesmo descrito na documentação do provedor https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config | any | {} | não |
default_event_based_hold | Habilite a retenção baseada em eventos para novos objetos adicionados a um bucket específico. O padrão é falso. Mapa de nome sem prefixo em letras minúsculas => booleano | map(bool) | {} | não |
nomes_de_chaves_de_criptografia | Mapa opcional de nome sem prefixo em letras minúsculas => string, strings vazias são ignoradas. | map(string) | {} | não |
pastas | Mapa de nome sem prefixo em letras minúsculas => lista de objetos de pasta de nível superior. | map(list(string)) | {} | não |
força_destruir | Mapa opcional de nome sem prefixo em letras minúsculas => booleano, o padrão é falso. | map(bool) | {} | não |
hmac_key_admins | Membros do estilo IAM que receberão papéis/storage.hmacKeyAdmin em todos os buckets. | list(string) | [] | não |
hmac_service_accounts | Lista de contas de serviço HMAC para conceder acesso ao GCS. | map(string) | {} | não |
rótulos | Etiquetas a serem anexadas aos baldes | map(string) | {} | não |
regras_de_ciclodevida | Lista de regras de ciclo de vida a serem configuradas. O formato é o mesmo descrito na documentação do provedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule, exceto que condição.matches_storage_class deve ser uma string delimitada por vírgula. | definir(objeto({ | [] | não |
localização | Localização do balde. | string | "EU" | não |
registro | Mapa de nome sem prefixo em letras minúsculas => objeto de configuração de registro de bucket. O formato é o mesmo descrito na documentação do provedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging | any | {} | não |
nomes | Sufixos de nome de bucket. | list(string) | n / D | sim |
prefixo | Prefixo usado para gerar o nome do bucket. | string | "" | não |
id_do_projeto | ID do projeto do intervalo. | string | n / D | sim |
prevenção_de_acesso_público | Impede o acesso público a um bucket. Os valores aceitáveis são herdados ou impostos. Se herdado, o bucket usará a prevenção de acesso público somente se o bucket estiver sujeito à restrição de política da organização de prevenção de acesso público. | string | "inherited" | não |
randomize_suffix | Adiciona um sufixo idêntico, mas aleatório, de 4 caracteres a todos os nomes de bucket | bool | false | não |
política_de_retenção | Mapa de valores da política de retenção. O formato é o mesmo descrito na documentação do provedor https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy | any | {} | não |
set_admin_roles | Conceda a função Roles/storage.objectAdmin a administradores e bucket_admins. | bool | false | não |
set_creator_roles | Conceda a função Roles/storage.objectCreator aos criadores e bucket_creators. | bool | false | não |
set_hmac_access | Defina o acesso compatível com S3 ao GCS. | bool | false | não |
set_hmac_key_admin_roles | Conceda a função Roles/storage.hmacKeyAdmin a hmac_key_admins e bucket_hmac_key_admins. | bool | false | não |
set_storage_admin_roles | Conceda a função role/storage.admin a storage_admins e bucket_storage_admins. | bool | false | não |
set_viewer_roles | Conceda a função Roles/storage.objectViewer aos visualizadores e bucket_viewers. | bool | false | não |
soft_delete_policy | Políticas de exclusão reversível a serem aplicadas. Mapa de nome sem prefixo em letras minúsculas => política de exclusão reversível. O formato é o mesmo descrito na documentação do provedor https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy | map(any) | {} | não |
storage_admins | Membros do estilo IAM que receberão papéis/storage.admin em todos os buckets. | list(string) | [] | não |
classe_de_armazenamento | Classe de armazenamento de bucket. | string | "STANDARD" | não |
versionamento | Mapa opcional de nome sem prefixo em letras minúsculas => booleano, o padrão é falso. | map(bool) | {} | não |
espectadores | Membros no estilo IAM que receberão papéis/storage.objectViewer em todos os buckets. | list(string) | [] | não |
site | Mapa de valores do site. Atributos suportados: main_page_suffix, not_found_page | map(any) | {} | não |
Nome | Descrição |
---|---|
apphub_service_uri | URI no estilo CAIS a ser usado pelo Apphub. |
balde | Recurso de balde (para uso único). |
baldes | Recursos do bucket como lista. |
buckets_map | Agrupe recursos por nome. |
hmac_keys | Lista de chaves HMAC. |
nome | Nome do bucket (para uso único). |
nomes | Nomes de baldes. |
lista_nomes | Lista de nomes de buckets. |
url | URL do bucket (para uso único). |
urls | URLs de intervalo. |
urls_list | Lista de URLs de bucket. |
Estas seções descrevem os requisitos para usar este módulo.
As seguintes dependências devem estar disponíveis:
Credenciais de usuário ou de conta de serviço com as seguintes funções devem ser usadas para provisionar os recursos deste módulo:
roles/storage.admin
O módulo Project Factory e o módulo IAM podem ser usados em combinação para provisionar uma conta de serviço com as funções necessárias aplicadas.
Um projeto com as seguintes APIs habilitadas deve ser utilizado para hospedar os recursos deste módulo:
storage-api.googleapis.com
O módulo Project Factory pode ser usado para provisionar um projeto com as APIs necessárias habilitadas.
Consulte as diretrizes de contribuição para obter informações sobre como contribuir para este módulo.