s3.tf 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #S3 bucket for codebuild output
  2. resource "aws_s3_bucket" "artifacts" {
  3. bucket = "xdr-codebuild-artifacts"
  4. force_destroy = true
  5. }
  6. resource "aws_s3_bucket_acl" "s3_acl_artifacts" {
  7. bucket = aws_s3_bucket.artifacts.id
  8. acl = "private"
  9. }
  10. resource "aws_s3_bucket_server_side_encryption_configuration" "s3_sse_artifacts" {
  11. bucket = aws_s3_bucket.artifacts.id
  12. rule {
  13. apply_server_side_encryption_by_default {
  14. kms_master_key_id = aws_kms_key.s3_codebuild_artifacts.arn
  15. sse_algorithm = "aws:kms"
  16. }
  17. }
  18. }
  19. resource "aws_s3_bucket_policy" "artifacts" {
  20. bucket = aws_s3_bucket.artifacts.id
  21. policy = data.aws_iam_policy_document.artifacts.json
  22. }
  23. data "aws_iam_policy_document" "artifacts" {
  24. statement {
  25. sid = "AllowS3Access"
  26. actions = ["s3:GetObject", "s3:GetObjectVersion"]
  27. effect = "Allow"
  28. resources = ["${aws_s3_bucket.artifacts.arn}/*"]
  29. principals {
  30. type = "AWS"
  31. identifiers = sort([for a in var.responsible_accounts[var.environment] : "arn:${var.aws_partition}:iam::${a}:root"])
  32. }
  33. }
  34. }