@@ -244,6 +244,25 @@ resource "aws_iam_role_policy_attachment" "id_sync_lambda_kms_policy_attachment"
244244 policy_arn = aws_iam_policy. id_sync_lambda_kms_access_policy . arn
245245}
246246
247+ data "aws_iam_policy_document" "id_sync_policy_document" {
248+ source_policy_documents = [
249+ templatefile (" ${ local . policy_path } /dynamodb.json" , {
250+ " dynamodb_table_name" : aws_dynamodb_table.delta- dynamodb- table.name
251+ }),
252+ templatefile (" ${ local . policy_path } /dynamodb_stream.json" , {
253+ " dynamodb_table_name" : aws_dynamodb_table.events- dynamodb- table.name
254+ })
255+ ]
256+ }
257+
258+ # Attach the dynamodb policy to the Lambda role
259+ # TODO: attach a policy rather than a policy_arn?
260+ resource "aws_iam_role_policy_attachment" "id_sync_lambda_dynamodb_policy_attachment" {
261+ role = aws_iam_role. id_sync_lambda_exec_role . name
262+ policy = data. aws_iam_policy_document . id_sync_policy_document . json
263+ }
264+
265+
247266# Lambda Function with Security Group and VPC.
248267resource "aws_lambda_function" "id_sync_lambda" {
249268 function_name = " ${ local . short_prefix } -id_sync_lambda"
@@ -279,17 +298,6 @@ resource "aws_lambda_function" "id_sync_lambda" {
279298 ]
280299}
281300
282- data "aws_iam_policy_document" "delta_policy_document" {
283- source_policy_documents = [
284- templatefile (" ${ local . policy_path } /dynamodb.json" , {
285- " dynamodb_table_name" : aws_dynamodb_table.delta- dynamodb- table.name
286- }),
287- templatefile (" ${ local . policy_path } /dynamodb_stream.json" , {
288- " dynamodb_table_name" : aws_dynamodb_table.events- dynamodb- table.name
289- })
290- ]
291- }
292-
293301resource "aws_cloudwatch_log_group" "id_sync_log_group" {
294302 name = " /aws/lambda/${ local . short_prefix } -id_sync_lambda"
295303 retention_in_days = 30
0 commit comments