terraform aws s3 bucket
v4.2.2
Terraform AWS 제공 업체가 제공하는 모든 (또는 거의 모든) 기능으로 AWS에서 S3 버킷을 생성하는 Terraform MOMOL.
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
사용할 수 없으므로 솔루션은 Argument 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()
-String을 지원 하여이 문제를 해결합니다.
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 모듈의 사용자는 Terraform 0.13에서 사용할 수있게 된 module
블록 내에서 for_each
메타 관습을 사용하여 여러 유사한 리소스를 생성 할 수 있습니다.
Terragrunt 사용자는 구성 파일의 양을 줄이려면 Wrappers 디렉토리에 제공된 모듈을 사용하여 유사한 결과를 얻을 수 있습니다.
이름 | 버전 |
---|---|
Terraform | > = 1.0 |
AWS | > = 5.70 |
이름 | 버전 |
---|---|
AWS | > = 5.70 |
모듈이 없습니다.
이름 | 유형 |
---|---|
aws_s3_bucket | 의지 |
aws_s3_bucket_accelerate_configuration | 의지 |
AWS_S3_BUCKET_ACL | 의지 |
AWS_S3_BUCKET_ANALYTICS_CONFIGURATION.THIS | 의지 |
AWS_S3_BUCKET_CORS_CONFIGURATION.THIS | 의지 |
AWS_S3_BUCKET_INTELLIGENT_TIERING_CONFIGURATION.THIS | 의지 |
aws_s3_bucket_inventory | 의지 |
aws_s3_bucket_lifecycle_configuration | 의지 |
aws_s3_bucket_logging | 의지 |
aws_s3_bucket_metric.this | 의지 |
aws_s3_bucket_object_lock_configuration | 의지 |
aws_s3_bucket_ownership_controls. | 의지 |
aws_s3_bucket_policy | 의지 |
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 | 의지 |
AWS_S3_BUCKET_VERSIONING | 의지 |
aws_s3_bucket_website_configuration | 의지 |
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 | 데이터 소스 |
이름 | 설명 | 유형 | 기본 | 필수의 |
---|---|---|---|---|
가속도 _status | (선택 사항) 기존 버킷의 가속 구성을 설정합니다. 활성화 또는 중단 될 수 있습니다. | string | null | 아니요 |
access_log_delivery_policy_source_accounts | (선택 사항) AWS 계정 ID 목록은이 버킷에 액세스 로그를 전달할 수 있어야합니다. | list(string) | [] | 아니요 |
access_log_delivery_policy_source_buckets | (선택 사항)이 버킷에 액세스 로그를 전달할 수 있어야하는 S3 버킷 ARN 목록. | list(string) | [] | 아니요 |
ACL | (선택 사항) 통조림 ACL을 적용 할 수 있습니다. grant 와의 충돌 | string | null | 아니요 |
허용 _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 버킷에 ELB 로그 전달 정책이 첨부되어야하는 경우 제어 | 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 | (선택 사항, New Resource를 강요) 지정된 접두사로 시작하여 고유 한 버킷 이름을 만듭니다. 버킷과 충돌합니다. | string | null | 아니요 |
control_object_ownership | 이 버킷에서 S3 버킷 소유권 컨트롤을 관리할지 여부. | bool | false | 아니요 |
CORS_RULE | 교차 오리핀 자원 공유에 대한 규칙을 포함하는지도 목록. | any | [] | 아니요 |
create_bucket | S3 버킷을 작성 해야하는 경우 컨트롤 | bool | true | 아니요 |
예상 _bucket_owner | 예상 버킷 소유자의 계정 ID | string | null | 아니요 |
Force_destroy | (선택 사항, 기본값 : false) 모든 객체를 버킷에서 삭제하여 버킷을 오류없이 파괴 할 수 있도록 부울. 이 객체는 복구 할 수 없습니다. | bool | false | 아니요 |
승인하다 | ACL 정책 보조금. acl 과 충돌합니다 | any | [] | 아니요 |
incior_public_acls | Amazon S3 가이 버킷의 공개 ACL을 무시 해야하는지 여부. | bool | true | 아니요 |
지능형 _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, BucketownerPrefrered 또는 ObjectWriter. 'BucketownerEnforced': ACL은 비활성화되어 있으며 버킷 소유자는 자동으로 버킷의 모든 객체를 자동으로 소유하고 완전히 제어합니다. 'BucketownerPreferred': 버킷 소유자에게 버킷 변경 소유권에 업로드 된 경우 버킷 소유자에게 버킷 변경 소유권에 업로드 된 오브젝트. 'ObjectWriter': 객체가 버킷 소유자 가득한 통조림 통조림 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 | 아니요 |
복제 _configuration | 지역 간 복제 구성을 포함하는 맵. | any | {} | 아니요 |
request_payer | (선택 사항) Amazon S3 데이터 전송 비용을 부담 해야하는 사람을 지정합니다. 버킷 타운 또는 요청자 일 수 있습니다. 기본적으로 S3 버킷의 소유자는 데이터 전송 비용이 발생합니다. 자세한 내용은 요청 자 지불 버킷 개발자 안내서를 참조하십시오. | string | null | 아니요 |
제한 _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) | {} | 아니요 |
웹 사이트 | 정적 웹 사이트 호스팅 또는 구성을 포함하는 맵. | any | {} | 아니요 |
이름 | 설명 |
---|---|
s3_bucket_arn | 양동이의 Arn. ARN : AWS : S3 ::: BucketName 형식입니다. |
s3_bucket_bucket_domain_name | 버킷 도메인 이름. 형식 BucketName.s3.amazonaws.com입니다. |
s3_bucket_bucket_regional_domain_name | 버킷 지역 별 도메인 이름. 지역 이름을 포함한 버킷 도메인 이름은 여기에서 형식을 참조하십시오. 참고 : AWS CloudFront는 S3 원점을 생성 할 때 S3 영역 별 엔드 포인트를 지정할 수있게하므로 CloudFront에서 S3 Origin URL까지의 리디렉션 문제를 방지합니다. |
s3_bucket_hosted_zone_id | Route 53 은이 버킷 영역에 대한 영역 ID를 호스팅했습니다. |
s3_bucket_id | 양동이의 이름. |
s3_bucket_lifecycle_configuration_rules | 버킷의 수명주기 규칙은 수명주기 규칙으로 구성된 경우. 그렇지 않다면, 이것은 빈 줄이됩니다. |
s3_bucket_policy | 양동이가 정책으로 구성된 경우 버킷 정책. 그렇지 않다면, 이것은 빈 줄이됩니다. |
s3_bucket_region | 이 버킷은 AWS 지역에 있습니다. |
s3_bucket_website_domain | 버킷이 웹 사이트로 구성된 경우 웹 사이트 엔드 포인트의 도메인. 그렇지 않다면, 이것은 빈 줄이됩니다. 이것은 Route 53 별칭 레코드를 만드는 데 사용됩니다. |
s3_bucket_website_endpoint | 버킷이 웹 사이트로 구성된 경우 웹 사이트 엔드 포인트. 그렇지 않다면, 이것은 빈 줄이됩니다. |
모듈은 Anton Babenko 가이 멋진 기고자들의 도움으로 유지 관리합니다.
Apache 2 라이센스. 자세한 내용은 라이센스를 참조하십시오.