iam.tf 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. data "aws_iam_policy_document" "lambda_policy" {
  2. statement {
  3. sid = "Logs"
  4. effect = "Allow"
  5. resources = ["arn:aws:logs:*:*:*"]
  6. actions = [
  7. "logs:CreateLogGroup",
  8. "logs:CreateLogStream",
  9. "logs:PutLogEvents",
  10. ]
  11. }
  12. }
  13. resource "aws_iam_policy" "lambda_policy" {
  14. name = "game_server_lambda"
  15. path = "/game_server/"
  16. description = "AWS IAM Policy for Game Server Lambdas"
  17. policy = data.aws_iam_policy_document.lambda_policy.json
  18. tags = local.tags
  19. }
  20. data "aws_iam_policy_document" "lambda_trust" {
  21. statement {
  22. sid = ""
  23. effect = "Allow"
  24. actions = ["sts:AssumeRole"]
  25. principals {
  26. type = "Service"
  27. identifiers = ["lambda.amazonaws.com"]
  28. }
  29. }
  30. }
  31. resource "aws_iam_role" "lambda_role" {
  32. name = "game_server_lambda"
  33. path = "/game_server/"
  34. assume_role_policy = data.aws_iam_policy_document.lambda_trust.json
  35. tags = local.tags
  36. }
  37. resource "aws_iam_role_policy_attachment" "attach_iam_policy_to_iam_role" {
  38. role = aws_iam_role.lambda_role.name
  39. policy_arn = aws_iam_policy.lambda_policy.arn
  40. }
  41. resource "aws_iam_role" "cloudwatch" {
  42. name = "api_gateway_cloudwatch_global"
  43. assume_role_policy = <<EOF
  44. {
  45. "Version": "2012-10-17",
  46. "Statement": [
  47. {
  48. "Sid": "",
  49. "Effect": "Allow",
  50. "Principal": {
  51. "Service": "apigateway.amazonaws.com"
  52. },
  53. "Action": "sts:AssumeRole"
  54. }
  55. ]
  56. }
  57. EOF
  58. }
  59. resource "aws_iam_role_policy" "cloudwatch" {
  60. name = "default"
  61. role = aws_iam_role.cloudwatch.id
  62. policy = <<EOF
  63. {
  64. "Version": "2012-10-17",
  65. "Statement": [
  66. {
  67. "Effect": "Allow",
  68. "Action": [
  69. "logs:CreateLogGroup",
  70. "logs:CreateLogStream",
  71. "logs:DescribeLogGroups",
  72. "logs:DescribeLogStreams",
  73. "logs:PutLogEvents",
  74. "logs:GetLogEvents",
  75. "logs:FilterLogEvents"
  76. ],
  77. "Resource": "*"
  78. }
  79. ]
  80. }
  81. EOF
  82. }