s3.tf 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. }
  35. //AWS Provider outdated arguments <4.4.0
  36. /*resource "aws_s3_bucket" "artifacts" {
  37. bucket = "xdr-codebuild-artifacts"
  38. force_destroy = true
  39. acl = "private"
  40. server_side_encryption_configuration {
  41. rule {
  42. apply_server_side_encryption_by_default {
  43. kms_master_key_id = aws_kms_key.s3_codebuild_artifacts.arn
  44. sse_algorithm = "aws:kms"
  45. }
  46. }
  47. }
  48. }
  49. */