Modul Terraform yang menciptakan S3 Bucket pada AWS dengan semua (atau hampir semua) fitur yang disediakan oleh penyedia AWS Terraform.
Fitur -fitur konfigurasi bucket S3 ini didukung:
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
}
Kadang -kadang Anda perlu memiliki cara untuk membuat sumber daya S3 secara kondisional tetapi Terraform tidak memungkinkan untuk menggunakan count
blok module
di dalam, jadi solusinya adalah menentukan argumen 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 }
Ada bug #1211 di terragrunt terkait dengan cara bagaimana variabel tipe any
diteruskan ke terraform.
Modul ini memecahkan masalah ini dengan mendukung jsonencode()
-string selain jenis yang diharapkan ( list
atau map
).
Di terragrunt.hcl
Anda dapat menulis:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
Pengguna modul terraform ini dapat membuat beberapa sumber daya serupa dengan menggunakan for_each
meta-argumen dalam blok module
yang tersedia di Terraform 0,13.
Pengguna terragrunt dapat mencapai hasil yang serupa dengan menggunakan modul yang disediakan di direktori pembungkus, jika mereka lebih suka mengurangi jumlah file konfigurasi.
Nama | Versi |
---|---|
Terraform | > = 1.0 |
AWS | > = 5.70 |
Nama | Versi |
---|---|
AWS | > = 5.70 |
Tidak ada modul.
Nama | Jenis |
---|---|
AWS_S3_BUCKET. ini | sumber |
AWS_S3_BUCKET_ACCELERATE_CONFIGURASI.Ini | sumber |
AWS_S3_BUCKET_ACL.Ini | sumber |
aws_s3_bucket_analytics_configuration.ini | sumber |
AWS_S3_BUCKET_CORS_CONFIGURASI.Ini | sumber |
AWS_S3_BUCKET_INTELLIGENT_TIERING_CONFIGURASI.THIS | sumber |
AWS_S3_BUCKET_INVENTORY.Ini | sumber |
AWS_S3_BUCKET_LIFECYCLE_CONFIGURASI.Ini | sumber |
AWS_S3_BUCKET_LOGGING.Ini | sumber |
AWS_S3_BUCKET_METRIC.THIS | sumber |
AWS_S3_Bucket_Object_lock_configuration.ini | sumber |
AWS_S3_BUCKET_OWNERSHIP_CONTROLS.THIS | sumber |
AWS_S3_BUCKET_POLICY.THIS | sumber |
AWS_S3_BUCKET_PUBLIC_ACCESS_BLOCK. Ini | sumber |
AWS_S3_BUCKET_REPLICATION_CONFIGURASI.Ini | sumber |
AWS_S3_BUCKET_REQUEST_PAYMENT_CONFIGURASI.THIS | sumber |
AWS_S3_BUCKET_SERVER_SIDE_ENCRYPTION_CONFIGURASI.THIS | sumber |
AWS_S3_BUCKET_VERSIONING.THIS | sumber |
AWS_S3_BUCKET_WEBSITE_CONFIGURASI.Ini | sumber |
AWS_CALLER_IDENTITY.CURRENT | sumber data |
aws_canonical_user_id. ini | sumber data |
aws_iam_policy_document.access_log_delivery | sumber data |
AWS_IAM_POLICY_DOCUMENT.Combined | sumber data |
aws_iam_policy_document.deny_incorrect_encryption_headers | sumber data |
aws_iam_policy_document.deny_incorrect_kms_key_sse | sumber data |
AWS_IAM_POLICY_DOCUMENT.DENY_INSECURE_TRANSPORT | sumber data |
aws_iam_policy_document.deny_unencrypted_object_uploads | sumber data |
aws_iam_policy_document.elb_log_delivery | sumber data |
aws_iam_policy_document.inventory_and_analytics_destination_policy | sumber data |
aws_iam_policy_document.lb_log_delivery | sumber data |
aws_iam_policy_document.require_latest_tls | sumber data |
aws_partition.current | sumber data |
AWS_REGION.CURRENT | sumber data |
Nama | Keterangan | Jenis | Bawaan | Diperlukan |
---|---|---|---|---|
Acceleration_status | (Opsional) Mengatur konfigurasi percepatan dari ember yang ada. Dapat diaktifkan atau ditangguhkan. | string | null | TIDAK |
access_log_delivery_policy_source_accounts | (Opsional) Daftar ID Akun AWS harus diizinkan untuk mengirimkan log akses ke ember ini. | list(string) | [] | TIDAK |
access_log_delivery_policy_source_buckets | (Opsional) Daftar ARN S3 Bucket yang harus diizinkan untuk mengirimkan log akses ke ember ini. | list(string) | [] | TIDAK |
ACL | (Opsional) ACL kalengan untuk diterapkan. Konflik dengan grant | string | null | TIDAK |
diizinkan_kms_key_arn | Kunci KMS ARN yang harus diizinkan di putobject | string | null | TIDAK |
analytics_configuration | Peta yang berisi konfigurasi analitik bucket. | any | {} | TIDAK |
analytics_self_source_destination | Apakah ember sumber analitik juga merupakan ember tujuan. | bool | false | TIDAK |
analytics_source_account_id | ID Akun Sumber Analisis. | string | null | TIDAK |
analytics_source_bucket_arn | Sumber analitik ember arn. | string | null | TIDAK |
lampiran_access_log_delivery_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan pengiriman log akses S3 | bool | false | TIDAK |
lampiran_analytics_destination_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan tujuan analitik bucket. | bool | false | TIDAK |
lampiran_deny_incorrect_encryption_headers | Kontrol Jika S3 Bucket harus menyangkal kebijakan header enkripsi yang salah. | bool | false | TIDAK |
lampiran_deny_incorrect_kms_key_sse | Kontrol Jika kebijakan S3 Bucket harus menolak penggunaan KMS Key SSE yang salah. | bool | false | TIDAK |
lampiran_deny_insecure_transport_policy | Kontrol Jika S3 Bucket seharusnya menolak kebijakan transportasi non-SSL | bool | false | TIDAK |
lampiran_deny_unencrypted_object_uploads | Kontrol Jika S3 Bucket harus menyangkal kebijakan mengunggah objek yang tidak terenkripsi terlampir. | bool | false | TIDAK |
lampiran_elb_log_delivery_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan pengiriman log ELB | bool | false | TIDAK |
lampiran_inventory_destination_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan tujuan inventaris bucket terlampir. | bool | false | TIDAK |
lampiran_lb_log_delivery_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan pengiriman log ALB/NLB | bool | false | TIDAK |
lampiran_policy | Kontrol Jika S3 Bucket harus memiliki kebijakan bucket terlampir (disetel ke true untuk menggunakan nilai policy sebagai kebijakan bucket) | bool | false | TIDAK |
lampiran_public_policy | Kontrol Jika kebijakan ember publik yang ditentukan pengguna akan dilampirkan (diatur ke false untuk memungkinkan hulu menerapkan default ke ember) | bool | true | TIDAK |
lampiran_require_latest_tls_policy | Kontrol Jika S3 Bucket harus memerlukan versi TLS terbaru | bool | false | TIDAK |
block_public_acls | Apakah Amazon S3 harus memblokir ACL publik untuk ember ini. | bool | true | TIDAK |
block_public_policy | Apakah Amazon S3 harus memblokir kebijakan ember publik untuk ember ini. | bool | true | TIDAK |
keranjang | (Opsional, memaksa sumber daya baru) nama ember. Jika dihilangkan, Terraform akan menetapkan nama unik acak. | string | null | TIDAK |
bucket_prefix | (Opsional, memaksa sumber daya baru) membuat nama ember unik yang dimulai dengan awalan yang ditentukan. Konflik dengan ember. | string | null | TIDAK |
control_object_ownership | Apakah akan mengelola kontrol kepemilikan bucket S3 pada ember ini. | bool | false | TIDAK |
CORS_RULE | Daftar peta yang berisi aturan untuk berbagi sumber daya lintas asal. | any | [] | TIDAK |
create_bucket | Kontrol jika ember S3 harus dibuat | bool | true | TIDAK |
diharapkan_bucket_owner | ID akun dari pemilik ember yang diharapkan | string | null | TIDAK |
force_destroy | (Opsional, default: false) Boolean yang menunjukkan semua objek harus dihapus dari ember sehingga ember dapat dihancurkan tanpa kesalahan. Objek -objek ini tidak dapat dipulihkan. | bool | false | TIDAK |
menganugerahkan | Hibah kebijakan ACL. Konflik dengan acl | any | [] | TIDAK |
abaikan_public_acls | Apakah Amazon S3 harus mengabaikan ACL publik untuk ember ini. | bool | true | TIDAK |
cerdas_tiering | Peta yang berisi konfigurasi tingkat cerdas. | any | {} | TIDAK |
inventory_configuration | Peta yang berisi konfigurasi inventaris S3. | any | {} | TIDAK |
inventory_self_source_destination | Apakah ember sumber inventaris juga merupakan ember tujuan. | bool | false | TIDAK |
Inventory_source_account_id | ID Akun Sumber Inventaris. | string | null | TIDAK |
inventory_source_bucket_arn | Sumber inventaris ember arn. | string | null | TIDAK |
lifecycle_rule | Daftar peta yang berisi konfigurasi manajemen siklus hidup objek. | any | [] | TIDAK |
logging | Peta yang berisi konfigurasi logging ember akses. | any | {} | TIDAK |
metric_configuration | Peta yang berisi konfigurasi metrik bucket. | any | [] | TIDAK |
Object_lock_configuration | Peta yang berisi konfigurasi penguncian objek S3. | any | {} | TIDAK |
Object_lock_enabled | Apakah S3 Bucket harus mengaktifkan konfigurasi kunci objek. | bool | false | TIDAK |
Object_ownership | Kepemilikan objek. Nilai yang valid: BucketOwnerenForced, BucketownerPreferred atau ObjectWriter. 'Bucketownerenforced': ACLS dinonaktifkan, dan pemilik ember secara otomatis memiliki dan memiliki kontrol penuh atas setiap objek dalam ember. 'BucketOwnerPreferred': Objek yang diunggah ke kepemilikan Ubah Bucket kepada pemilik ember jika objek diunggah dengan ACL kalengan yang penuh dengan pemilik-pengendalian. 'ObjectWriter': Akun pengunggahan akan memiliki objek jika objek diunggah dengan ACL kalengan ember-ember-full-control. | string | "BucketOwnerEnforced" | TIDAK |
pemilik | Nama dan ID tampilan pemilik bucket. Konflik dengan acl | map(string) | {} | TIDAK |
kebijakan | (Opsional) Dokumen JSON Kebijakan Bucket yang valid. Perhatikan bahwa jika dokumen kebijakan tidak cukup spesifik (tetapi masih valid), Terraform dapat memandang kebijakan tersebut terus berubah dalam rencana terraform. Dalam hal ini, pastikan Anda menggunakan verbose/versi spesifik dari kebijakan tersebut. Untuk informasi lebih lanjut tentang membangun dokumen kebijakan AWS IAM dengan Terraform, lihat Panduan Dokumen Kebijakan AWS IAM. | string | null | TIDAK |
putin_khuylo | Apakah Anda setuju bahwa Putin tidak menghormati kedaulatan Ukraina dan integritas teritorial? Info lebih lanjut: https://en.wikipedia.org/wiki/putin_khuylo! | bool | true | TIDAK |
replikasi_configuration | Peta yang berisi konfigurasi replikasi lintas wilayah. | any | {} | TIDAK |
request_payer | (Opsional) Menentukan siapa yang harus menanggung biaya transfer data Amazon S3. Bisa berupa bucketowner atau pemohon. Secara default, pemilik S3 Bucket akan mengeluarkan biaya transfer data apa pun. Lihat Pemohon Membayar Panduan Pengembang Buckets untuk informasi lebih lanjut. | string | null | TIDAK |
batasi_public_buckets | Apakah Amazon S3 harus membatasi kebijakan ember publik untuk ember ini. | bool | true | TIDAK |
server_side_encryption_configuration | Peta yang berisi konfigurasi enkripsi sisi server. | any | {} | TIDAK |
tag | (Opsional) Pemetaan tag untuk ditetapkan ke ember. | map(string) | {} | TIDAK |
transition_default_minimum_object_size | Perilaku ukuran objek minimum default diterapkan pada konfigurasi siklus hidup. Nilai yang valid: all_storage_classes_128k (default), varies_by_storage_class | string | null | TIDAK |
versi | Peta yang berisi konfigurasi versi. | map(string) | {} | TIDAK |
situs web | Peta yang berisi hosting situs web statis atau konfigurasi pengalihan. | any | {} | TIDAK |
Nama | Keterangan |
---|---|
s3_bucket_arn | Arn ember. Akan menjadi format arn: aws: s3 ::: bucketname. |
s3_bucket_bucket_domain_name | Nama domain bucket. Akan menjadi format bucketname.s3.amazonaws.com. |
s3_bucket_bucket_regional_domain_name | Nama domain khusus wilayah bucket. Nama domain bucket termasuk nama wilayah, silakan merujuk di sini untuk format. Catatan: AWS CloudFront memungkinkan menentukan titik akhir khusus wilayah S3 saat membuat asal S3, itu akan mencegah masalah pengalihan dari CloudFront ke URL asal S3. |
s3_bucket_hosted_zone_id | Route 53 Hosted Zone ID untuk wilayah ember ini. |
s3_bucket_id | Nama ember. |
s3_bucket_lifecycle_configuration_rules | Aturan siklus hidup ember, jika ember dikonfigurasi dengan aturan siklus hidup. Jika tidak, ini akan menjadi string kosong. |
s3_bucket_policy | Kebijakan ember, jika ember dikonfigurasi dengan kebijakan. Jika tidak, ini akan menjadi string kosong. |
s3_bucket_region | Wilayah AWS ember ini berada. |
s3_bucket_website_domain | Domain titik akhir situs web, jika ember dikonfigurasi dengan situs web. Jika tidak, ini akan menjadi string kosong. Ini digunakan untuk membuat catatan alias Route 53. |
s3_bucket_website_endpoint | Titik akhir situs web, jika ember dikonfigurasi dengan situs web. Jika tidak, ini akan menjadi string kosong. |
Modul dikelola oleh Anton Babenko dengan bantuan dari kontributor yang luar biasa ini.
Apache 2 berlisensi. Lihat lisensi untuk detail lengkap.