Terraformの「aws_s3_bucket_public_access_block」の箇所について、
全てのS3バケットに共通しております。
こちらは一つにまとめたいのですが、プログラミングの関数みたいな形で、
ひとまとめにすることは可能でしょうか?
また、可能でしたらその設定方法をご教示ください。
「module」は利用せずに、1ファイル内で完結するものとします。
########################################################## # variable 設定 ########################################################## # 変数 variable "project" {} variable "env" {} ###################################################################### # S3 バケット ###################################################################### # データレイク用S3 resource "aws_s3_bucket" "data_lake_s3" { bucket = "${var.project}-data-lake-${var.env}" acl = "private" # S3バケットのデフォルト暗号化 server_side_encryption_configuration { rule { apply_server_side_encryption_by_default { kms_master_key_id = "aws/s3" sse_algorithm = "aws:kms" } } } tags = { Name = "${var.project}-data-lake-${var.env}" } } resource "aws_s3_bucket_public_access_block" "data_lake_s3_block" { bucket = aws_s3_bucket.data_lake_s3.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true } # データウェアハウス用S3 resource "aws_s3_bucket" "data_warehouse_s3" { bucket = "${var.project}-data-warehouse-${var.env}" acl = "private" # S3バケットのデフォルト暗号化 server_side_encryption_configuration { rule { apply_server_side_encryption_by_default { kms_master_key_id = "aws/s3" sse_algorithm = "aws:kms" } } } tags = { Name = "${var.project}-data-warehouse-${var.env}" } } resource "aws_s3_bucket_public_access_block" "data_warehouse_s3_block1" { bucket = aws_s3_bucket.data_warehouse_s3.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true } # データマート用S3 resource "aws_s3_bucket" "data_mart_s3" { bucket = "${var.project}-data-mart-${var.env}" acl = "private" # S3バケットのデフォルト暗号化 server_side_encryption_configuration { rule { apply_server_side_encryption_by_default { kms_master_key_id = "aws/s3" sse_algorithm = "aws:kms" } } } tags = { Name = "${var.project}-data-mart-${var.env}" } } resource "aws_s3_bucket_public_access_block" "data_mart_s3_block2" { bucket = aws_s3_bucket.data_mart_s3.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true } # Athena用 resource "aws_s3_bucket" "athena_log_s3" { bucket = "${var.project}-athena-log-${var.env}" acl = "private" key = "analytics/" # S3バケットのデフォルト暗号化 server_side_encryption_configuration { rule { apply_server_side_encryption_by_default { kms_master_key_id = "aws/s3" sse_algorithm = "aws:kms" } } } tags = { Name = "${var.project}-athena-log-${var.env}" } } resource "aws_s3_bucket_public_access_block" "athena_log_s3_block3" { bucket = aws_s3_bucket.athena_log_s3.id block_public_acls = true block_public_policy = true ignore_public_acls = true restrict_public_buckets = true }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/01 08:55
2022/10/01 09:50