{"id":48151,"date":"2022-08-25T00:00:00","date_gmt":"2022-08-25T00:00:00","guid":{"rendered":"urn:uuid:d8dfc6ad-438a-8d5d-eda6-da014f7b12bd"},"modified":"2022-08-25T00:00:00","modified_gmt":"2022-08-25T00:00:00","slug":"unlocking-serverless-with-aws-lambda-and-iam","status":"publish","type":"post","link":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/","title":{"rendered":"Unlocking Serverless with AWS Lambda and IAM"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/article-large-tile.jpg\"><\/p>\n<div><img decoding=\"async\" src=\"https:\/\/www.trendmicro.com\/content\/dam\/trendmicro\/global\/en\/devops\/thumbnails\/22\/aws-dev-tools-tn.jpg\" class=\"ff-og-image-inserted\"><\/div>\n<p>As I mentioned earlier we find the code for our two Lambda functions create-user and get-user under their respective folders.<\/p>\n<p><span class=\"pre\">import json<br \/>import boto3<br \/>import os<\/span><\/p>\n<p>client = boto3.client(&#8216;dynamodb&#8217;)<\/p>\n<p>table_name = os.getenv(&#8220;TABLE_NAME&#8221;)<\/p>\n<p>def handler(event, _):<br \/>&nbsp; &nbsp;body = json.loads(event[&#8216;body&#8217;])<\/p>\n<p>&nbsp; &nbsp;data = client.put_item(<br \/>&nbsp; &nbsp; &nbsp;TableName=table_name,<br \/>&nbsp; &nbsp; &nbsp;Item={<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &#8216;id&#8217;: {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;S&#8217;: body[&#8216;id&#8217;]<br \/>&nbsp; &nbsp; &nbsp; &nbsp; },<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &#8216;name&#8217;: {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8216;S&#8217;: body[&#8216;name&#8217;]<br \/>&nbsp; &nbsp; &nbsp; &nbsp; }<br \/>&nbsp; &nbsp;}<br \/>)<br \/>response = {<br \/>&nbsp; &nbsp; &#8216;statusCode&#8217;: 200,<br \/>&nbsp; &nbsp; &#8216;body&#8217;: json.dumps({&#8220;id&#8221;: body[&#8216;id&#8217;], &#8220;name&#8221;:body[&#8216;name&#8217;]}),<br \/>&nbsp; &nbsp; &#8216;headers&#8217;: {<br \/>&nbsp; &nbsp; &nbsp; &#8216;Content-Type&#8217;: &#8216;application\/json&#8217;,<br \/>&nbsp; &nbsp; &nbsp; &#8216;Access-Control-Allow-Origin&#8217;: &#8216;*&#8217;<br \/>&nbsp; &nbsp; },<br \/>&nbsp; }<br \/>&nbsp; return response<\/p>\n<p><span class=\"pre\">import json<br \/>import boto3<br \/>import os<\/span><\/p>\n<p>client = boto3.client(&#8216;dynamodb&#8217;)<br \/>table_name = os.getenv(&#8216;TABLE_NAME&#8217;)<br \/>def handler(event, _):<\/p>\n<p>&nbsp; data = client.get_item(<br \/>&nbsp; &nbsp; TableName=table_name,<br \/>&nbsp; &nbsp; Key={<br \/>&nbsp; &nbsp; &nbsp; &#8216;id&#8217;: {<br \/>&nbsp; &nbsp; &nbsp; &nbsp;&#8216;S&#8217;: event[&#8216;pathParameters&#8217;][&#8216;id&#8217;]<br \/>&nbsp; &nbsp; &nbsp; }<br \/>&nbsp; }<br \/>)<\/p>\n<p>response = {<br \/>&nbsp; &nbsp; &#8216;statusCode&#8217;: 200,<br \/>&nbsp; &nbsp; &#8216;body&#8217;: json.dumps(data[&#8216;Item&#8217;]),<br \/>&nbsp; &nbsp; &#8216;headers&#8217;: {<br \/>&nbsp; &nbsp; &nbsp; &#8216;Content-Type&#8217;: &#8216;application\/json&#8217;,<br \/>&nbsp; &nbsp; &nbsp; &#8216;Access-Control-Allow-Origin&#8217;: &#8216;*&#8217;<br \/>&nbsp; &nbsp; },<br \/>}<br \/>return response<\/p>\n<p>But the real core of a serverless project is the template file. This is where all the resources and configuration of your serverless architecture is defined.<\/p>\n<p><span class=\"pre\">AWSTemplateFormatVersion: &#8220;2010-09-09&#8221;<br \/>Transform: AWS::Serverless-2016-10-31<br \/>Description: &gt;<br \/>&nbsp; user-sam-app<\/span><\/p>\n<p>&nbsp; A sample user api<\/p>\n<p>Globals:<br \/>&nbsp; Function:<br \/>&nbsp; &nbsp; Runtime: python3.9<br \/>&nbsp; &nbsp; Timeout: 3<br \/>&nbsp; &nbsp; Handler: app.handler<br \/>&nbsp; &nbsp; Architectures:<br \/>&nbsp; &nbsp; &nbsp; &#8211; x86_64<br \/>&nbsp; &nbsp; Environment:<br \/>&nbsp; &nbsp; &nbsp; Variables:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; TABLE_NAME: !Ref UserTable<\/p>\n<p>Resources:<br \/>&nbsp; CreateUserFunction:<br \/>&nbsp; &nbsp; Type: AWS::Serverless::Function<br \/>&nbsp; &nbsp; Properties:<br \/>&nbsp; &nbsp; &nbsp; CodeUri: create_user\/<br \/>&nbsp; &nbsp; &nbsp; Events:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; AccountsAPI:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Type: Api<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Properties:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Path: \/users<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Method: post<br \/>&nbsp; &nbsp; &nbsp; Policies:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; DynamoDBWritePolicy:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TableName: !Ref UserTable<\/p>\n<p>GetUserFunction:<br \/>&nbsp; Type: AWS::Serverless::Function<br \/>&nbsp; Properties:<br \/>&nbsp; &nbsp; CodeUri: get_user\/<br \/>&nbsp; &nbsp; Events:<br \/>&nbsp; &nbsp; &nbsp;AccountsAPI:<br \/>&nbsp; &nbsp; &nbsp; Type: Api<br \/>&nbsp; &nbsp; &nbsp; Properties:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; Path: \/users\/{id}<br \/>&nbsp; &nbsp; &nbsp; &nbsp; Method: get<br \/>&nbsp; &nbsp; Policies:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &#8211; DynamoDBReadPolicy:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TableName: !Ref UserTable<\/p>\n<p>UserTable:<br \/>&nbsp; Type: AWS::DynamoDB::Table<br \/>&nbsp; Properties:<br \/>&nbsp; &nbsp; TableName: UserTable<br \/>&nbsp; &nbsp; BillingMode: PAY_PER_REQUEST<br \/>&nbsp; &nbsp; AttributeDefinitions:<br \/>&nbsp; &nbsp; &nbsp; &#8211; AttributeName: id<br \/>&nbsp; &nbsp; &nbsp; &nbsp; AttributeType: S<br \/>&nbsp; &nbsp;KeySchema:<br \/>&nbsp; &nbsp; &nbsp;&#8211; AttributeName: id<br \/>&nbsp; &nbsp; &nbsp; &nbsp;KeyType: HASH<\/p>\n<p>Outputs:<br \/>&nbsp; UserAPI:<br \/>&nbsp; &nbsp; Description: &#8220;API Gateway endpoint URL for Prod stage&#8221;<br \/>&nbsp; &nbsp; Value: !Sub &#8220;https:\/\/${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com\/Prod\/users\/&#8221;<\/p>\n<p>&nbsp; CreateUserFunction:<br \/>&nbsp; &nbsp; Description: &#8220;Create User Lambda Function ARN&#8221;<br \/>&nbsp; &nbsp; Value: !GetAtt CreateUserFunction.Arn<\/p>\n<p>&nbsp; CreateUserFunctionIamRole:<br \/>&nbsp; &nbsp; Description: &#8220;Implicit IAM Role created for Create User function&#8221;<br \/>&nbsp; &nbsp; Value: !GetAtt CreateUserFunctionRole.Arn<\/p>\n<p>&nbsp; GetUserFunction:<br \/>&nbsp; &nbsp; Description: &#8220;Get User Lambda Function ARN&#8221;<br \/>&nbsp; &nbsp; Value: !GetAtt GetUserFunction.Arn<\/p>\n<p>&nbsp; GetUserFunctionIamRole:<br \/>&nbsp; &nbsp; Description: &#8220;Implicit IAM Role created for the Get User function&#8221;<br \/>&nbsp; &nbsp; Value: !GetAtt GetUserFunctionRole.Arn<\/p>\n<p>&nbsp; UserTable:<br \/>&nbsp; &nbsp; Value: !Ref UserTable<br \/>&nbsp; &nbsp; Description: DynamoDb Table to store users<\/p>\n<p>It can definitely look intimidating at first but lets walk through each property to understand what each is accomplishing for us.<\/p>\n<p><span class=\"pre\">Globals:<br \/>&nbsp; Function:<br \/>&nbsp; &nbsp;Runtime: python3.9<br \/>&nbsp; &nbsp;Timeout: 3<br \/>&nbsp; &nbsp;Handler: app.handler<br \/>&nbsp; &nbsp;Architectures:<br \/>&nbsp; &nbsp; &nbsp;&#8211; x86_64<br \/>&nbsp; &nbsp;Environment:<br \/>&nbsp; &nbsp; &nbsp;Variables:<br \/>&nbsp; &nbsp; &nbsp; TABLE_NAME: !Ref UserTable<\/span><\/p>\n<p>Under Globals we can define properties for multiple resources at once. In this case each of the properties under Function apply to all Lambda functions defined in this file. Of note is the Handler which specifies the entry point for our functions and the Environment Variable TABLE_NAME which will be available to our functions to determine exactly which DynamboDB table to read and write from.<\/p>\n<p>Under Resources you can define almost any <a href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/aws-template-resource-type-ref.html\" target=\"_blank\" rel=\"noopener\">AWS resource<\/a>! Feel free to experiment!<\/p>\n<p>Here we\u2019ve created our two Lambda Functions with type AWS::Serverless::Function and our DynamoDB Table with type AWS::DynamoDB::Table.<\/p>\n<p>Next, lets zoom in on our create-user Lambda function.<\/p>\n<p><span class=\"pre\">CreateUserFunction:<br \/>&nbsp; &nbsp;Type: AWS::Serverless::Function<br \/>&nbsp; &nbsp;Properties:<br \/>&nbsp; &nbsp; &nbsp;CodeUri: create_user\/<br \/>&nbsp; &nbsp; &nbsp;Events:<br \/>&nbsp; &nbsp; &nbsp; &nbsp;AccountsAPI:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Type: Api<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Properties:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Path: \/users<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Method: post<br \/>&nbsp; &nbsp; &nbsp;Policies:<br \/>&nbsp; &nbsp; &nbsp; &#8211; DynamoDBWritePolicy:<br \/>&nbsp; &nbsp; &nbsp; &nbsp; TableName: !Ref UserTable<\/span><\/p>\n<p>Starting from the top, the Type <a href=\"https:\/\/docs.aws.amazon.com\/serverless-application-model\/latest\/developerguide\/sam-resource-function.html\" target=\"_blank\" rel=\"noopener\">AWS::Serverless::Function<\/a> is actually a unique resource type provided by SAM that will implicitly create resources in order to help us quickly accomplish the Lambda configuration we saw earlier.<\/p>\n<p> Read More <a href=\"https:\/\/www.trendmicro.com\/en_us\/devops\/22\/h\/serverless-aws-lambda-iam-tutorial.html\">HERE<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how Lambda and IAM unlock the power and versatility of the cloud by implementing a serverless User API that can be expanded on as you grow and explore the many services on AWS. Read More HERE&#8230;<\/p>\n","protected":false},"author":2,"featured_media":48152,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[61],"tags":[9503,9505,9501,9571,9608],"class_list":["post-48151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trendmicro","tag-trend-micro-devops-article","tag-trend-micro-devops-aws","tag-trend-micro-devops-cloud-native","tag-trend-micro-devops-how-to","tag-trend-micro-devops-serverless-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News<\/title>\n<meta name=\"description\" content=\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security &amp; Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News\" \/>\n<meta property=\"og:description\" content=\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security &amp; Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/\" \/>\n<meta property=\"og:site_name\" content=\"ThreatsHub Cybersecurity News\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-25T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.trendmicro.com\/content\/dam\/article-large-tile.jpg\" \/>\n<meta name=\"author\" content=\"TH Author\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@threatshub\" \/>\n<meta name=\"twitter:site\" content=\"@threatshub\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TH Author\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/\"},\"author\":{\"name\":\"TH Author\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/person\\\/12e0a8671ff89a863584f193e7062476\"},\"headline\":\"Unlocking Serverless with AWS Lambda and IAM\",\"datePublished\":\"2022-08-25T00:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/\"},\"wordCount\":870,\"publisher\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/unlocking-serverless-with-aws-lambda-and-iam.jpg\",\"keywords\":[\"Trend Micro DevOps : Article\",\"Trend Micro DevOps : AWS\",\"Trend Micro DevOps : Cloud Native\",\"Trend Micro DevOps : How To\",\"Trend Micro DevOps : Serverless Security\"],\"articleSection\":[\"TrendMicro\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/\",\"name\":\"Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/unlocking-serverless-with-aws-lambda-and-iam.jpg\",\"datePublished\":\"2022-08-25T00:00:00+00:00\",\"description\":\"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/unlocking-serverless-with-aws-lambda-and-iam.jpg\",\"contentUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/unlocking-serverless-with-aws-lambda-and-iam.jpg\",\"width\":641,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/unlocking-serverless-with-aws-lambda-and-iam\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trend Micro DevOps : Article\",\"item\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/tag\\\/trend-micro-devops-article\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Unlocking Serverless with AWS Lambda and IAM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\",\"name\":\"ThreatsHub Cybersecurity News\",\"description\":\"%%focuskw%% Threat Intel \u2013 Threat Intel Services \u2013 CyberIntelligence \u2013 Cyber Threat Intelligence - Threat Intelligence Feeds - Threat Intelligence Reports - CyberSecurity Report \u2013 Cyber Security PDF \u2013 Cybersecurity Trends - Cloud Sandbox \u2013- Threat IntelligencePortal \u2013 Incident Response \u2013 Threat Hunting \u2013 IOC - Yara - Security Operations Center \u2013 SecurityOperation Center \u2013 Security SOC \u2013 SOC Services - Advanced Threat - Threat Detection - TargetedAttack \u2013 APT \u2013 Anti-APT \u2013 Advanced Protection \u2013 Cyber Security Services \u2013 Cybersecurity Services -Threat Intelligence Platform\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\"},\"alternateName\":\"Threatshub.org\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#organization\",\"name\":\"ThreatsHub.org\",\"alternateName\":\"Threatshub.org\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Threatshub_Favicon1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Threatshub_Favicon1.jpg\",\"width\":432,\"height\":435,\"caption\":\"ThreatsHub.org\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/threatshub\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.threatshub.org\\\/blog\\\/#\\\/schema\\\/person\\\/12e0a8671ff89a863584f193e7062476\",\"name\":\"TH Author\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g\",\"caption\":\"TH Author\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News","description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/","og_locale":"en_US","og_type":"article","og_title":"Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News","og_description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","og_url":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/","og_site_name":"ThreatsHub Cybersecurity News","article_published_time":"2022-08-25T00:00:00+00:00","og_image":[{"url":"https:\/\/www.trendmicro.com\/content\/dam\/article-large-tile.jpg","type":"","width":"","height":""}],"author":"TH Author","twitter_card":"summary_large_image","twitter_creator":"@threatshub","twitter_site":"@threatshub","twitter_misc":{"Written by":"TH Author","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#article","isPartOf":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/"},"author":{"name":"TH Author","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/person\/12e0a8671ff89a863584f193e7062476"},"headline":"Unlocking Serverless with AWS Lambda and IAM","datePublished":"2022-08-25T00:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/"},"wordCount":870,"publisher":{"@id":"https:\/\/www.threatshub.org\/blog\/#organization"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2022\/08\/unlocking-serverless-with-aws-lambda-and-iam.jpg","keywords":["Trend Micro DevOps : Article","Trend Micro DevOps : AWS","Trend Micro DevOps : Cloud Native","Trend Micro DevOps : How To","Trend Micro DevOps : Serverless Security"],"articleSection":["TrendMicro"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/","url":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/","name":"Unlocking Serverless with AWS Lambda and IAM 2026 | ThreatsHub Cybersecurity News","isPartOf":{"@id":"https:\/\/www.threatshub.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#primaryimage"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2022\/08\/unlocking-serverless-with-aws-lambda-and-iam.jpg","datePublished":"2022-08-25T00:00:00+00:00","description":"ThreatsHub Cybersecurity News | ThreatsHub.org | Cloud Security & Cyber Threats Analysis Hub. 100% Free OSINT Threat Intelligent and Cybersecurity News.","breadcrumb":{"@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#primaryimage","url":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2022\/08\/unlocking-serverless-with-aws-lambda-and-iam.jpg","contentUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2022\/08\/unlocking-serverless-with-aws-lambda-and-iam.jpg","width":641,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/www.threatshub.org\/blog\/unlocking-serverless-with-aws-lambda-and-iam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.threatshub.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Trend Micro DevOps : Article","item":"https:\/\/www.threatshub.org\/blog\/tag\/trend-micro-devops-article\/"},{"@type":"ListItem","position":3,"name":"Unlocking Serverless with AWS Lambda and IAM"}]},{"@type":"WebSite","@id":"https:\/\/www.threatshub.org\/blog\/#website","url":"https:\/\/www.threatshub.org\/blog\/","name":"ThreatsHub Cybersecurity News","description":"%%focuskw%% Threat Intel \u2013 Threat Intel Services \u2013 CyberIntelligence \u2013 Cyber Threat Intelligence - Threat Intelligence Feeds - Threat Intelligence Reports - CyberSecurity Report \u2013 Cyber Security PDF \u2013 Cybersecurity Trends - Cloud Sandbox \u2013- Threat IntelligencePortal \u2013 Incident Response \u2013 Threat Hunting \u2013 IOC - Yara - Security Operations Center \u2013 SecurityOperation Center \u2013 Security SOC \u2013 SOC Services - Advanced Threat - Threat Detection - TargetedAttack \u2013 APT \u2013 Anti-APT \u2013 Advanced Protection \u2013 Cyber Security Services \u2013 Cybersecurity Services -Threat Intelligence Platform","publisher":{"@id":"https:\/\/www.threatshub.org\/blog\/#organization"},"alternateName":"Threatshub.org","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.threatshub.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.threatshub.org\/blog\/#organization","name":"ThreatsHub.org","alternateName":"Threatshub.org","url":"https:\/\/www.threatshub.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2025\/05\/Threatshub_Favicon1.jpg","contentUrl":"https:\/\/www.threatshub.org\/blog\/coredata\/uploads\/2025\/05\/Threatshub_Favicon1.jpg","width":432,"height":435,"caption":"ThreatsHub.org"},"image":{"@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/threatshub"]},{"@type":"Person","@id":"https:\/\/www.threatshub.org\/blog\/#\/schema\/person\/12e0a8671ff89a863584f193e7062476","name":"TH Author","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/066276f086d5155df79c850206a779ad368418a844da0182ce43f9cd5b506c3d?s=96&d=mm&r=g","caption":"TH Author"}}]}},"_links":{"self":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts\/48151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/comments?post=48151"}],"version-history":[{"count":0,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/posts\/48151\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/media\/48152"}],"wp:attachment":[{"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/media?parent=48151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/categories?post=48151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.threatshub.org\/blog\/wp-json\/wp\/v2\/tags?post=48151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}