Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
s3.tf 4.08 KiB
Newer Older
Gilles Habran's avatar
Gilles Habran committed
resource "aws_s3_bucket" "input_bucket" {
  bucket = var.s3_input_bucket_name

  # Prevents Terraform from destroying or replacing this object - a great safety mechanism
  lifecycle {
    prevent_destroy = true
  }

  tags = var.tags
}

resource "aws_s3_bucket_versioning" "input_bucket" {
  bucket = aws_s3_bucket.input_bucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_acl" "input_bucket" {
  bucket = aws_s3_bucket.input_bucket.id
Julien Nowak's avatar
Julien Nowak committed
  acl    = "private"
Gilles Habran's avatar
Gilles Habran committed
}

resource "aws_s3_bucket_public_access_block" "input_bucket" {
  bucket = aws_s3_bucket.input_bucket.id

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

resource "aws_s3_bucket_server_side_encryption_configuration" "input_bucket" {
  bucket = aws_s3_bucket.input_bucket.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}
Gilles Habran's avatar
Gilles Habran committed
resource "aws_ssm_parameter" "input_bucket" {
  name  = var.ssm_buckets_input_id
  type  = "String"
  value = aws_s3_bucket.input_bucket.id
}

resource "aws_s3_bucket" "data_bucket" {
  bucket = var.s3_data_bucket_name

  # Prevents Terraform from destroying or replacing this object - a great safety mechanism
  lifecycle {
    prevent_destroy = true
  }

  tags = var.tags
}

resource "aws_s3_bucket_versioning" "data_bucket" {
  bucket = aws_s3_bucket.data_bucket.id
  versioning_configuration {
    status = "Suspended"
  }
}

resource "aws_s3_bucket_acl" "data_bucket" {
  bucket = aws_s3_bucket.data_bucket.id
Julien Nowak's avatar
Julien Nowak committed
  acl    = "private"
}

resource "aws_s3_bucket_public_access_block" "data_bucket" {
  bucket = aws_s3_bucket.data_bucket.id

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

resource "aws_s3_bucket_server_side_encryption_configuration" "data_bucket" {
  bucket = aws_s3_bucket.data_bucket.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}
Gilles Habran's avatar
Gilles Habran committed

resource "aws_s3_bucket" "ml_data_bucket" {
  bucket = var.s3_ml_data_bucket_name

  # Prevents Terraform from destroying or replacing this object - a great safety mechanism
  lifecycle {
    prevent_destroy = true
  }

  tags = var.tags
}

resource "aws_s3_bucket_versioning" "ml_data_bucket" {
  bucket = aws_s3_bucket.ml_data_bucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_acl" "ml_data_bucket" {
  bucket = aws_s3_bucket.ml_data_bucket.id
  acl    = "private"
}

resource "aws_s3_bucket_public_access_block" "ml_data_bucket" {
  bucket = aws_s3_bucket.ml_data_bucket.id

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

resource "aws_s3_bucket_server_side_encryption_configuration" "ml_data_bucket" {
  bucket = aws_s3_bucket.ml_data_bucket.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}

resource "aws_ssm_parameter" "ml_data_bucket" {
  name  = var.ssm_buckets_ml_data_id
  type  = "String"
  value = aws_s3_bucket.ml_data_bucket.id
}

resource "aws_s3_bucket" "ml_models_bucket" {
  bucket = var.s3_ml_models_bucket_name

  # Prevents Terraform from destroying or replacing this object - a great safety mechanism
  lifecycle {
    prevent_destroy = true
  }

  tags = var.tags
}

resource "aws_s3_bucket_versioning" "ml_models_bucket" {
  bucket = aws_s3_bucket.ml_models_bucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_acl" "ml_models_bucket" {
  bucket = aws_s3_bucket.ml_models_bucket.id
  acl    = "private"
}

resource "aws_s3_bucket_public_access_block" "ml_models_bucket" {
  bucket = aws_s3_bucket.ml_models_bucket.id

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

resource "aws_s3_bucket_server_side_encryption_configuration" "ml_models_bucket" {
  bucket = aws_s3_bucket.ml_models_bucket.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}