이 모듈을 사용하면 하나 이상의 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] "
}
}
기능적 예제는 예제 디렉터리에 포함되어 있습니다.
이름 | 설명 | 유형 | 기본 | 필수의 |
---|---|---|---|---|
관리자 | 모든 버킷에 role/storage.objectAdmin이 부여되는 IAM 스타일 구성원입니다. | list(string) | [] | 아니요 |
자동 클래스 | 접두사가 없는 소문자 버킷 이름의 선택적 맵 => 부울, 기본값은 false입니다. | map(bool) | {} | 아니요 |
버킷_관리자 | 접두사가 없는 소문자 이름 맵 => 쉼표로 구분된 IAM 스타일 버킷별 관리자. | map(string) | {} | 아니요 |
bucket_creators | 접두사가 없는 소문자 이름 맵 => 쉼표로 구분된 IAM 스타일 버킷당 생성자. | map(string) | {} | 아니요 |
bucket_hmac_key_admins | 접두사가 없는 소문자 이름 맵 => 쉼표로 구분된 IAM 스타일 버킷별 HMAC 키 관리자. | map(string) | {} | 아니요 |
bucket_lifecycle_rules | 특정 버킷에 대한 추가 lifecycle_rules입니다. 접두사가 없는 소문자 이름 맵 => 구성할 수명 주기 규칙 목록. | 지도(세트(객체({ | {} | 아니요 |
bucket_policy_only | 지정된 버킷에서 임시 ACL을 비활성화합니다. 기본값은 true입니다. 접두사가 없는 소문자 이름의 맵 => 부울 | 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) | [] | 아니요 |
크리에이터 | 모든 버킷에 role/storage.objectCreators가 부여되는 IAM 스타일 구성원입니다. | 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 | 모든 버킷에 role/storage.hmacKeyAdmin이 부여되는 IAM 스타일 구성원입니다. | list(string) | [] | 아니요 |
hmac_service_accounts | GCS에 대한 액세스 권한을 부여할 HMAC 서비스 계정 목록입니다. | map(string) | {} | 아니요 |
라벨 | 버킷에 부착할 라벨 | map(string) | {} | 아니요 |
lifecycle_rules | 구성할 수명 주기 규칙 목록입니다. 형식은 제공자 문서 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 | 버킷 프로젝트 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 | admins 및 bucket_admins에게roles/storage.objectAdmin 역할을 부여합니다. | bool | false | 아니요 |
set_creator_roles | creators 및 bucket_creators에 역할/storage.objectCreator 역할을 부여합니다. | bool | false | 아니요 |
set_hmac_access | GCS에 대한 S3 호환 액세스를 설정합니다. | bool | false | 아니요 |
set_hmac_key_admin_roles | hmac_key_admins 및 bucket_hmac_key_admins에 역할/storage.hmacKeyAdmin 역할을 부여합니다. | bool | false | 아니요 |
set_storage_admin_roles | Storage_admins 및 bucket_storage_admins에 Role/storage.admin 역할을 부여합니다. | bool | false | 아니요 |
set_viewer_roles | 뷰어 및 bucket_viewers에 role/storage.objectViewer 역할을 부여합니다. | bool | false | 아니요 |
Soft_delete_policy | 적용할 일시 삭제 정책입니다. 접두사가 없는 소문자 이름의 맵 => 일시 삭제 정책. 형식은 제공업체 문서 https://www.terraform.io/docs/providers/google/r/storage_bucket.html#nested_soft_delete_policy에 설명된 것과 동일합니다. | map(any) | {} | 아니요 |
스토리지_관리자 | 모든 버킷에 role/storage.admin이 부여되는 IAM 스타일 구성원입니다. | list(string) | [] | 아니요 |
스토리지_클래스 | 버킷 저장소 클래스. | string | "STANDARD" | 아니요 |
버전 관리 | 접두사가 없는 소문자 이름의 선택적 맵 => 부울, 기본값은 false입니다. | map(bool) | {} | 아니요 |
시청자 | 모든 버킷에 role/storage.objectViewer가 부여되는 IAM 스타일 구성원입니다. | list(string) | [] | 아니요 |
웹사이트 | 웹사이트 가치 지도. 지원되는 속성: main_page_suffix, not_found_page | map(any) | {} | 아니요 |
이름 | 설명 |
---|---|
apphub_service_uri | Apphub에서 사용할 CAIS 스타일의 URI입니다. |
버킷 | 버킷 리소스(일회용) |
버킷 | 버킷 리소스를 목록으로 표시합니다. |
버킷_맵 | 이름별 버킷 리소스입니다. |
hmac_keys | HMAC 키 목록입니다. |
이름 | 버킷 이름(일회용). |
이름 | 버킷 이름. |
이름_목록 | 버킷 이름 목록입니다. |
URL | 버킷 URL(일회용). |
URL | 버킷 URL. |
URL_목록 | 버킷 URL 목록입니다. |
다음 섹션에서는 이 모듈을 사용하기 위한 요구 사항을 설명합니다.
다음 종속성을 사용할 수 있어야 합니다.
이 모듈의 리소스를 프로비저닝하려면 다음 역할이 있는 사용자 또는 서비스 계정 자격 증명을 사용해야 합니다.
roles/storage.admin
Project Factory 모듈과 IAM 모듈을 함께 사용하여 필요한 역할이 적용된 서비스 계정을 프로비저닝할 수 있습니다.
이 모듈의 리소스를 호스팅하려면 다음 API가 활성화된 프로젝트를 사용해야 합니다.
storage-api.googleapis.com
Project Factory 모듈을 사용하면 필요한 API가 활성화된 프로젝트를 프로비저닝할 수 있습니다.
이 모듈에 기여하는 방법에 대한 정보는 기여 지침을 참조하세요.