このモジュールを使用すると、1 つ以上の GCS バケットを簡単に作成し、それらに対する基本的な権限を任意のユーザーに割り当てることができます。
このモジュールが作成/トリガーするリソース/サービス/アクティブ化/削除は次のとおりです。
単一のバケットのみを作成する場合は、代わりに単純なバケット サブモジュールの使用を検討してください。
このモジュールは 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] "
}
}
機能的な例は、examples ディレクトリに含まれています。
名前 | 説明 | タイプ | デフォルト | 必須 |
---|---|---|---|---|
管理者 | すべてのバケットに対してロール/storage.objectAdmin が付与される IAM スタイルのメンバー。 | list(string) | [] | いいえ |
自動クラス | 小文字の接頭辞のないバケット名のオプションのマップ => ブール値、デフォルトは false です。 | map(bool) | {} | いいえ |
バケット管理者 | 小文字のプレフィックスなしの名前のマップ => カンマ区切りの IAM スタイルのバケットごとの管理者。 | map(string) | {} | いいえ |
バケットクリエイター | 小文字の接頭辞なしの名前のマップ => カンマ区切りの IAM スタイルのバケットごとの作成者。 | map(string) | {} | いいえ |
バケット_hmac_key_admins | 小文字のプレフィックスなしの名前のマップ => カンマ区切りの IAM スタイルのバケットごとの HMAC キー管理者。 | map(string) | {} | いいえ |
バケット_ライフサイクル_ルール | 特定のバケットに対する追加の lifecycle_rules。小文字の接頭辞のない名前のマップ => 設定するライフサイクル ルールのリスト。 | マップ(セット(オブジェクト({ | {} | いいえ |
バケット_ポリシー_のみ | 指定したバケットのアドホック ACL を無効にします。デフォルトは true です。小文字の接頭辞なしの名前のマップ => ブール値 | map(bool) | {} | いいえ |
バケット_ストレージ_管理者 | 小文字のプレフィックスなしの名前のマップ => カンマ区切りの IAM スタイルのバケットごとのストレージ管理者。 | map(string) | {} | いいえ |
バケットビューアー | 小文字の接頭辞なしの名前のマップ => カンマ区切りの IAM スタイルのバケットごとのビューア。 | map(string) | {} | いいえ |
コルス | CORS 値の混合タイプ属性のマップのセット。ここで適切な属性タイプを参照してください: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | いいえ |
クリエイター | すべてのバケットに対してロール/storage.objectCreators が付与される IAM スタイルのメンバー。 | list(string) | [] | いいえ |
カスタム配置_構成 | 小文字の接頭辞のない名前のマップ => カスタム配置構成オブジェクト。形式はプロバイダーのドキュメント https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config で説明されているものと同じです | any | {} | いいえ |
デフォルト_イベントベース_ホールド | 特定のバケットに追加された新しいオブジェクトに対するイベント ベースの保持を有効にします。デフォルトは false です。小文字の接頭辞なしの名前のマップ => ブール値 | map(bool) | {} | いいえ |
暗号化キー名 | 小文字の接頭辞のない名前 => 文字列のオプションのマップ。空の文字列は無視されます。 | map(string) | {} | いいえ |
フォルダ | 小文字の接頭辞のない名前のマップ => 最上位のフォルダー オブジェクトのリスト。 | map(list(string)) | {} | いいえ |
強制破壊 | 小文字の接頭辞のない名前のオプションのマップ => ブール値、デフォルトは false です。 | map(bool) | {} | いいえ |
hmac_key_admins | すべてのバケットに対してロール/storage.hmacKeyAdmin が付与される IAM スタイルのメンバー。 | list(string) | [] | いいえ |
hmac_service_accounts | GCS へのアクセスを許可する HMAC サービス アカウントのリスト。 | map(string) | {} | いいえ |
ラベル | バケットに貼付するラベル | map(string) | {} | いいえ |
ライフサイクルルール | 構成するライフサイクル ルールのリスト。形式はプロバイダのドキュメント https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule で説明されているものと同じですが、condition.matches_storage_class がカンマ区切りの文字列である必要があります。 | set(オブジェクト({ | [] | いいえ |
位置 | バケットの場所。 | string | "EU" | いいえ |
ロギング | 小文字のプレフィックスなしの名前のマップ => バケット ロギング設定オブジェクト。形式はプロバイダのドキュメント https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging で説明されているものと同じです | any | {} | いいえ |
名前 | バケット名のサフィックス。 | list(string) | 該当なし | はい |
接頭辞 | バケット名の生成に使用されるプレフィックス。 | string | "" | いいえ |
プロジェクトID | バケットのプロジェクト ID。 | string | 該当なし | はい |
パブリックアクセス防止 | バケットへのパブリックアクセスを禁止します。許容可能な値は継承または強制されます。継承された場合、バケットはパブリック アクセス防止組織のポリシー制約の対象となる場合にのみ、バケットでパブリック アクセス防止を使用します。 | string | "inherited" | いいえ |
ランダム化サフィックス | すべてのバケット名に同一だがランダム化された 4 文字のサフィックスを追加します | bool | false | いいえ |
保持ポリシー | 保持ポリシー値のマップ。形式はプロバイダーのドキュメント https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy で説明されているものと同じです | any | {} | いいえ |
set_admin_roles | role/storage.objectAdmin ロールを管理者とbucket_adminsに付与します。 | bool | false | いいえ |
set_creator_roles | ロール/storage.objectCreator ロールを Creator と Bucket_creators に付与します。 | bool | false | いいえ |
set_hmac_access | S3 互換アクセスを GCS に設定します。 | bool | false | いいえ |
set_hmac_key_admin_roles | role/storage.hmacKeyAdmin ロールを hmac_key_admins およびbucket_hmac_key_admins に付与します。 | bool | false | いいえ |
set_storage_admin_roles | ロール/storage.admin ロールを storage_admins およびbucket_storage_admins に付与します。 | bool | false | いいえ |
set_viewer_roles | ビューアーとbucket_viewerにroles/storage.objectViewerロールを付与します。 | bool | false | いいえ |
ソフト削除ポリシー | 適用する論理的な削除ポリシー。小文字の接頭辞のない名前のマップ => 論理的な削除ポリシー。形式はプロバイダのドキュメント https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy で説明されているものと同じです | map(any) | {} | いいえ |
ストレージ管理者 | すべてのバケットに対してロール/storage.admin が付与される IAM スタイルのメンバー。 | list(string) | [] | いいえ |
ストレージクラス | バケットストレージクラス。 | string | "STANDARD" | いいえ |
バージョン管理 | 小文字の接頭辞のない名前のオプションのマップ => ブール値、デフォルトは false です。 | map(bool) | {} | いいえ |
視聴者 | すべてのバケットでロール/storage.objectViewer が付与される IAM スタイルのメンバー。 | list(string) | [] | いいえ |
Webサイト | Web サイトの価値のマップ。サポートされている属性: main_page_suffix、not_found_page | map(any) | {} | いいえ |
名前 | 説明 |
---|---|
apphub_service_uri | Apphub で使用される CAIS スタイルの URI。 |
バケツ | バケット リソース (単一使用)。 |
バケツ | バケットリソースをリストとして表示します。 |
バケットマップ | リソースを名前でバケット化します。 |
hmac_keys | HMAC キーのリスト。 |
名前 | バケット名 (単独使用)。 |
名前 | バケット名。 |
名前リスト | バケット名のリスト。 |
URL | バケット URL (単一使用)。 |
URL | バケットの URL。 |
urls_list | バケット URL のリスト。 |
これらのセクションでは、このモジュールを使用するための要件について説明します。
次の依存関係が利用可能である必要があります。
このモジュールのリソースをプロビジョニングするには、次のロールを持つユーザーまたはサービス アカウントの資格情報を使用する必要があります。
roles/storage.admin
Project Factory モジュールと IAM モジュールを組み合わせて使用すると、必要なロールが適用されたサービス アカウントをプロビジョニングできます。
このモジュールのリソースをホストするには、次の API が有効になっているプロジェクトを使用する必要があります。
storage-api.googleapis.com
Project Factory モジュールを使用すると、必要な API を有効にしてプロジェクトをプロビジョニングできます。
このモジュールへの貢献については、貢献ガイドラインを参照してください。