โมดูลนี้ทำให้ง่ายต่อการสร้างที่เก็บข้อมูล GCS อย่างน้อย 1 รายการ และมอบหมายสิทธิ์พื้นฐานให้กับผู้ใช้ที่กำหนดเอง
ทรัพยากร/บริการ/การเปิดใช้งาน/การลบที่โมดูลนี้จะสร้าง/ทริกเกอร์คือ:
หากคุณต้องการสร้างบัคเก็ตเพียงอันเดียว ให้พิจารณาใช้โมดูลย่อยบัคเก็ตแบบธรรมดาแทน
โมดูลนี้มีไว้สำหรับใช้กับ 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) | [] | เลขที่ |
คลาสอัตโนมัติ | แผนที่ทางเลือกของชื่อบัคเก็ตที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => บูลีน มีค่าเริ่มต้นเป็นเท็จ | map(bool) | {} | เลขที่ |
bucket_admins | แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ผู้ดูแลระบบต่อบัคเก็ตสไตล์ IAM ที่คั่นด้วยเครื่องหมายจุลภาค | map(string) | {} | เลขที่ |
bucket_creators | แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ผู้สร้างต่อบัคเก็ตสไตล์ IAM ที่คั่นด้วยเครื่องหมายจุลภาค | map(string) | {} | เลขที่ |
bucket_hmac_key_admins | แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ผู้ดูแลระบบคีย์ HMAC แบบ IAM ที่คั่นด้วยเครื่องหมายจุลภาค | map(string) | {} | เลขที่ |
bucket_lifecycle_กฎ | lifecycle_rules เพิ่มเติมสำหรับบัคเก็ตเฉพาะ แผนผังของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => รายการกฎวงจรการใช้งานที่ต้องกำหนดค่า | แผนที่ (ชุด (วัตถุ ({ | {} | เลขที่ |
bucket_policy_only | ปิดใช้งาน ACL เฉพาะกิจในที่เก็บข้อมูลที่ระบุ ค่าเริ่มต้นเป็นจริง แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => บูลีน | map(bool) | {} | เลขที่ |
bucket_storage_admins | แผนผังของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ผู้ดูแลระบบพื้นที่เก็บข้อมูลแบบ IAM แบบคั่นด้วยเครื่องหมายจุลภาค | map(string) | {} | เลขที่ |
bucket_viewers | แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ผู้ชมต่อบัคเก็ตสไตล์ IAM ที่คั่นด้วยเครื่องหมายจุลภาค | map(string) | {} | เลขที่ |
คอร์ | ชุดแผนที่ของแอตทริบิวต์ประเภทผสมสำหรับค่า CORS ดูประเภทแอตทริบิวต์ที่เหมาะสมได้ที่นี่: https://www.terraform.io/docs/providers/google/r/storage_bucket.html#cors | set(any) | [] | เลขที่ |
ผู้สร้าง | สมาชิกสไตล์ IAM ที่จะได้รับบทบาท/storage.objectCreators บนบัคเก็ตทั้งหมด | list(string) | [] | เลขที่ |
กำหนดเอง_ตำแหน่ง_config | แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ออบเจ็กต์การกำหนดค่าตำแหน่งที่กำหนดเอง รูปแบบเหมือนกับที่อธิบายไว้ในเอกสารประกอบของผู้ให้บริการ https://www.terraform.io/docs/providers/google/r/storage_bucket#custom_placement_config | any | {} | เลขที่ |
default_event_based_hold | เปิดใช้งานการระงับตามเหตุการณ์สำหรับออบเจ็กต์ใหม่ที่เพิ่มลงในที่เก็บข้อมูลเฉพาะ ค่าเริ่มต้นเป็นเท็จ แผนที่ของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => บูลีน | map(bool) | {} | เลขที่ |
Encryption_key_names | แมปตัวเลือกของสตริงชื่อ => อักษรตัวพิมพ์เล็กที่ไม่มีคำนำหน้า สตริงว่างจะถูกละเว้น | map(string) | {} | เลขที่ |
โฟลเดอร์ | แผนที่ของชื่อตัวพิมพ์เล็กที่ไม่มีคำนำหน้า => รายการของวัตถุโฟลเดอร์ระดับบนสุด | map(list(string)) | {} | เลขที่ |
บังคับ_ทำลาย | แผนที่ทางเลือกของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => บูลีน มีค่าเริ่มต้นเป็นเท็จ | 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 ยกเว้น Condition.matches_storage_class ควรเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาค | ชุด (วัตถุ ({ | [] | เลขที่ |
ที่ตั้ง | ตำแหน่งถัง | string | "EU" | เลขที่ |
การบันทึก | แผนผังของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => ออบเจ็กต์การกำหนดค่าการบันทึกที่เก็บข้อมูล รูปแบบเหมือนกับที่อธิบายไว้ในเอกสารของผู้ให้บริการ https://www.terraform.io/docs/providers/google/r/storage_bucket.html#logging | any | {} | เลขที่ |
ชื่อ | คำต่อท้ายชื่อที่เก็บข้อมูล | list(string) | ไม่มี | ใช่ |
คำนำหน้า | คำนำหน้าที่ใช้ในการสร้างชื่อที่เก็บข้อมูล | string | "" | เลขที่ |
โครงการ_id | รหัสโปรเจ็กต์ที่เก็บข้อมูล | string | ไม่มี | ใช่ |
public_access_prevention | ป้องกันการเข้าถึงบัคเก็ตแบบสาธารณะ ค่าที่ยอมรับได้นั้นสืบทอดหรือบังคับใช้ หากรับมา ที่เก็บข้อมูลจะใช้การป้องกันการเข้าถึงแบบสาธารณะเฉพาะในกรณีที่ที่เก็บข้อมูลอยู่ภายใต้ข้อจำกัดนโยบายองค์กรป้องกันการเข้าถึงแบบสาธารณะ | string | "inherited" | เลขที่ |
สุ่ม_คำต่อท้าย | เพิ่มคำต่อท้าย 4 อักขระที่เหมือนกันแต่สุ่มให้กับชื่อบัคเก็ตทั้งหมด | bool | false | เลขที่ |
การเก็บรักษา_นโยบาย | แผนผังค่านโยบายการเก็บรักษา รูปแบบเหมือนกับที่อธิบายไว้ในเอกสารประกอบของผู้ให้บริการ https://www.terraform.io/docs/providers/google/r/storage_bucket#retention_policy | any | {} | เลขที่ |
set_admin_roles | มอบบทบาท/storage.objectAdmin ให้กับผู้ดูแลระบบและ bucket_admins | bool | false | เลขที่ |
set_creator_roles | มอบบทบาท/storage.objectCreator ให้กับผู้สร้างและ bucket_creators | bool | false | เลขที่ |
set_hmac_access | ตั้งค่าการเข้าถึง GCS ที่เข้ากันได้กับ S3 | bool | false | เลขที่ |
set_hmac_key_admin_roles | มอบบทบาท/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 | มอบบทบาท/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" | เลขที่ |
การกำหนดเวอร์ชัน | แผนที่ทางเลือกของชื่อที่ไม่มีคำนำหน้าตัวพิมพ์เล็ก => บูลีน มีค่าเริ่มต้นเป็นเท็จ | 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 ที่จำเป็น
โปรดดูแนวทางการสนับสนุนสำหรับข้อมูลเกี่ยวกับการมีส่วนร่วมในโมดูลนี้