1+ {
2+ "Resources" : {
3+ "TagReplicationCanaryArtifactsBucket66A919F9" : {
4+ "Type" : " AWS::S3::Bucket" ,
5+ "Properties" : {
6+ "BucketEncryption" : {
7+ "ServerSideEncryptionConfiguration" : [
8+ {
9+ "ServerSideEncryptionByDefault" : {
10+ "SSEAlgorithm" : " aws:kms"
11+ }
12+ }
13+ ]
14+ },
15+ "Tags" : [
16+ {
17+ "Key" : " Environment" ,
18+ "Value" : " test"
19+ },
20+ {
21+ "Key" : " Owner" ,
22+ "Value" : " cdk-team"
23+ },
24+ {
25+ "Key" : " Project" ,
26+ "Value" : " synthetics-tag-replication"
27+ }
28+ ]
29+ },
30+ "UpdateReplacePolicy" : " Retain" ,
31+ "DeletionPolicy" : " Retain"
32+ },
33+ "TagReplicationCanaryArtifactsBucketPolicyCFD9E77B" : {
34+ "Type" : " AWS::S3::BucketPolicy" ,
35+ "Properties" : {
36+ "Bucket" : {
37+ "Ref" : " TagReplicationCanaryArtifactsBucket66A919F9"
38+ },
39+ "PolicyDocument" : {
40+ "Statement" : [
41+ {
42+ "Action" : " s3:*" ,
43+ "Condition" : {
44+ "Bool" : {
45+ "aws:SecureTransport" : " false"
46+ }
47+ },
48+ "Effect" : " Deny" ,
49+ "Principal" : {
50+ "AWS" : " *"
51+ },
52+ "Resource" : [
53+ {
54+ "Fn::GetAtt" : [
55+ " TagReplicationCanaryArtifactsBucket66A919F9" ,
56+ " Arn"
57+ ]
58+ },
59+ {
60+ "Fn::Join" : [
61+ " " ,
62+ [
63+ {
64+ "Fn::GetAtt" : [
65+ " TagReplicationCanaryArtifactsBucket66A919F9" ,
66+ " Arn"
67+ ]
68+ },
69+ " /*"
70+ ]
71+ ]
72+ }
73+ ]
74+ }
75+ ],
76+ "Version" : " 2012-10-17"
77+ }
78+ }
79+ },
80+ "TagReplicationCanaryServiceRoleE1E5A2B6" : {
81+ "Type" : " AWS::IAM::Role" ,
82+ "Properties" : {
83+ "AssumeRolePolicyDocument" : {
84+ "Statement" : [
85+ {
86+ "Action" : " sts:AssumeRole" ,
87+ "Effect" : " Allow" ,
88+ "Principal" : {
89+ "Service" : " lambda.amazonaws.com"
90+ }
91+ }
92+ ],
93+ "Version" : " 2012-10-17"
94+ },
95+ "Policies" : [
96+ {
97+ "PolicyDocument" : {
98+ "Statement" : [
99+ {
100+ "Action" : " s3:ListAllMyBuckets" ,
101+ "Effect" : " Allow" ,
102+ "Resource" : " *"
103+ },
104+ {
105+ "Action" : " s3:GetBucketLocation" ,
106+ "Effect" : " Allow" ,
107+ "Resource" : {
108+ "Fn::GetAtt" : [
109+ " TagReplicationCanaryArtifactsBucket66A919F9" ,
110+ " Arn"
111+ ]
112+ }
113+ },
114+ {
115+ "Action" : " s3:PutObject" ,
116+ "Effect" : " Allow" ,
117+ "Resource" : {
118+ "Fn::Join" : [
119+ " " ,
120+ [
121+ {
122+ "Fn::GetAtt" : [
123+ " TagReplicationCanaryArtifactsBucket66A919F9" ,
124+ " Arn"
125+ ]
126+ },
127+ " /*"
128+ ]
129+ ]
130+ }
131+ },
132+ {
133+ "Action" : " cloudwatch:PutMetricData" ,
134+ "Condition" : {
135+ "StringEquals" : {
136+ "cloudwatch:namespace" : " CloudWatchSynthetics"
137+ }
138+ },
139+ "Effect" : " Allow" ,
140+ "Resource" : " *"
141+ },
142+ {
143+ "Action" : [
144+ " logs:CreateLogGroup" ,
145+ " logs:CreateLogStream" ,
146+ " logs:PutLogEvents"
147+ ],
148+ "Effect" : " Allow" ,
149+ "Resource" : {
150+ "Fn::Join" : [
151+ " " ,
152+ [
153+ " arn:" ,
154+ {
155+ "Ref" : " AWS::Partition"
156+ },
157+ " :logs:" ,
158+ {
159+ "Ref" : " AWS::Region"
160+ },
161+ " :" ,
162+ {
163+ "Ref" : " AWS::AccountId"
164+ },
165+ " :log-group:/aws/lambda/cwsyn-*"
166+ ]
167+ ]
168+ }
169+ }
170+ ],
171+ "Version" : " 2012-10-17"
172+ },
173+ "PolicyName" : " canaryPolicy"
174+ }
175+ ],
176+ "Tags" : [
177+ {
178+ "Key" : " Environment" ,
179+ "Value" : " test"
180+ },
181+ {
182+ "Key" : " Owner" ,
183+ "Value" : " cdk-team"
184+ },
185+ {
186+ "Key" : " Project" ,
187+ "Value" : " synthetics-tag-replication"
188+ }
189+ ]
190+ }
191+ },
192+ "TagReplicationCanary4B22C124" : {
193+ "Type" : " AWS::Synthetics::Canary" ,
194+ "Properties" : {
195+ "ArtifactS3Location" : {
196+ "Fn::Join" : [
197+ " " ,
198+ [
199+ " s3://" ,
200+ {
201+ "Ref" : " TagReplicationCanaryArtifactsBucket66A919F9"
202+ }
203+ ]
204+ ]
205+ },
206+ "Code" : {
207+ "Handler" : " canary.handler" ,
208+ "S3Bucket" : {
209+ "Fn::Sub" : " cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
210+ },
211+ "S3Key" : " 5178413cfe8db00b2d5dcfa9be417e934c64601d0da3031d88c145c8293bc27f.zip"
212+ },
213+ "ExecutionRoleArn" : {
214+ "Fn::GetAtt" : [
215+ " TagReplicationCanaryServiceRoleE1E5A2B6" ,
216+ " Arn"
217+ ]
218+ },
219+ "Name" : " tag-replication" ,
220+ "ResourcesToReplicateTags" : [
221+ " lambda-function"
222+ ],
223+ "RunConfig" : {
224+ "MemoryInMB" : 1024 ,
225+ "TimeoutInSeconds" : 180
226+ },
227+ "RuntimeVersion" : " syn-nodejs-puppeteer-7.0" ,
228+ "Schedule" : {
229+ "DurationInSeconds" : " 0" ,
230+ "Expression" : " rate(5 minutes)"
231+ },
232+ "StartCanaryAfterCreation" : true ,
233+ "Tags" : [
234+ {
235+ "Key" : " Environment" ,
236+ "Value" : " test"
237+ },
238+ {
239+ "Key" : " Owner" ,
240+ "Value" : " cdk-team"
241+ },
242+ {
243+ "Key" : " Project" ,
244+ "Value" : " synthetics-tag-replication"
245+ }
246+ ]
247+ }
248+ }
249+ },
250+ "Parameters" : {
251+ "BootstrapVersion" : {
252+ "Type" : " AWS::SSM::Parameter::Value<String>" ,
253+ "Default" : " /cdk-bootstrap/hnb659fds/version" ,
254+ "Description" : " Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
255+ }
256+ },
257+ "Rules" : {
258+ "CheckBootstrapVersion" : {
259+ "Assertions" : [
260+ {
261+ "Assert" : {
262+ "Fn::Not" : [
263+ {
264+ "Fn::Contains" : [
265+ [
266+ " 1" ,
267+ " 2" ,
268+ " 3" ,
269+ " 4" ,
270+ " 5"
271+ ],
272+ {
273+ "Ref" : " BootstrapVersion"
274+ }
275+ ]
276+ }
277+ ]
278+ },
279+ "AssertDescription" : " CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
280+ }
281+ ]
282+ }
283+ }
284+ }
0 commit comments