Skip to content
s3.tf 1.8 KiB
Newer Older
nimrod's avatar
nimrod committed
resource "aws_s3_bucket" "payloads" {
nimrod's avatar
nimrod committed
  # checkov:skip=CKV_AWS_18
  # checkov:skip=CKV_AWS_19
nimrod's avatar
nimrod committed
  # checkov:skip=CKV_AWS_21
nimrod's avatar
nimrod committed
  # checkov:skip=CKV_AWS_144
  # checkov:skip=CKV_AWS_145
nimrod's avatar
nimrod committed
  bucket        = local.name
  force_destroy = true
nimrod's avatar
nimrod committed

nimrod's avatar
nimrod committed
locals {
  payloads_bucket_arn  = aws_s3_bucket.payloads.arn
  payloads_bucket_name = aws_s3_bucket.payloads.bucket
}

nimrod's avatar
nimrod committed
resource "aws_s3_bucket_versioning" "payloads" {
  bucket = local.payloads_bucket_name
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_acl" "payloads" {
  acl    = "private"
  bucket = local.payloads_bucket_name
}

nimrod's avatar
nimrod committed
resource "aws_s3_bucket_public_access_block" "payloads" {
  bucket = aws_s3_bucket.payloads.bucket

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

nimrod's avatar
nimrod committed
output "payloads_bucket_arn" {
  description = "ARN of the payloads S3 bucket."
  value       = local.payloads_bucket_arn
}

output "payloads_bucket_name" {
  description = "Name of the payloads S3 bucket."
  value       = local.payloads_bucket_name
}

nimrod's avatar
nimrod committed
resource "aws_s3_object" "payload" {
nimrod's avatar
nimrod committed
  # checkov:skip=CKV_AWS_186
nimrod's avatar
nimrod committed
  bucket = local.payloads_bucket_name
nimrod's avatar
nimrod committed
  key    = "payload.zip"
nimrod's avatar
nimrod committed
  source = "payload.zip"
  etag   = filemd5("payload.zip")
}

locals {
nimrod's avatar
nimrod committed
  payload_object_etag    = aws_s3_object.payload.etag
  payload_object_name    = aws_s3_object.payload.key
  payload_object_version = aws_s3_object.payload.version_id
nimrod's avatar
nimrod committed
}

output "payload_object_etag" {
  description = "ETag of the payload S3 object."
  value       = local.payload_object_etag
}

output "payload_object_name" {
  description = "Name of the payload S3 object."
  value       = local.payload_object_name
}

output "payload_object_version" {
  description = "Version of the payload S3 object."
  value       = local.payload_object_version
}