<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//rowanudell.com/sitemap.xsl"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><url><loc>https://rowanudell.com/blog/find-deprecated-aws-lambda-runtimes-in-your-environment/</loc><lastmod>2025-09-16T17:59:54.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2024/03/CleanShot-2024-03-25-at-10.21.16@2x.png</image:loc><image:caption>CleanShot-2024-03-25-at-10.21.16@2x.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/last-minute-guild-to-re-invent/</loc><lastmod>2025-09-16T01:17:26.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-identity-center-delegation/</loc><lastmod>2025-07-24T05:35:46.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/developer-aws-access-management/</loc><lastmod>2025-04-07T02:16:11.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/your-first-alert-budget/</loc><lastmod>2025-04-01T01:17:46.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/the-5-as-of-aws-security/</loc><lastmod>2025-03-29T10:51:51.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-cli-idc-migration-commands/</loc><lastmod>2024-12-18T02:47:28.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/moving-from-iam-users-to-aws-identity-center/</loc><lastmod>2024-12-18T02:44:51.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/programmatic-aws-action-list/</loc><lastmod>2024-10-12T04:15:19.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/iam-passrole-explained/</loc><lastmod>2024-08-26T01:21:31.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2020/10/helmets.png</image:loc><image:caption>helmets.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/passing-the-aws-security-speciality-in-2024-scs-c02/</loc><lastmod>2024-03-12T23:58:38.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/cloudfront-oac-for-s3-policy/</loc><lastmod>2023-11-24T23:27:37.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/external-id-policy-review/</loc><lastmod>2023-11-14T08:41:37.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-lambda/</loc><lastmod>2023-11-04T11:35:37.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/policy-to-deny-all-external-principals-assume-role/</loc><lastmod>2023-11-01T11:26:03.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-sam-policy-templates-review/</loc><lastmod>2023-10-31T11:04:15.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-iam-policy-review-conditions-actions/</loc><lastmod>2023-10-27T19:27:50.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/sam-local-function-logs-with-python/</loc><lastmod>2023-10-16T06:04:54.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/block-expensive-aws-actions-with-scps/</loc><lastmod>2023-10-04T10:16:45.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/get-more-out-of-official-aws-documentation/</loc><lastmod>2023-09-13T11:44:41.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/amplify-amplify-amplify/</loc><lastmod>2023-08-23T04:29:48.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2020/05/Untitled.png</image:loc><image:caption>Untitled.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/understanding-aws-zone-of-trust/</loc><lastmod>2023-08-23T04:29:21.000Z</lastmod><image:image><image:loc>https://images.unsplash.com/photo-1579447167432-ba8b796e5de1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fHpvbmV8ZW58MHx8fHwxNjgwMTE3Nzg3&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000</image:loc><image:caption>photo-1579447167432-ba8b796e5de1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fHpvbmV8ZW58MHx8fHwxNjgwMTE3Nzg3&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/big-bets-framework/</loc><lastmod>2023-08-12T20:30:02.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-sam-httpapi-and-cors/</loc><lastmod>2023-07-27T10:10:53.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/aws-iam-access-analyzer-validation-checks/</loc><lastmod>2022-12-01T05:07:40.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/advanced-expert-learning-for-aws/</loc><lastmod>2022-12-01T05:07:02.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2022/06/sit-down.png</image:loc><image:caption>sit-down.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/cloudformation-registry-cheatsheet/</loc><lastmod>2021-08-05T21:45:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/stop-talking-about-serverless-scale/</loc><lastmod>2021-04-20T09:57:41.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2021/04/scale-2.png</image:loc><image:caption>scale-2.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/learning-the-velocity-template-language-vtl-for-aws/</loc><lastmod>2021-03-11T11:05:59.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2021/02/screen.png</image:loc><image:caption>screen.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/aws-accounts-with-leading-zeros/</loc><lastmod>2021-02-24T10:00:00.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2021/02/root.png</image:loc><image:caption>root.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/dont-use-tags-to-manage-access-in-aws/</loc><lastmod>2020-08-18T23:12:14.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/cloudformation-layer-cake-pattern/</loc><lastmod>2020-03-25T20:48:11.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2019/12/layer-cake.jpg</image:loc><image:caption>layer-cake.jpg</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/cloudformation-examples-on-github/</loc><lastmod>2020-01-15T10:11:59.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2020/01/search.png</image:loc><image:caption>search.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/real-world-serverless-application-examples/</loc><lastmod>2020-01-06T23:27:21.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/effective-actions-for-aws-iam/</loc><lastmod>2020-01-06T10:20:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/managing-secure-string-parameters-in-cloudformation/</loc><lastmod>2019-12-12T23:35:36.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/the-serverless-compute-manifesto/</loc><lastmod>2019-11-08T23:50:53.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/edge-bundling-security-groups-redux/</loc><lastmod>2019-11-08T23:50:22.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2017/11/security-groups-redux.png</image:loc><image:caption>security-groups-redux.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/best-practices-for-aws-step-functions/</loc><lastmod>2019-09-27T11:21:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/manage-serverless-costs/</loc><lastmod>2019-09-17T10:28:52.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2019/09/hafidh-satyanto-lipPKzctyuQ-unsplash.png</image:loc><image:caption>hafidh-satyanto-lipPKzctyuQ-unsplash.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/aws-reserved-instances-cheatsheet/</loc><lastmod>2019-06-16T06:40:46.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2019/05/reserved.png</image:loc><image:caption>reserved.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/cleaning-up-lambda-logs-with-cloudformation/</loc><lastmod>2019-01-07T11:22:00.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/everything-you-need-to-know-about-cloudformation-drift-detection/</loc><lastmod>2018-11-15T10:19:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/top-10-aws-serverless-resources/</loc><lastmod>2018-08-20T02:44:39.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/understand-your-lambda-event-retries/</loc><lastmod>2018-05-14T13:14:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/understanding-cloudwatch-events/</loc><lastmod>2018-05-14T11:59:56.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2016/05/cloudwatch-events-overview-1.svg</image:loc><image:caption>cloudwatch-events-overview-1.svg</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/how-to-get-good-at-devops/</loc><lastmod>2018-05-14T11:59:37.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/secure-your-cloudfront-distributions/</loc><lastmod>2018-05-14T11:57:53.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/federated-codecommit-access/</loc><lastmod>2018-02-08T08:30:59.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/serverless-operations-meetup-presentation-slides/</loc><lastmod>2018-01-26T22:43:08.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2018/01/ServerlessOperations_preview.jpeg</image:loc><image:caption>ServerlessOperations_preview.jpeg</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/database-connections-in-lambda/</loc><lastmod>2017-08-30T09:35:23.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/getting-started-with-aws-sam-local/</loc><lastmod>2017-08-16T22:00:30.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/im-writing-a-book-about-aws/</loc><lastmod>2017-05-04T08:57:39.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/redirects-in-serverless/</loc><lastmod>2017-04-11T10:00:04.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/cloudformation-stack-resources-summary/</loc><lastmod>2017-01-17T01:21:01.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/scheduling-lambda-functions-with-the-aws-cli/</loc><lastmod>2017-01-13T02:19:41.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/hands-on-with-serverless-v1-screencast/</loc><lastmod>2016-11-23T10:53:02.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/how-to-get-your-aws-sysops-associate-certification/</loc><lastmod>2016-10-17T22:00:02.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/using-dyanmodb-with-serverless/</loc><lastmod>2016-09-19T05:19:09.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/testing-serverless-functions-locally/</loc><lastmod>2016-09-13T06:52:25.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/updating-security-groups-with-lambda/</loc><lastmod>2016-08-04T06:26:20.000Z</lastmod></url><url><loc>https://rowanudell.com/blog/visualising-ec2-security-groups/</loc><lastmod>2016-04-05T10:38:43.000Z</lastmod><image:image><image:loc>https://storage.ghost.io/c/56/6b/566b72cf-9bbd-4d4b-b17f-90e4cf8d106b/content/images/2016/04/Screen-Shot-2016-04-03-at-4-23-44-PM-1.png</image:loc><image:caption>Screen-Shot-2016-04-03-at-4-23-44-PM-1.png</image:caption></image:image></url><url><loc>https://rowanudell.com/blog/using-apex-to-manage-lambda-functions/</loc><lastmod>2016-01-25T22:04:08.000Z</lastmod></url></urlset>