terraform aws s3 bucket
v4.2.2
Terraformモジュールは、Terraform AWSプロバイダーによって提供されるすべての(またはほぼすべての)機能を備えたAWSにS3バケットを作成します。
S3バケット構成のこれらの機能はサポートされています。
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket "
acl = " private "
control_object_ownership = true
object_ownership = " ObjectWriter "
versioning = {
enabled = true
}
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true # Required for ALB logs
attach_lb_log_delivery_policy = true # Required for ALB/NLB logs
}
S3リソースを条件付きで作成する方法が必要な場合がありますが、Terraformではmodule
ブロック内のcount
を使用することはできないため、ソリューションは引数create_bucket
を指定することです。
# This S3 bucket will not be created
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
create_bucket = false
# ... omitted
}
variable "..." { type = any }
Terragruntには、 any
の変数がTerraformに渡される方法に関連するバグ#1211があります。
このモジュールは、予想されるタイプ( list
またはmap
)に加えてjsonencode()
- ストリングをサポートすることにより、この問題を解決します。
terragrunt.hcl
で書くことができます:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
このTerraformモジュールのユーザーは、テラフォーム0.13で使用できるようになったmodule
ブロック内のfor_each
メタアーグメントを使用して、複数の同様のリソースを作成できます。
Terragruntのユーザーは、構成ファイルの量を減らすことを好む場合、Wrappersディレクトリに提供されるモジュールを使用することにより、同様の結果を達成できます。
名前 | バージョン |
---|---|
テラフォーム | > = 1.0 |
aws | > = 5.70 |
名前 | バージョン |
---|---|
aws | > = 5.70 |
モジュールなし。
名前 | タイプ |
---|---|
AWS_S3_BUCKET.THIS | リソース |
AWS_S3_BUCKET_ACCELERET_CONFIGURARS.THIS | リソース |
AWS_S3_BUCKET_ACL.THIS | リソース |
AWS_S3_BUCKET_ANALYTICS_CONFIGURARS.THIS | リソース |
AWS_S3_BUCKET_CORS_CONFIGURARS.THIS | リソース |
AWS_S3_BUCKET_INTELLIGENT_TIERING_CONFIGURARS.THIS | リソース |
AWS_S3_BUCKET_INVENTORY.THIS | リソース |
AWS_S3_BUCKET_LIFECYCLE_CONFIGURATION.THIS | リソース |
AWS_S3_BUCKET_LOGGING.THIS | リソース |
AWS_S3_BUCKET_METRIC.THIS | リソース |
aws_s3_bucket_object_lock_configuration.this | リソース |
AWS_S3_BUCKET_OWNERSHIP_CONTROLS.THIS | リソース |
AWS_S3_BUCKET_POLICY.THIS | リソース |
aws_s3_bucket_public_access_block.this | リソース |
AWS_S3_BUCKET_REPLICATION_CONFIGURATION.THIS | リソース |
aws_s3_bucket_request_payment_configuration.this | リソース |
AWS_S3_BUCKET_SERVER_SIDE_ENCRYPTION_CONFIGURATION.THIS | リソース |
AWS_S3_Bucket_versioning.this | リソース |
AWS_S3_BUCKET_WEBSITE_CONFIGURATION.THIS | リソース |
aws_caller_identity.current | データソース |
AWS_CANONICAL_USER_ID.THIS | データソース |
aws_iam_policy_document.access_log_delivery | データソース |
aws_iam_policy_document.combined | データソース |
aws_iam_policy_document.deny_incorrect_encryption_headers | データソース |
aws_iam_policy_document.deny_incorrect_kms_key_sse | データソース |
aws_iam_policy_document.deny_insecure_transport | データソース |
aws_iam_policy_document.deny_unencrypted_object_uploads | データソース |
aws_iam_policy_document.elb_log_delivery | データソース |
aws_iam_policy_document.inventory_and_analytics_destination_policy | データソース |
aws_iam_policy_document.lb_log_delivery | データソース |
aws_iam_policy_document.require_latest_tls | データソース |
aws_partition.current | データソース |
aws_region.current | データソース |
名前 | 説明 | タイプ | デフォルト | 必須 |
---|---|---|---|---|
acceleration_status | (オプション)既存のバケットの加速構成を設定します。有効にするか、停止できます。 | string | null | いいえ |
Access_log_delivery_policy_source_accounts | (オプション)AWSアカウントIDのリストは、このバケットにアクセスログを配信することを許可する必要があります。 | list(string) | [] | いいえ |
Access_log_delivery_policy_source_buckets | (オプション)このバケットにアクセスログを配信できるようにする必要があるS3バケットアーンのリスト。 | list(string) | [] | いいえ |
ACL | (オプション)適用する缶詰のACL。 grant との対立 | string | null | いいえ |
Alow_kms_key_arn | Putobjectで許可されるべきKMSキーのARN | string | null | いいえ |
Analytics_Configuration | バケット分析の構成を含むマップ。 | any | {} | いいえ |
Analytics_self_source_destination | 分析ソースのバケットが宛先バケットでもあるかどうか。 | bool | false | いいえ |
Analytics_source_account_id | 分析ソースアカウントID。 | string | null | いいえ |
Analytics_source_bucket_arn | 分析ソースバケットARN。 | string | null | いいえ |
attach_access_log_delivery_policy | S3バケットがS3アクセスログ配信ポリシーが添付される必要があるかどうかを制御する | bool | false | いいえ |
attach_analytics_destination_policy | S3バケットがバケット分析の宛先ポリシーを添付する必要があるかどうかを制御します。 | bool | false | いいえ |
attach_deny_incorrect_encryption_headers | S3バケットが誤った暗号化ヘッダーポリシーを拒否する必要があるかどうかを制御します。 | bool | false | いいえ |
attach_deny_incorrect_kms_key_sse | S3バケットポリシーが誤ったKMSキーSSEの使用を拒否する必要があるかどうかを制御します。 | bool | false | いいえ |
attach_deny_insecure_transport_policy | S3バケットが添付されていない非SSL輸送ポリシーを拒否しているべきかどうかを制御する | bool | false | いいえ |
attach_deny_unencrypted_object_uploads | S3バケットが暗号化されていないオブジェクトのアップロードポリシーを拒否する必要があるかどうかを制御します。 | bool | false | いいえ |
attach_elb_log_delivery_policy | S3バケットが肘のログ配信ポリシーが添付されているかどうかを制御する | bool | false | いいえ |
attach_inventory_destination_policy | S3バケットにバケットインベントリの宛先ポリシーが添付されているかどうかを制御します。 | bool | false | いいえ |
attach_lb_log_delivery_policy | S3バケットがALB/NLBログ配信ポリシーを添付する必要があるかどうかを制御する | bool | false | いいえ |
attach_policy | S3バケットにバケットポリシーが添付される必要があるかどうかを制御します(バケットポリシーとしてpolicy の価値を使用するtrue に設定) | bool | false | いいえ |
attach_public_policy | ユーザー定義のパブリックバケットポリシーが添付されるかどうかを制御します(上流のデフォルトをバケットに適用できるようにfalse に設定) | bool | true | いいえ |
attach_require_latest_tls_policy | S3バケットが最新バージョンのTLSを必要とするかどうかをコントロールする | bool | false | いいえ |
block_public_acls | Amazon S3がこのバケットのパブリックACLをブロックすべきかどうか。 | bool | true | いいえ |
block_public_policy | Amazon S3がこのバケットのパブリックバケットポリシーをブロックすべきかどうか。 | bool | true | いいえ |
バケツ | (オプション、強制新しいリソース)バケットの名前。省略した場合、Terraformはランダムで一意の名前を割り当てます。 | string | null | いいえ |
bucket_prefix | (オプション、強制新しいリソース)指定されたプレフィックスから始まる一意のバケット名を作成します。バケットとの対立。 | string | null | いいえ |
control_object_ownership | このバケットでS3バケットの所有権を管理するかどうか。 | bool | false | いいえ |
cors_rule | クロスオリジンリソース共有のルールを含むマップのリスト。 | any | [] | いいえ |
create_bucket | S3バケットを作成する必要があるかどうかを制御します | bool | true | いいえ |
expects_bucket_owner | 予想されるバケット所有者のアカウントID | string | null | いいえ |
force_destroy | (オプション、デフォルト:false)すべてのオブジェクトをバケツから削除して、バケツをエラーなしで破壊できるようにするブール値。これらのオブジェクトは回復できません。 | bool | false | いいえ |
付与 | ACLポリシー助成金。 acl との対立 | any | [] | いいえ |
Ingrore_public_acls | Amazon S3がこのバケットのパブリックACLを無視すべきかどうか。 | bool | true | いいえ |
Intelligent_tiering | インテリジェントな階層構成を含むマップ。 | any | {} | いいえ |
inventory_configuration | S3インベントリ構成を含むマップ。 | any | {} | いいえ |
inventory_self_source_destination | 在庫ソースバケットが宛先バケットでもあるかどうか。 | bool | false | いいえ |
inventory_source_account_id | インベントリソースアカウントID。 | string | null | いいえ |
inventory_source_bucket_arn | インベントリソースバケットARN。 | string | null | いいえ |
lifecycle_rule | オブジェクトライフサイクル管理の構成を含むマップのリスト。 | any | [] | いいえ |
ロギング | アクセスバケットロギング構成を含むマップ。 | any | {} | いいえ |
Metric_Configuration | バケットメトリック構成を含むマップ。 | any | [] | いいえ |
object_lock_configuration | S3オブジェクトロック構成を含むマップ。 | any | {} | いいえ |
object_lock_enabled | S3バケットにオブジェクトロック構成が有効になるかどうか。 | bool | false | いいえ |
object_ownership | オブジェクトの所有権。有効な値:bucketownerenforced、bucketownerpreferredまたはobjectwriter。 「Bucketownerenforced」:ACLSは無効になり、バケットの所有者はバケット内のすべてのオブジェクトを自動的に所有し、完全に制御しています。 「BucketownerPreferred」:バケット所有者の所有者にバケツの所有者に変更されたオブジェクトは、バケット所有者とフルコントロールの缶詰ACLでアップロードされた場合にバケットの所有者に所有権を変更します。 「ObjectWriter」:オブジェクトがBucket Owner-Full-Control Canned ACLでアップロードされている場合、アップロードアカウントはオブジェクトを所有します。 | string | "BucketOwnerEnforced" | いいえ |
所有者 | バケットの所有者のディスプレイ名とID。 acl との対立 | map(string) | {} | いいえ |
ポリシー | (オプション)有効なバケットポリシーJSONドキュメント。ポリシードキュメントが十分に具体的ではない(まだ有効である)場合、TerraformはTerraform計画で常に変化していると見なす場合があることに注意してください。この場合、ポリシーの冗長/特定のバージョンを使用してください。 Terraformを使用したAWS IAMポリシードキュメントの構築の詳細については、AWS IAMポリシードキュメントガイドを参照してください。 | string | null | いいえ |
プーチン_khuylo | プーチンがウクライナの主権と領土の完全性を尊重しないことに同意しますか?詳細:https://en.wikipedia.org/wiki/putin_khuylo! | bool | true | いいえ |
Replication_Configuration | クロスリージョンレプリケーション構成を含むマップ。 | any | {} | いいえ |
request_payer | (オプション)Amazon S3データ転送のコストを負担すべきかを指定します。 BucketownerまたはRequesterのいずれかにすることができます。デフォルトでは、S3バケットの所有者は、データ転送のコストを負担します。詳細については、Requester Pays Buckets Developer Guideを参照してください。 | string | null | いいえ |
Restrict_public_buckets | Amazon S3がこのバケットのパブリックバケットポリシーを制限すべきかどうか。 | bool | true | いいえ |
server_side_encryption_configuration | サーバー側の暗号化構成を含むマップ。 | any | {} | いいえ |
タグ | (オプション)バケットに割り当てるタグのマッピング。 | map(string) | {} | いいえ |
transition_default_minimum_object_size | ライフサイクル構成に適用されるデフォルトの最小オブジェクトサイズの動作。有効な値:all_storage_classes_128k(デフォルト)、varies_by_storage_class | string | null | いいえ |
バージョン化 | バージョン化構成を含むマップ。 | map(string) | {} | いいえ |
Webサイト | 静的Webサイトのホスティングまたはリダイレクト構成を含むマップ。 | any | {} | いいえ |
名前 | 説明 |
---|---|
s3_bucket_arn | バケツのARN。 Format Arn:AWS:S3 ::: BucketNameになります。 |
s3_bucket_bucket_domain_name | バケットドメイン名。 Format BucketName.s3.amazonaws.comの形式になります。 |
s3_bucket_bucket_regional_domain_name | バケット領域固有のドメイン名。地域名を含むバケットドメイン名は、形式についてはこちらを参照してください。注:AWS CloudFrontを使用すると、S3 Originを作成するときにS3領域固有のエンドポイントを指定できます。これにより、CloudFrontからS3 Origin URLへのリダイレクト問題が防止されます。 |
s3_bucket_hosted_zone_id | ルート53は、このバケットの領域のゾーンIDをホストしました。 |
s3_bucket_id | バケツの名前。 |
s3_bucket_lifecycle_configuration_rules | バケットがライフサイクルルールで構成されている場合、バケットのライフサイクルルール。そうでない場合、これは空の文字列になります。 |
s3_bucket_policy | バケットがポリシーで構成されている場合、バケットのポリシー。そうでない場合、これは空の文字列になります。 |
s3_bucket_region | このバケツが住んでいるAWS地域。 |
s3_bucket_website_domain | バケットがWebサイトで構成されている場合、Webサイトエンドポイントのドメイン。そうでない場合、これは空の文字列になります。これは、ルート53エイリアスレコードの作成に使用されます。 |
s3_bucket_website_endpoint | バケットがWebサイトで構成されている場合、Webサイトのエンドポイント。そうでない場合、これは空の文字列になります。 |
モジュールは、これらの素晴らしい貢献者の助けを借りて、アントン・バベンコによって維持されています。
Apache 2ライセンス。詳細については、ライセンスを参照してください。