From ab2f9c010b1ad6f4b2e34e889c5d5d156ceaaef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=80=D0=B8=D1=81=D1=8F=D0=B6=D0=BD=D1=96=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2?= <150026110+maximprysyazhnikov@users.noreply.github.com> Date: Tue, 2 Sep 2025 04:30:56 +0300 Subject: [PATCH] Solution --- main.tf | 44 +++++++++++++++++++++++++++++++++++++-- outputs.tf | 11 +++++++--- s3_upload_screenshot.png | Bin 0 -> 62708 bytes terraform.tfvars | 2 +- tfplan.json | 1 + variables.tf | 4 ++-- 6 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 s3_upload_screenshot.png create mode 100644 tfplan.json diff --git a/main.tf b/main.tf index fc60f38..26c1992 100644 --- a/main.tf +++ b/main.tf @@ -1,3 +1,43 @@ -# 1. Deploy an S3 storage bucket +resource "random_id" "suffix" { + byte_length = 4 +} -# 2. Confugure bucket policy to allow grafana iam role to use storage +data "aws_caller_identity" "current" {} + +resource "aws_s3_bucket" "backups" { + bucket = "grafana-backups-${data.aws_caller_identity.current.account_id}-${random_id.suffix.hex}" + force_destroy = true +} + +data "aws_iam_policy_document" "bucket" { + statement { + sid = "AllowListBucketFromGrafanaRole" + effect = "Allow" + actions = ["s3:ListBucket"] + + principals { + type = "AWS" + identifiers = [var.grafana_iam_role_arn] + } + + resources = [aws_s3_bucket.backups.arn] + } + + statement { + sid = "AllowObjectReadWriteFromGrafanaRole" + effect = "Allow" + actions = ["s3:GetObject", "s3:PutObject"] + + principals { + type = "AWS" + identifiers = [var.grafana_iam_role_arn] + } + + resources = ["${aws_s3_bucket.backups.arn}/*"] + } +} + +resource "aws_s3_bucket_policy" "this" { + bucket = aws_s3_bucket.backups.id + policy = data.aws_iam_policy_document.bucket.json +} diff --git a/outputs.tf b/outputs.tf index df85631..3e43830 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,4 +1,9 @@ -output "bucket_name" { - value = aws_s3_bucket.grafana_backups.bucket - sensitive = false +output "s3_bucket_name" { + description = "Name of the S3 bucket for Grafana backups" + value = aws_s3_bucket.backups.bucket +} + +output "s3_bucket_arn" { + description = "ARN of the S3 bucket for Grafana backups" + value = aws_s3_bucket.backups.arn } diff --git a/s3_upload_screenshot.png b/s3_upload_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..bffd22bbd8df56999220b3f948c957acda128d5c GIT binary patch literal 62708 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 literal 0 HcmV?d00001 diff --git a/terraform.tfvars b/terraform.tfvars index 7f7bb12..cc62ffb 100644 --- a/terraform.tfvars +++ b/terraform.tfvars @@ -1 +1 @@ -grafana_iam_role_arn = "" +grafana_iam_role_arn = "arn:aws:iam::162646919043:role/grafana-ec2-role" diff --git a/tfplan.json b/tfplan.json new file mode 100644 index 0000000..c5b79c6 --- /dev/null +++ b/tfplan.json @@ -0,0 +1 @@ +{"format_version":"1.2","terraform_version":"1.13.0","variables":{"grafana_iam_role_arn":{"value":"arn:aws:iam::162646919043:role/grafana-ec2-role"}},"planned_values":{"outputs":{"s3_bucket_arn":{"sensitive":false,"type":"string","value":"arn:aws:s3:::grafana-backups-162646919043-537ed793"},"s3_bucket_name":{"sensitive":false,"type":"string","value":"grafana-backups-162646919043-537ed793"}},"root_module":{"resources":[{"address":"aws_s3_bucket.backups","mode":"managed","type":"aws_s3_bucket","name":"backups","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":{},"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"sensitive_values":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags":{},"tags_all":{},"versioning":[{}],"website":[]}},{"address":"aws_s3_bucket_policy.this","mode":"managed","type":"aws_s3_bucket_policy","name":"this","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"bucket":"grafana-backups-162646919043-537ed793","policy":"{\"Statement\":[{\"Action\":\"s3:ListBucket\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"},\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793\",\"Sid\":\"AllowListBucketFromGrafanaRole\"},{\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"},\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793/*\",\"Sid\":\"AllowObjectReadWriteFromGrafanaRole\"}],\"Version\":\"2012-10-17\"}"},"sensitive_values":{}},{"address":"random_id.suffix","mode":"managed","type":"random_id","name":"suffix","provider_name":"registry.terraform.io/hashicorp/random","schema_version":0,"values":{"b64_std":"U37Xkw==","b64_url":"U37Xkw","byte_length":4,"dec":"1400821651","hex":"537ed793","id":"U37Xkw","keepers":null,"prefix":null},"sensitive_values":{}}]}},"resource_drift":[{"address":"aws_s3_bucket.backups","mode":"managed","type":"aws_s3_bucket","name":"backups","provider_name":"registry.terraform.io/hashicorp/aws","change":{"actions":["update"],"before":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":null,"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"after":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":{},"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"after_unknown":{},"before_sensitive":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags_all":{},"versioning":[{}],"website":[]},"after_sensitive":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags":{},"tags_all":{},"versioning":[{}],"website":[]}}}],"resource_changes":[{"address":"aws_s3_bucket.backups","mode":"managed","type":"aws_s3_bucket","name":"backups","provider_name":"registry.terraform.io/hashicorp/aws","change":{"actions":["no-op"],"before":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":{},"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"after":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":{},"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"after_unknown":{},"before_sensitive":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags":{},"tags_all":{},"versioning":[{}],"website":[]},"after_sensitive":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags":{},"tags_all":{},"versioning":[{}],"website":[]}}},{"address":"aws_s3_bucket_policy.this","mode":"managed","type":"aws_s3_bucket_policy","name":"this","provider_name":"registry.terraform.io/hashicorp/aws","change":{"actions":["create"],"before":null,"after":{"bucket":"grafana-backups-162646919043-537ed793","policy":"{\"Statement\":[{\"Action\":\"s3:ListBucket\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"},\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793\",\"Sid\":\"AllowListBucketFromGrafanaRole\"},{\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"},\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793/*\",\"Sid\":\"AllowObjectReadWriteFromGrafanaRole\"}],\"Version\":\"2012-10-17\"}"},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}},{"address":"random_id.suffix","mode":"managed","type":"random_id","name":"suffix","provider_name":"registry.terraform.io/hashicorp/random","change":{"actions":["no-op"],"before":{"b64_std":"U37Xkw==","b64_url":"U37Xkw","byte_length":4,"dec":"1400821651","hex":"537ed793","id":"U37Xkw","keepers":null,"prefix":null},"after":{"b64_std":"U37Xkw==","b64_url":"U37Xkw","byte_length":4,"dec":"1400821651","hex":"537ed793","id":"U37Xkw","keepers":null,"prefix":null},"after_unknown":{},"before_sensitive":{},"after_sensitive":{}}}],"output_changes":{"s3_bucket_arn":{"actions":["no-op"],"before":"arn:aws:s3:::grafana-backups-162646919043-537ed793","after":"arn:aws:s3:::grafana-backups-162646919043-537ed793","after_unknown":false,"before_sensitive":false,"after_sensitive":false},"s3_bucket_name":{"actions":["no-op"],"before":"grafana-backups-162646919043-537ed793","after":"grafana-backups-162646919043-537ed793","after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"prior_state":{"format_version":"1.0","terraform_version":"1.13.0","values":{"outputs":{"s3_bucket_arn":{"sensitive":false,"value":"arn:aws:s3:::grafana-backups-162646919043-537ed793","type":"string"},"s3_bucket_name":{"sensitive":false,"value":"grafana-backups-162646919043-537ed793","type":"string"}},"root_module":{"resources":[{"address":"data.aws_caller_identity.current","mode":"data","type":"aws_caller_identity","name":"current","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"account_id":"162646919043","arn":"arn:aws:iam::162646919043:root","id":"162646919043","user_id":"162646919043"},"sensitive_values":{}},{"address":"data.aws_iam_policy_document.bucket","mode":"data","type":"aws_iam_policy_document","name":"bucket","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"id":"2007271248","json":"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"AllowListBucketFromGrafanaRole\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::grafana-backups-162646919043-537ed793\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::162646919043:role/grafana-ec2-role\"\n }\n },\n {\n \"Sid\": \"AllowObjectReadWriteFromGrafanaRole\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::grafana-backups-162646919043-537ed793/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::162646919043:role/grafana-ec2-role\"\n }\n }\n ]\n}","minified_json":"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AllowListBucketFromGrafanaRole\",\"Effect\":\"Allow\",\"Action\":\"s3:ListBucket\",\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"}},{\"Sid\":\"AllowObjectReadWriteFromGrafanaRole\",\"Effect\":\"Allow\",\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Resource\":\"arn:aws:s3:::grafana-backups-162646919043-537ed793/*\",\"Principal\":{\"AWS\":\"arn:aws:iam::162646919043:role/grafana-ec2-role\"}}]}","override_json":null,"override_policy_documents":null,"policy_id":null,"source_json":null,"source_policy_documents":null,"statement":[{"actions":["s3:ListBucket"],"condition":[],"effect":"Allow","not_actions":[],"not_principals":[],"not_resources":[],"principals":[{"identifiers":["arn:aws:iam::162646919043:role/grafana-ec2-role"],"type":"AWS"}],"resources":["arn:aws:s3:::grafana-backups-162646919043-537ed793"],"sid":"AllowListBucketFromGrafanaRole"},{"actions":["s3:GetObject","s3:PutObject"],"condition":[],"effect":"Allow","not_actions":[],"not_principals":[],"not_resources":[],"principals":[{"identifiers":["arn:aws:iam::162646919043:role/grafana-ec2-role"],"type":"AWS"}],"resources":["arn:aws:s3:::grafana-backups-162646919043-537ed793/*"],"sid":"AllowObjectReadWriteFromGrafanaRole"}],"version":"2012-10-17"},"sensitive_values":{"statement":[{"actions":[false],"condition":[],"not_actions":[],"not_principals":[],"not_resources":[],"principals":[{"identifiers":[false]}],"resources":[false]},{"actions":[false,false],"condition":[],"not_actions":[],"not_principals":[],"not_resources":[],"principals":[{"identifiers":[false]}],"resources":[false]}]}},{"address":"aws_s3_bucket.backups","mode":"managed","type":"aws_s3_bucket","name":"backups","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-backups-162646919043-537ed793","bucket":"grafana-backups-162646919043-537ed793","bucket_domain_name":"grafana-backups-162646919043-537ed793.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-backups-162646919043-537ed793.s3.eu-central-1.amazonaws.com","cors_rule":[],"force_destroy":true,"grant":[{"id":"ece69951308bd4d9af0fb1aacd8cb013ff1330b0cfa5afa856cac7782c8eb111","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z21DNDUVLTQW6Q","id":"grafana-backups-162646919043-537ed793","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"eu-central-1","replication_configuration":[],"request_payer":"BucketOwner","server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{"kms_master_key_id":"","sse_algorithm":"AES256"}],"bucket_key_enabled":false}]}],"tags":{},"tags_all":{},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"sensitive_values":{"cors_rule":[],"grant":[{"permissions":[false]}],"lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"replication_configuration":[],"server_side_encryption_configuration":[{"rule":[{"apply_server_side_encryption_by_default":[{}]}]}],"tags":{},"tags_all":{},"versioning":[{}],"website":[]},"depends_on":["data.aws_caller_identity.current","random_id.suffix"]},{"address":"random_id.suffix","mode":"managed","type":"random_id","name":"suffix","provider_name":"registry.terraform.io/hashicorp/random","schema_version":0,"values":{"b64_std":"U37Xkw==","b64_url":"U37Xkw","byte_length":4,"dec":"1400821651","hex":"537ed793","id":"U37Xkw","keepers":null,"prefix":null},"sensitive_values":{}}]}}},"configuration":{"provider_config":{"aws":{"name":"aws","full_name":"registry.terraform.io/hashicorp/aws","version_constraint":"~\u003e 5.0"},"random":{"name":"random","full_name":"registry.terraform.io/hashicorp/random"}},"root_module":{"outputs":{"s3_bucket_arn":{"expression":{"references":["aws_s3_bucket.backups.arn","aws_s3_bucket.backups"]},"description":"ARN of the S3 bucket for Grafana backups"},"s3_bucket_name":{"expression":{"references":["aws_s3_bucket.backups.bucket","aws_s3_bucket.backups"]},"description":"Name of the S3 bucket for Grafana backups"}},"resources":[{"address":"aws_s3_bucket.backups","mode":"managed","type":"aws_s3_bucket","name":"backups","provider_config_key":"aws","expressions":{"bucket":{"references":["data.aws_caller_identity.current.account_id","data.aws_caller_identity.current","random_id.suffix.hex","random_id.suffix"]},"force_destroy":{"constant_value":true}},"schema_version":0},{"address":"aws_s3_bucket_policy.this","mode":"managed","type":"aws_s3_bucket_policy","name":"this","provider_config_key":"aws","expressions":{"bucket":{"references":["aws_s3_bucket.backups.id","aws_s3_bucket.backups"]},"policy":{"references":["data.aws_iam_policy_document.bucket.json","data.aws_iam_policy_document.bucket"]}},"schema_version":0},{"address":"random_id.suffix","mode":"managed","type":"random_id","name":"suffix","provider_config_key":"random","expressions":{"byte_length":{"constant_value":4}},"schema_version":0},{"address":"data.aws_caller_identity.current","mode":"data","type":"aws_caller_identity","name":"current","provider_config_key":"aws","schema_version":0},{"address":"data.aws_iam_policy_document.bucket","mode":"data","type":"aws_iam_policy_document","name":"bucket","provider_config_key":"aws","expressions":{"statement":[{"actions":{"constant_value":["s3:ListBucket"]},"effect":{"constant_value":"Allow"},"principals":[{"identifiers":{"references":["var.grafana_iam_role_arn"]},"type":{"constant_value":"AWS"}}],"resources":{"references":["aws_s3_bucket.backups.arn","aws_s3_bucket.backups"]},"sid":{"constant_value":"AllowListBucketFromGrafanaRole"}},{"actions":{"constant_value":["s3:GetObject","s3:PutObject"]},"effect":{"constant_value":"Allow"},"principals":[{"identifiers":{"references":["var.grafana_iam_role_arn"]},"type":{"constant_value":"AWS"}}],"resources":{"references":["aws_s3_bucket.backups.arn","aws_s3_bucket.backups"]},"sid":{"constant_value":"AllowObjectReadWriteFromGrafanaRole"}}]},"schema_version":0}],"variables":{"grafana_iam_role_arn":{"description":"IAM Role ARN of the Grafana EC2 instance (from previous task output)"}}}},"relevant_attributes":[{"resource":"data.aws_iam_policy_document.bucket","attribute":["json"]},{"resource":"aws_s3_bucket.backups","attribute":["id"]}],"timestamp":"2025-09-02T01:03:10Z","applyable":true,"complete":true,"errored":false} diff --git a/variables.tf b/variables.tf index cea62a6..98e2294 100644 --- a/variables.tf +++ b/variables.tf @@ -1,4 +1,4 @@ variable "grafana_iam_role_arn" { - type = string - description = "" + description = "IAM Role ARN of the Grafana EC2 instance (from previous task output)" + type = string }