data "aws_iam_policy_document" "lambda_policy" { statement { sid = "Logs" effect = "Allow" resources = ["arn:aws:logs:*:*:*"] actions = [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", ] } } resource "aws_iam_policy" "lambda_policy" { name = "game_server_lambda" path = "/game_server/" description = "AWS IAM Policy for Game Server Lambdas" policy = data.aws_iam_policy_document.lambda_policy.json tags = local.tags } data "aws_iam_policy_document" "lambda_trust" { statement { sid = "" effect = "Allow" actions = ["sts:AssumeRole"] principals { type = "Service" identifiers = ["lambda.amazonaws.com"] } } } resource "aws_iam_role" "lambda_role" { name = "game_server_lambda" path = "/game_server/" assume_role_policy = data.aws_iam_policy_document.lambda_trust.json tags = local.tags } resource "aws_iam_role_policy_attachment" "attach_iam_policy_to_iam_role" { role = aws_iam_role.lambda_role.name policy_arn = aws_iam_policy.lambda_policy.arn } resource "aws_iam_role" "cloudwatch" { name = "api_gateway_cloudwatch_global" assume_role_policy = <