Этот модуль позволяет легко создавать один или несколько сегментов GCS и назначать базовые разрешения для них произвольным пользователям.
Ресурсы/услуги/активации/удаления, которые этот модуль создаст/запустит:
Если вы хотите создать только один сегмент, рассмотрите возможность использования вместо него подмодуля Simple Bucket.
Этот модуль предназначен для использования с Terraform 0.13+ и протестирован с использованием Terraform 1.0+. Если вы обнаружите несовместимость при использовании Terraform >=0,13, откройте проблему. Если вы не обновились и вам нужна версия этого модуля, совместимая с Terraform 0.12.x, последней выпущенной версией, предназначенной для Terraform 0.12.x, является v1.7.1.
Основное использование этого модуля заключается в следующем:
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] "
}
}
Функциональные примеры включены в каталог примеров.
Имя | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
администраторы | Члены в стиле IAM, которым будут предоставлены роли/storage.objectAdmin во всех сегментах. | list(string) | [] | нет |
автокласс | Необязательное сопоставление имени корзины без префикса в нижнем регистре => логическое значение, по умолчанию — false. | map(bool) | {} | нет |
ведро_админы | Карта имени в нижнем регистре без префикса => администраторы каждого сегмента в стиле IAM, разделенные запятыми. | map(string) | {} | нет |
Bucket_creators | Карта имени в нижнем регистре без префикса => создатели каждого сегмента в стиле IAM, разделенные запятыми. | map(string) | {} | нет |
Bucket_hmac_key_admins | Карта имени в нижнем регистре без префикса => разделенных запятыми администраторов ключей HMAC для каждого сегмента в стиле IAM. | map(string) | {} | нет |
Bucket_lifecycle_rules | Дополнительные правила lifecycle_rules для определенных сегментов. Карта имени в нижнем регистре без префикса => список правил жизненного цикла для настройки. | карта(набор(объект({ | {} | нет |
Bucket_policy_only | Отключите специальные списки управления доступом для определенных сегментов. По умолчанию истинно. Карта имени в нижнем регистре без префикса => логическое значение | map(bool) | {} | нет |
Bucket_storage_admins | Карта имени в нижнем регистре без префикса => администраторы хранилища для каждого сегмента, разделенные запятыми, в стиле IAM. | map(string) | {} | нет |
ведро_просмотрщиков | Карта имени в нижнем регистре без префикса => средства просмотра каждого сегмента в стиле IAM, разделенные запятыми. | map(string) | {} | нет |
корс | Набор карт атрибутов смешанного типа для значений CORS. См. соответствующие типы атрибутов здесь: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors. | set(any) | [] | нет |
создатели | Члены в стиле IAM, которым будут предоставлены роли/storage.objectCreators во всех сегментах. | list(string) | [] | нет |
custom_placement_config | Карта имени в нижнем регистре без префикса => объект конфигурации пользовательского размещения. Формат такой же, как описано в документации поставщика https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config. | any | {} | нет |
default_event_based_hold | Включите удержание на основе событий для новых объектов, добавленных в определенный сегмент. По умолчанию ложь. Карта имени в нижнем регистре без префикса => логическое значение | map(bool) | {} | нет |
имена_ключей_шифрования | Необязательная карта имени в нижнем регистре без префикса => строка, пустые строки игнорируются. | map(string) | {} | нет |
папки | Карта имени в нижнем регистре без префикса => список объектов папки верхнего уровня. | map(list(string)) | {} | нет |
Force_destroy | Необязательная карта имени в нижнем регистре без префикса => логическое значение, по умолчанию — false. | map(bool) | {} | нет |
hmac_key_admins | Участники в стиле IAM, которым будут предоставлены роли/storage.hmacKeyAdmin во всех сегментах. | list(string) | [] | нет |
hmac_service_accounts | Список учетных записей служб HMAC для предоставления доступа к GCS. | map(string) | {} | нет |
этикетки | Этикетки, которые нужно прикрепить к ведрам | map(string) | {} | нет |
жизненный цикл_правила | Список правил жизненного цикла для настройки. Формат такой же, как описано в документации поставщика https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule, за исключением того, что условие.matches_storage_class должно быть строкой, разделенной запятыми. | набор(объект({ | [] | нет |
расположение | Расположение ковша. | string | "EU" | нет |
регистрация | Карта имени в нижнем регистре без префикса => объект конфигурации ведения журнала сегмента. Формат такой же, как описано в документации поставщика https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging. | any | {} | нет |
имена | Суффиксы имени сегмента. | list(string) | н/д | да |
префикс | Префикс, используемый для создания имени сегмента. | string | "" | нет |
идентификатор_проекта | Идентификатор проекта сегмента. | string | н/д | да |
public_access_prevention | Запрещает публичный доступ к корзине. Приемлемые значения наследуются или применяются принудительно. При наследовании сегмент использует предотвращение публичного доступа, только если на сегмент распространяется ограничение политики организации по предотвращению публичного доступа. | string | "inherited" | нет |
рандомизировать_суффикс | Добавляет идентичный, но рандомизированный 4-значный суффикс ко всем именам сегментов. | bool | false | нет |
Retention_policy | Карта значений политики хранения. Формат такой же, как описано в документации поставщика https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy. | any | {} | нет |
set_admin_roles | Предоставьте роль roles/storage.objectAdmin администраторам и Bucket_admins. | bool | false | нет |
set_creator_roles | Предоставьте роль roles/storage.objectCreator создателям и Bucket_creators. | bool | false | нет |
set_hmac_access | Установите совместимый с S3 доступ к GCS. | bool | false | нет |
set_hmac_key_admin_roles | Предоставьте роль roles/storage.hmacKeyAdmin для hmac_key_admins и Bucket_hmac_key_admins. | bool | false | нет |
set_storage_admin_roles | Предоставьте роль roles/storage.admin для Storage_admins и Bucket_storage_admins. | bool | false | нет |
set_viewer_roles | Предоставьте роль roles/storage.objectViewer зрителям и Bucket_viewers. | bool | false | нет |
soft_delete_policy | Политики обратимого удаления, которые необходимо применить. Карта имени в нижнем регистре без префикса => политика обратимого удаления. Формат такой же, как описано в документации поставщика https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy. | map(any) | {} | нет |
Storage_admins | Участники в стиле IAM, которым будут предоставлены роли/storage.admin во всех сегментах. | list(string) | [] | нет |
класс_хранилища | Класс хранения ковша. | string | "STANDARD" | нет |
управление версиями | Необязательная карта имени в нижнем регистре без префикса => логическое значение, по умолчанию — false. | map(bool) | {} | нет |
зрители | Члены в стиле IAM, которым будут предоставлены роли/storage.objectViewer во всех сегментах. | list(string) | [] | нет |
веб-сайт | Карта ценностей сайта. Поддерживаемые атрибуты: main_page_suffix, not_found_page. | map(any) | {} | нет |
Имя | Описание |
---|---|
apphub_service_uri | URI в стиле CAIS, который будет использоваться Apphub. |
ведро | Ресурс ковша (для одноразового использования). |
ведра | Ресурсы сегмента в виде списка. |
ведра_карта | Сгруппируйте ресурсы по имени. |
hmac_keys | Список ключей HMAC. |
имя | Имя сегмента (для одноразового использования). |
имена | Названия бакетов. |
список_имен | Список названий сегментов. |
URL | URL-адрес сегмента (для одноразового использования). |
URL-адреса | URL-адреса сегментов. |
список_urls_list | Список URL-адресов корзин. |
В этих разделах описаны требования для использования этого модуля.
Должны быть доступны следующие зависимости:
Для предоставления ресурсов этого модуля необходимо использовать учетные данные пользователя или учетной записи службы со следующими ролями:
roles/storage.admin
Модуль Project Factory и модуль IAM можно использовать в сочетании для предоставления учетной записи службы с применением необходимых ролей.
Для размещения ресурсов этого модуля необходимо использовать проект со следующими включенными API:
storage-api.googleapis.com
Модуль Project Factory можно использовать для подготовки проекта с включенными необходимыми API.
Информацию о внесении вклада в этот модуль см. в правилах участия.