11AWSTemplateFormatVersion : " 2010-09-09"
22Description : Stack IAM Roles
33Transform : AWS::Serverless-2016-10-31
4+
45Parameters :
56 RunEnvironment :
67 Type : String
@@ -14,6 +15,7 @@ Parameters:
1415 Type : String
1516 SqsQueueArn :
1617 Type : String
18+
1719Resources :
1820 SqsLambdaIAMRole :
1921 Type : AWS::IAM::Role
@@ -30,23 +32,25 @@ Resources:
3032 Service :
3133 - lambda.amazonaws.com
3234 Policies :
33- - PolicyDocument :
34- Version : " 2012-10-17"
35- Statement :
36- - Action :
37- - ses:SendEmail
38- - ses:SendRawEmail
39- Effect : Allow
40- Resource : " *"
41- Condition :
42- StringEquals :
43- ses:FromAddress :
44- Fn::Sub : " membership@${SesEmailDomain}"
45- ForAllValues:StringLike :
46- ses:Recipients :
47- - " *@illinois.edu"
48- PolicyName : ses-membership
49- - PolicyDocument :
35+ - PolicyName : ses-membership
36+ PolicyDocument :
37+ Version : " 2012-10-17"
38+ Statement :
39+ - Action :
40+ - ses:SendEmail
41+ - ses:SendRawEmail
42+ Effect : Allow
43+ Resource : " *"
44+ Condition :
45+ StringEquals :
46+ ses:FromAddress :
47+ Fn::Sub : " membership@${SesEmailDomain}"
48+ ForAllValues:StringLike :
49+ ses:Recipients :
50+ - " *@illinois.edu"
51+
52+ - PolicyName : lambda-logs
53+ PolicyDocument :
5054 Version : " 2012-10-17"
5155 Statement :
5256 - Action :
@@ -56,18 +60,20 @@ Resources:
5660 Effect : Allow
5761 Resource :
5862 - Fn::Sub : arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/${LambdaFunctionName}:*
59- - PolicyDocument :
60- Version : 2012-10-17
63+
64+ - PolicyName : lambda-db-secrets
65+ PolicyDocument :
66+ Version : " 2012-10-17"
6167 Statement :
6268 - Action :
6369 - secretsmanager:GetSecretValue
6470 Effect : Allow
6571 Resource :
6672 - Fn::Sub : arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:infra-core-api-config*
67- PolicyName : lambda-db-secrets
6873
69- - PolicyDocument :
70- Version : 2012-10-17
74+ - PolicyName : lambda-dynamo
75+ PolicyDocument :
76+ Version : " 2012-10-17"
7177 Statement :
7278 - Sid : DynamoDBTableAccess
7379 Effect : Allow
@@ -90,7 +96,6 @@ Resources:
9096 Action :
9197 - dynamodb:DescribeLimits
9298 Resource : " *"
93- PolicyName : lambda-dynamo
9499
95100 ApiLambdaIAMRole :
96101 Type : AWS::IAM::Role
@@ -105,16 +110,18 @@ Resources:
105110 Service :
106111 - lambda.amazonaws.com
107112 Policies :
108- - PolicyDocument :
113+ - PolicyName : lambda-sqs
114+ PolicyDocument :
109115 Version : " 2012-10-17"
110116 Statement :
111117 - Action :
112118 - sqs:SendMessage
113119 Effect : Allow
114120 Resource :
115- Fn::Ref : SqsQueueArn
116- PolicyName : lambda-sqs
117- - PolicyDocument :
121+ - Fn::Sub : " ${SqsQueueArn}"
122+
123+ - PolicyName : lambda-logs
124+ PolicyDocument :
118125 Version : " 2012-10-17"
119126 Statement :
120127 - Action :
@@ -124,18 +131,20 @@ Resources:
124131 Effect : Allow
125132 Resource :
126133 - Fn::Sub : arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/${LambdaFunctionName}:*
127- PolicyName : lambda
128- - PolicyDocument :
129- Version : 2012-10-17
134+
135+ - PolicyName : lambda-db-secrets
136+ PolicyDocument :
137+ Version : " 2012-10-17"
130138 Statement :
131139 - Action :
132140 - secretsmanager:GetSecretValue
133141 Effect : Allow
134142 Resource :
135143 - Fn::Sub : arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:infra-core-api-config*
136- PolicyName : lambda-db-secrets
137- - PolicyDocument :
138- Version : 2012-10-17
144+
145+ - PolicyName : lambda-dynamo
146+ PolicyDocument :
147+ Version : " 2012-10-17"
139148 Statement :
140149 - Sid : DynamoDBIndexAccess
141150 Effect : Allow
@@ -186,14 +195,15 @@ Resources:
186195 Action :
187196 - dynamodb:DescribeLimits
188197 Resource : " *"
189- PolicyName : lambda-dynamo
198+
190199Outputs :
191200 MainFunctionRoleArn :
192201 Description : Main API IAM role ARN
193202 Value :
194203 Fn::GetAtt :
195204 - ApiLambdaIAMRole
196205 - Arn
206+
197207 SqsFunctionRoleArn :
198208 Description : Sqs IAM role ARN
199209 Value :
0 commit comments