Create a role.
resource "aws_iam_role" "api_gateway_account_role" {
name = "api-gateway-account-role"
assume_role_policy = jsonencode({
"Version" : "2012-10-17",
"Statement" : [
{
"Sid" : "",
"Effect" : "Allow",
"Principal" : {
"Service" : "apigateway.amazonaws.com"
},
"Action" : "sts:AssumeRole"
}
]
})
}
Attach a CloudWatch policy to the role.
resource "aws_iam_role_policy" "api_gateway_cloudwatch_policy" {
name = "api-gateway-cloudwatch-policy"
role = aws_iam_role.api_gateway_account_role.id
policy = jsonencode({
"Version" : "2012-10-17",
"Statement" : [
{
"Effect" : "Allow",
"Action" : [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents",
"logs:GetLogEvents",
"logs:FilterLogEvents"
],
"Resource" : "*"
}
]
})
}
Attach the role to the aws_api_gateway_account
resource.
resource "aws_api_gateway_account" "api_gateway_account" {
cloudwatch_role_arn = aws_iam_role.api_gateway_account_role.arn
}