diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..d843f34 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/main.tf b/main.tf index fc60f38..1e3e274 100644 --- a/main.tf +++ b/main.tf @@ -1,3 +1,42 @@ -# 1. Deploy an S3 storage bucket +# 1. Deploy an S3 storage bucket +resource "aws_s3_bucket" "grafana_bucket" { + bucket = "grafana-storage-bucket" + tags = { + Name = "GrafanaStorage" + Environment = "Production" + } +} + +# 2. Configure bucket policy to allow Grafana IAM role to use storage + +data "aws_iam_policy_document" "grafana_policy_document" { + statement { + sid = "AllowListBucket" + actions = ["s3:ListBucket"] + resources = [aws_s3_bucket.grafana_bucket.arn] + + principals { + type = "AWS" + identifiers = ["arn:aws:iam::069874459391:role/t2_micro-role"] + } + } + + statement { + sid = "AllowGetPutObjects" + actions = ["s3:GetObject", "s3:PutObject"] + resources = ["${aws_s3_bucket.grafana_bucket.arn}/*"] + + principals { + type = "AWS" + identifiers = ["arn:aws:iam::069874459391:role/t2_micro-role"] + } + } +} + +resource "aws_s3_bucket_policy" "grafana_bucket_policy" { + bucket = aws_s3_bucket.grafana_bucket.id + policy = data.aws_iam_policy_document.grafana_policy_document.json +} +# 1. Deploy an S3 storage bucket # 2. Confugure bucket policy to allow grafana iam role to use storage diff --git a/outputs.tf b/outputs.tf index df85631..0d8a573 100644 --- a/outputs.tf +++ b/outputs.tf @@ -1,4 +1,4 @@ output "bucket_name" { - value = aws_s3_bucket.grafana_backups.bucket + value = aws_s3_bucket.grafana_bucket sensitive = false } diff --git a/providers.tf b/providers.tf index 68bbced..61b6b4e 100644 --- a/providers.tf +++ b/providers.tf @@ -7,4 +7,6 @@ terraform { } } -provider "aws" {} +provider "aws" { + region = "us-east-1" +} diff --git a/terraform.tfvars b/terraform.tfvars index 7f7bb12..250b971 100644 --- a/terraform.tfvars +++ b/terraform.tfvars @@ -1 +1 @@ -grafana_iam_role_arn = "" +grafana_iam_role_arn = "arn:aws:iam::069874459391:role/t2_micro-role" diff --git a/tfplan.json b/tfplan.json new file mode 100644 index 0000000..ff38546 --- /dev/null +++ b/tfplan.json @@ -0,0 +1 @@ +{"format_version":"1.2","terraform_version":"1.11.4","variables":{"grafana_iam_role_arn":{"value":"arn:aws:iam::069874459391:role/t2_micro-role"}},"planned_values":{"outputs":{"bucket_name":{"sensitive":false,"type":["object",{"acceleration_status":"string","acl":"string","arn":"string","bucket":"string","bucket_domain_name":"string","bucket_prefix":"string","bucket_regional_domain_name":"string","cors_rule":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"force_destroy":"bool","grant":["set",["object",{"id":"string","permissions":["set","string"],"type":"string","uri":"string"}]],"hosted_zone_id":"string","id":"string","lifecycle_rule":["list",["object",{"abort_incomplete_multipart_upload_days":"number","enabled":"bool","expiration":["list",["object",{"date":"string","days":"number","expired_object_delete_marker":"bool"}]],"id":"string","noncurrent_version_expiration":["list",["object",{"days":"number"}]],"noncurrent_version_transition":["set",["object",{"days":"number","storage_class":"string"}]],"prefix":"string","tags":["map","string"],"transition":["set",["object",{"date":"string","days":"number","storage_class":"string"}]]}]],"logging":["list",["object",{"target_bucket":"string","target_prefix":"string"}]],"object_lock_configuration":["list",["object",{"object_lock_enabled":"string","rule":["list",["object",{"default_retention":["list",["object",{"days":"number","mode":"string","years":"number"}]]}]]}]],"object_lock_enabled":"bool","policy":"string","region":"string","replication_configuration":["list",["object",{"role":"string","rules":["set",["object",{"delete_marker_replication_status":"string","destination":["list",["object",{"access_control_translation":["list",["object",{"owner":"string"}]],"account_id":"string","bucket":"string","metrics":["list",["object",{"minutes":"number","status":"string"}]],"replica_kms_key_id":"string","replication_time":["list",["object",{"minutes":"number","status":"string"}]],"storage_class":"string"}]],"filter":["list",["object",{"prefix":"string","tags":["map","string"]}]],"id":"string","prefix":"string","priority":"number","source_selection_criteria":["list",["object",{"sse_kms_encrypted_objects":["list",["object",{"enabled":"bool"}]]}]],"status":"string"}]]}]],"request_payer":"string","server_side_encryption_configuration":["list",["object",{"rule":["list",["object",{"apply_server_side_encryption_by_default":["list",["object",{"kms_master_key_id":"string","sse_algorithm":"string"}]],"bucket_key_enabled":"bool"}]]}]],"tags":["map","string"],"tags_all":["map","string"],"timeouts":["object",{"create":"string","delete":"string","read":"string","update":"string"}],"versioning":["list",["object",{"enabled":"bool","mfa_delete":"bool"}]],"website":["list",["object",{"error_document":"string","index_document":"string","redirect_all_requests_to":"string","routing_rules":"string"}]],"website_domain":"string","website_endpoint":"string"}],"value":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null}}},"root_module":{"resources":[{"address":"aws_s3_bucket.grafana_bucket","mode":"managed","type":"aws_s3_bucket","name":"grafana_bucket","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"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.grafana_bucket_policy","mode":"managed","type":"aws_s3_bucket_policy","name":"grafana_bucket_policy","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"bucket":"grafana-storage-bucket","policy":"{\"Statement\":[{\"Action\":\"s3:ListBucket\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-role\"},\"Resource\":\"arn:aws:s3:::grafana-storage-bucket\",\"Sid\":\"AllowListBucket\"},{\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-role\"},\"Resource\":\"arn:aws:s3:::grafana-storage-bucket/*\",\"Sid\":\"AllowGetPutObjects\"}],\"Version\":\"2012-10-17\"}"},"sensitive_values":{}}]}},"resource_changes":[{"address":"aws_s3_bucket.grafana_bucket","mode":"managed","type":"aws_s3_bucket","name":"grafana_bucket","provider_name":"registry.terraform.io/hashicorp/aws","change":{"actions":["no-op"],"before":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"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-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"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.grafana_bucket_policy","mode":"managed","type":"aws_s3_bucket_policy","name":"grafana_bucket_policy","provider_name":"registry.terraform.io/hashicorp/aws","change":{"actions":["create"],"before":null,"after":{"bucket":"grafana-storage-bucket","policy":"{\"Statement\":[{\"Action\":\"s3:ListBucket\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-role\"},\"Resource\":\"arn:aws:s3:::grafana-storage-bucket\",\"Sid\":\"AllowListBucket\"},{\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-role\"},\"Resource\":\"arn:aws:s3:::grafana-storage-bucket/*\",\"Sid\":\"AllowGetPutObjects\"}],\"Version\":\"2012-10-17\"}"},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"output_changes":{"bucket_name":{"actions":["no-op"],"before":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"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-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"prior_state":{"format_version":"1.0","terraform_version":"1.11.4","values":{"outputs":{"bucket_name":{"sensitive":false,"value":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"timeouts":null,"versioning":[{"enabled":false,"mfa_delete":false}],"website":[],"website_domain":null,"website_endpoint":null},"type":["object",{"acceleration_status":"string","acl":"string","arn":"string","bucket":"string","bucket_domain_name":"string","bucket_prefix":"string","bucket_regional_domain_name":"string","cors_rule":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"force_destroy":"bool","grant":["set",["object",{"id":"string","permissions":["set","string"],"type":"string","uri":"string"}]],"hosted_zone_id":"string","id":"string","lifecycle_rule":["list",["object",{"abort_incomplete_multipart_upload_days":"number","enabled":"bool","expiration":["list",["object",{"date":"string","days":"number","expired_object_delete_marker":"bool"}]],"id":"string","noncurrent_version_expiration":["list",["object",{"days":"number"}]],"noncurrent_version_transition":["set",["object",{"days":"number","storage_class":"string"}]],"prefix":"string","tags":["map","string"],"transition":["set",["object",{"date":"string","days":"number","storage_class":"string"}]]}]],"logging":["list",["object",{"target_bucket":"string","target_prefix":"string"}]],"object_lock_configuration":["list",["object",{"object_lock_enabled":"string","rule":["list",["object",{"default_retention":["list",["object",{"days":"number","mode":"string","years":"number"}]]}]]}]],"object_lock_enabled":"bool","policy":"string","region":"string","replication_configuration":["list",["object",{"role":"string","rules":["set",["object",{"delete_marker_replication_status":"string","destination":["list",["object",{"access_control_translation":["list",["object",{"owner":"string"}]],"account_id":"string","bucket":"string","metrics":["list",["object",{"minutes":"number","status":"string"}]],"replica_kms_key_id":"string","replication_time":["list",["object",{"minutes":"number","status":"string"}]],"storage_class":"string"}]],"filter":["list",["object",{"prefix":"string","tags":["map","string"]}]],"id":"string","prefix":"string","priority":"number","source_selection_criteria":["list",["object",{"sse_kms_encrypted_objects":["list",["object",{"enabled":"bool"}]]}]],"status":"string"}]]}]],"request_payer":"string","server_side_encryption_configuration":["list",["object",{"rule":["list",["object",{"apply_server_side_encryption_by_default":["list",["object",{"kms_master_key_id":"string","sse_algorithm":"string"}]],"bucket_key_enabled":"bool"}]]}]],"tags":["map","string"],"tags_all":["map","string"],"timeouts":["object",{"create":"string","delete":"string","read":"string","update":"string"}],"versioning":["list",["object",{"enabled":"bool","mfa_delete":"bool"}]],"website":["list",["object",{"error_document":"string","index_document":"string","redirect_all_requests_to":"string","routing_rules":"string"}]],"website_domain":"string","website_endpoint":"string"}]}},"root_module":{"resources":[{"address":"data.aws_iam_policy_document.grafana_policy_document","mode":"data","type":"aws_iam_policy_document","name":"grafana_policy_document","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"id":"3074018366","json":"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"AllowListBucket\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::grafana-storage-bucket\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::069874459391:role/t2_micro-role\"\n }\n },\n {\n \"Sid\": \"AllowGetPutObjects\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::grafana-storage-bucket/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::069874459391:role/t2_micro-role\"\n }\n }\n ]\n}","minified_json":"{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AllowListBucket\",\"Effect\":\"Allow\",\"Action\":\"s3:ListBucket\",\"Resource\":\"arn:aws:s3:::grafana-storage-bucket\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-role\"}},{\"Sid\":\"AllowGetPutObjects\",\"Effect\":\"Allow\",\"Action\":[\"s3:PutObject\",\"s3:GetObject\"],\"Resource\":\"arn:aws:s3:::grafana-storage-bucket/*\",\"Principal\":{\"AWS\":\"arn:aws:iam::069874459391:role/t2_micro-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::069874459391:role/t2_micro-role"],"type":"AWS"}],"resources":["arn:aws:s3:::grafana-storage-bucket"],"sid":"AllowListBucket"},{"actions":["s3:GetObject","s3:PutObject"],"condition":[],"effect":"Allow","not_actions":[],"not_principals":[],"not_resources":[],"principals":[{"identifiers":["arn:aws:iam::069874459391:role/t2_micro-role"],"type":"AWS"}],"resources":["arn:aws:s3:::grafana-storage-bucket/*"],"sid":"AllowGetPutObjects"}],"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.grafana_bucket","mode":"managed","type":"aws_s3_bucket","name":"grafana_bucket","provider_name":"registry.terraform.io/hashicorp/aws","schema_version":0,"values":{"acceleration_status":"","acl":null,"arn":"arn:aws:s3:::grafana-storage-bucket","bucket":"grafana-storage-bucket","bucket_domain_name":"grafana-storage-bucket.s3.amazonaws.com","bucket_prefix":"","bucket_regional_domain_name":"grafana-storage-bucket.s3.us-east-1.amazonaws.com","cors_rule":[],"force_destroy":false,"grant":[{"id":"6f6c5baf0b1b7623e76318543a92a971e069725ae00ddad9df7a388758e31ea2","permissions":["FULL_CONTROL"],"type":"CanonicalUser","uri":""}],"hosted_zone_id":"Z3AQBSTGFYJSTF","id":"grafana-storage-bucket","lifecycle_rule":[],"logging":[],"object_lock_configuration":[],"object_lock_enabled":false,"policy":"","region":"us-east-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":{"Environment":"Production","Name":"GrafanaStorage"},"tags_all":{"Environment":"Production","Name":"GrafanaStorage"},"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":[]}}]}}},"configuration":{"provider_config":{"aws":{"name":"aws","full_name":"registry.terraform.io/hashicorp/aws","version_constraint":"~\u003e 5.0","expressions":{"region":{"constant_value":"us-east-1"}}}},"root_module":{"outputs":{"bucket_name":{"expression":{"references":["aws_s3_bucket.grafana_bucket"]}}},"resources":[{"address":"aws_s3_bucket.grafana_bucket","mode":"managed","type":"aws_s3_bucket","name":"grafana_bucket","provider_config_key":"aws","expressions":{"bucket":{"constant_value":"grafana-storage-bucket"},"tags":{"constant_value":{"Environment":"Production","Name":"GrafanaStorage"}}},"schema_version":0},{"address":"aws_s3_bucket_policy.grafana_bucket_policy","mode":"managed","type":"aws_s3_bucket_policy","name":"grafana_bucket_policy","provider_config_key":"aws","expressions":{"bucket":{"references":["aws_s3_bucket.grafana_bucket.id","aws_s3_bucket.grafana_bucket"]},"policy":{"references":["data.aws_iam_policy_document.grafana_policy_document.json","data.aws_iam_policy_document.grafana_policy_document"]}},"schema_version":0},{"address":"data.aws_iam_policy_document.grafana_policy_document","mode":"data","type":"aws_iam_policy_document","name":"grafana_policy_document","provider_config_key":"aws","expressions":{"statement":[{"actions":{"constant_value":["s3:ListBucket"]},"principals":[{"identifiers":{"constant_value":["arn:aws:iam::069874459391:role/t2_micro-role"]},"type":{"constant_value":"AWS"}}],"resources":{"references":["aws_s3_bucket.grafana_bucket.arn","aws_s3_bucket.grafana_bucket"]},"sid":{"constant_value":"AllowListBucket"}},{"actions":{"constant_value":["s3:GetObject","s3:PutObject"]},"principals":[{"identifiers":{"constant_value":["arn:aws:iam::069874459391:role/t2_micro-role"]},"type":{"constant_value":"AWS"}}],"resources":{"references":["aws_s3_bucket.grafana_bucket.arn","aws_s3_bucket.grafana_bucket"]},"sid":{"constant_value":"AllowGetPutObjects"}}]},"schema_version":0}],"variables":{"grafana_iam_role_arn":{}}}},"relevant_attributes":[{"resource":"data.aws_iam_policy_document.grafana_policy_document","attribute":["json"]},{"resource":"aws_s3_bucket.grafana_bucket","attribute":["id"]}],"timestamp":"2025-04-11T21:46:58Z","applyable":true,"complete":true,"errored":false} diff --git "a/\320\227\320\275\321\226\320\274\320\276\320\272 \320\265\320\272\321\200\320\260\320\275\320\260 2025-04-12 \320\276 00.55.08.png" "b/\320\227\320\275\321\226\320\274\320\276\320\272 \320\265\320\272\321\200\320\260\320\275\320\260 2025-04-12 \320\276 00.55.08.png" new file mode 100644 index 0000000..078f3ad Binary files /dev/null and "b/\320\227\320\275\321\226\320\274\320\276\320\272 \320\265\320\272\321\200\320\260\320\275\320\260 2025-04-12 \320\276 00.55.08.png" differ