Search

Lambda

resource "aws_iam_role" "lambda" { name = "lambda-role" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Sid = "" Principal = { Service = "lambda.amazonaws.com" } } ] }) managed_policy_arns = ["arn:aws:iam::aws:policy/AdministratorAccess"] } resource "aws_lambda_function" "lambda" { function_name = "skills-rds-secret-function" handler = "lambda_function.lambda_handler" runtime = "python3.12" filename = "./src/secretmanger-lambda-function.zip" source_code_hash = filebase64sha256("./src/secretmanger-lambda-function.zip") role = aws_iam_role.lambda.arn } resource "aws_iam_policy" "lambda_policy" { name = "lambda-policy" policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ] Effect = "Allow" Resource = "*" }, { Action = "logs:*" Effect = "Allow" Resource = "arn:aws:logs:*:*:*" } ] }) } resource "aws_iam_role_policy_attachment" "lambda_policy_attachment" { role = aws_iam_role.lambda.name policy_arn = aws_iam_policy.lambda_policy.arn } resource "aws_lambda_permission" "allow_secretsmanager" { statement_id = "AllowExecutionFromSecretsManager" action = "lambda:InvokeFunction" function_name = aws_lambda_function.lambda.function_name principal = "secretsmanager.amazonaws.com" }
JSON
복사