The aws-lambda mod contains resource, control and policy definitions for AWS Lambda service.
Resource Types
Resource types covered by this mod:
- AWS > Lambda
- AWS > Lambda > Function
- AWS > Lambda > Function Alias
- AWS > Lambda > Function Version
- AWS > Lambda > Layer
Permissions
Taking a look at permissions and associated grant levels for each permission for Lambda:
Permission | Grant Level | Help |
---|---|---|
iam:ListRoles | Metadata | |
iam:PassRole | Admin | To create a Lambda function the user must have permission to pass the role to it. |
lambda:AddLayerVersionPermission | Admin | AddLayerVersionPermission is for resources utilizing the push model. This will be common and should be at Operator level. But it allows cross-account pushing to Lambda so needs associated guardrails. |
lambda:AddPermission | Admin | AddPermission is for resources utilizing the push model. This will be common and should be at Operator level. But it allows cross-account pushing to Lambda so needs associated guardrails. |
lambda:CreateAlias | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:CreateCodeSigningConfig | Admin | |
lambda:CreateEventSourceMapping | Operator | Operators can manage the triggers & use of functions. |
lambda:CreateFunction | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:DeleteAlias | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:DeleteCodeSigningConfig | Admin | |
lambda:DeleteEventSourceMapping | Operator | Operators can manage the triggers & use of functions. |
lambda:DeleteFunction | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:DeleteFunction | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:DeleteFunctionCodeSigningConfig | Admin | |
lambda:DeleteFunctionConcurrency | Admin | Admin can manage concurrent execution limit. |
lambda:DeleteFunctionEventInvokeConfig | Admin | |
lambda:DeleteLayerVersion | Admin | |
lambda:DeleteProvisionedConcurrencyConfig | Admin | |
lambda:DisableReplication | Admin | |
lambda:EnableReplication | Admin | Admins can Add a permission to resource policy that gives Lambda replication service permission to get function code and configuration. |
lambda:GetAccountSettings | Metadata | |
lambda:GetAlias | Metadata | |
lambda:GetCodeSigningConfig | Metadata | |
lambda:GetFunctionCodeSigningConfig | Metadata | |
lambda:GetEventSourceMapping | Metadata | |
lambda:GetFunctionCodeSigningConfig | Metadata | |
lambda:GetFunction | ReadOnly | Lambda function code is considered data and requires privileges to view. |
lambda:GetFunctionConcurrency | Metadata | |
lambda:GetFunctionConfiguration | Metadata | |
lambda:GetFunctionEventInvokeConfig | Metadata | |
lambda:GetLayerVersion | ReadOnly | |
lambda:GetLayerVersionByArn | Metadata | |
lambda:GetLayerVersionPolicy | Metadata | |
lambda:GetPolicy | Metadata | |
lambda:GetProvisionedConcurrencyConfig | Metadata | |
lambda:InvokeAsync | Operator | NOTE - Deprecated use Invoke instead. |
lambda:InvokeFunction | Operator | Operators can invoke/run functions. |
lambda:ListAliases | Metadata | |
lambda:ListCodeSigningConfigs | Metadata | |
lambda:ListEventSourceMappings | Metadata | |
lambda:ListFunctionsByCodeSigningConfig | Metadata | |
lambda:ListFunctionEventInvokeConfigs | Metadata | |
lambda:ListFunctions | Metadata | Does not include function code only the configuration information. |
lambda:ListLayerVersions | Metadata | |
lambda:ListLayers | Metadata | |
lambda:ListProvisionedConcurrencyConfigs | Metadata | |
lambda:ListTags | Metadata | |
lambda:ListVersionsByFunction | Metadata | |
lambda:PublishLayerVersion | Admin | Admins can create a function layer from a ZIP archive. Each time you call PublishLayerVersion with the same version name a new version is created. |
lambda:PublishVersion | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:PutFunctionConcurrency | Admin | Admin can manage concurrent execution limit. |
lambda:PutFunctionEventInvokeConfig | Admin | |
lambda:PutFunctionCodeSigningConfig | Admin | |
lambda:PutProvisionedConcurrencyConfig | Admin | |
lambda:RemoveLayerVersionPermission | Admin | |
lambda:RemovePermission | Operator | Allows removal of permissions from push resources. This can be safely granted to Operator since it doesn't allow extra permissions. |
lambda:TagResource | Operator | Operators can manage tags. |
lambda:UntagResource | Operator | Operators can manage tags. |
lambda:UpdateAlias | Operator | "Operators can deploy released versions. (But can't control releases or edit functions.)" |
lambda:UpdateCodeSigningConfig | Admin | |
lambda:UpdateEventSourceMapping | Operator | Operators can manage the triggers & use of functions. |
lambda:UpdateFunctionCode | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:UpdateFunctionCodeSigningConfig | Admin | |
lambda:UpdateFunctionConfiguration | Admin | Admin controls functions release of functions and aliases to functions. |
lambda:UpdateFunctionEventInvokeConfig | Admin | |
s3:GetObject | Operator |
Learn More About Turbot
- Setting Policies Tutorial
- Mods Overview
- Policies Overview
- Resources Overview
- Common Policies and Controls
Recommended Version
Resource Types
- AWS > Lambda
- AWS > Lambda > Function
- AWS > Lambda > Function Alias
- AWS > Lambda > Function Version
- AWS > Lambda > Layer
Control Types
- AWS > Lambda > Function > Active
- AWS > Lambda > Function > Allowed Runtime
- AWS > Lambda > Function > Approved
- AWS > Lambda > Function > CMDB
- AWS > Lambda > Function > Discovery
- AWS > Lambda > Function > Encryption at Rest
- AWS > Lambda > Function > Policy
- AWS > Lambda > Function > Policy > Trusted Access
- AWS > Lambda > Function > Tags
- AWS > Lambda > Function > Usage
- AWS > Lambda > Function Alias > Active
- AWS > Lambda > Function Alias > Approved
- AWS > Lambda > Function Alias > CMDB
- AWS > Lambda > Function Alias > Configured
- AWS > Lambda > Function Alias > Discovery
- AWS > Lambda > Function Version > Active
- AWS > Lambda > Function Version > Approved
- AWS > Lambda > Function Version > CMDB
- AWS > Lambda > Function Version > Discovery
- AWS > Lambda > Function Version > Policy
- AWS > Lambda > Function Version > Policy > Trusted Access
- AWS > Lambda > Layer > Approved
- AWS > Lambda > Layer > CMDB
- AWS > Lambda > Layer > Discovery
Policy Types
- AWS > Lambda > API Enabled
- AWS > Lambda > Approved Regions [Default]
- AWS > Lambda > Enabled
- AWS > Lambda > Function > Active
- AWS > Lambda > Function > Active > Age
- AWS > Lambda > Function > Active > Budget
- AWS > Lambda > Function > Active > Last Modified
- AWS > Lambda > Function > Allowed Runtime
- AWS > Lambda > Function > Allowed Runtime > Values
- AWS > Lambda > Function > Approved
- AWS > Lambda > Function > Approved > Budget
- AWS > Lambda > Function > Approved > Custom
- AWS > Lambda > Function > Approved > Regions
- AWS > Lambda > Function > Approved > Usage
- AWS > Lambda > Function > CMDB
- AWS > Lambda > Function > Encryption at Rest
- AWS > Lambda > Function > Encryption at Rest > Customer Managed Key
- AWS > Lambda > Function > Policy
- AWS > Lambda > Function > Policy > Trusted Access
- AWS > Lambda > Function > Policy > Trusted Access > Accounts
- AWS > Lambda > Function > Policy > Trusted Access > Services
- AWS > Lambda > Function > Regions
- AWS > Lambda > Function > Tags
- AWS > Lambda > Function > Tags > Template
- AWS > Lambda > Function > Usage
- AWS > Lambda > Function > Usage > Limit
- AWS > Lambda > Function Alias > Active
- AWS > Lambda > Function Alias > Active > Age
- AWS > Lambda > Function Alias > Active > Last Modified
- AWS > Lambda > Function Alias > Approved
- AWS > Lambda > Function Alias > Approved > Custom
- AWS > Lambda > Function Alias > Approved > Regions
- AWS > Lambda > Function Alias > Approved > Usage
- AWS > Lambda > Function Alias > CMDB
- AWS > Lambda > Function Alias > Configured
- AWS > Lambda > Function Alias > Configured > Claim Precedence
- AWS > Lambda > Function Alias > Configured > Source
- AWS > Lambda > Function Alias > Regions
- AWS > Lambda > Function Version > Active
- AWS > Lambda > Function Version > Active > Age
- AWS > Lambda > Function Version > Active > Last Modified
- AWS > Lambda > Function Version > Approved
- AWS > Lambda > Function Version > Approved > Custom
- AWS > Lambda > Function Version > Approved > Regions
- AWS > Lambda > Function Version > Approved > Usage
- AWS > Lambda > Function Version > CMDB
- AWS > Lambda > Function Version > Policy
- AWS > Lambda > Function Version > Policy > Trusted Access
- AWS > Lambda > Function Version > Policy > Trusted Access > Accounts
- AWS > Lambda > Function Version > Policy > Trusted Access > Services
- AWS > Lambda > Function Version > Regions
- AWS > Lambda > Layer > Approved
- AWS > Lambda > Layer > Approved > Budget
- AWS > Lambda > Layer > Approved > Custom
- AWS > Lambda > Layer > Approved > Regions
- AWS > Lambda > Layer > Approved > Usage
- AWS > Lambda > Layer > CMDB
- AWS > Lambda > Layer > Regions
- AWS > Lambda > Permissions
- AWS > Lambda > Permissions > Levels
- AWS > Lambda > Permissions > Levels > Modifiers
- AWS > Lambda > Permissions > Lockdown
- AWS > Lambda > Permissions > Lockdown > API Boundary
- AWS > Lambda > Regions
- AWS > Lambda > Tags Template [Default]
- AWS > Lambda > Trusted Accounts [Default]
- AWS > Lambda > Trusted Services [Default]
- AWS > Turbot > Event Handlers > Events > Rules > Custom Event Patterns > @turbot/aws-lambda
- AWS > Turbot > Permissions > Compiled > API Boundary > @turbot/aws-lambda
- AWS > Turbot > Permissions > Compiled > Levels > @turbot/aws-lambda
- AWS > Turbot > Permissions > Compiled > Service Permissions > @turbot/aws-lambda
Release Notes
5.13.1 (2023-06-27)
Bug fixes
- The
AWS > Lambda > Function > Active > Last Modified
andAWS > Lambda > Function Version > Active > Last Modified
policies will now consider theLastModified
time from the resource's CMDB data, if available, to evaluate the outcome of the Active control's Last Modified policy value. - We've updated the runtime of the lambda functions to node 18. You wouldn't notice any difference and things will continue to work smoothly and consistently as before.
5.13.0 (2023-05-31)
What's new?
- Resource's metadata will now also include
createdBy
details in Turbot CMDB.
5.12.0 (2023-02-14)
Control Types
Added
- AWS > Lambda > Function > Allowed Runtime
Policy Types
Added
- AWS > Lambda > Function > Allowed Runtime
- AWS > Lambda > Function > Allowed Runtime > Values
5.11.0 (2022-10-14)
Resource Types
Added
- AWS > Lambda > Layer
Control Types
Added
- AWS > Lambda > Layer > Approved
- AWS > Lambda > Layer > CMDB
- AWS > Lambda > Layer > Discovery
Policy Types
Added
- AWS > Lambda > Layer > Approved
- AWS > Lambda > Layer > Approved > Budget
- AWS > Lambda > Layer > Approved > Custom
- AWS > Lambda > Layer > Approved > Regions
- AWS > Lambda > Layer > Approved > Usage
- AWS > Lambda > Layer > CMDB
- AWS > Lambda > Layer > Regions
Action Types
Added
- AWS > Lambda > Layer > Skip alarm for Approved control
- AWS > Lambda > Layer > Skip alarm for Approved control [90 days]
5.10.2 (2022-08-17)
Bug fixes
- The
AWS > Lambda > Trusted Accounts [Default]
policy wouldn't not allow[*]
as an acceptable value to trust all accounts for theAWS > Lambda > Function > Policy > Trusted Access
control. This is now fixed.
5.10.1 (2022-07-13)
Bug fixes
- The lambda functions for certain controls/actions would re-run unnecessarily whenever the mod version was updated. This has now been fixed.
5.10.0 (2022-07-12)
What's new?
- Users can now perform quick actions on resources to remediate cloud configuration issues or skip Turbot alarms for issues that they want to come back to later. To get started, click on the
Actions
button, which will reveal a dropdown menu with available actions, and select one. See Quick Actions for more information. - README.md file is now available for users to check details about the resource types and service permissions that the mod covers.
Action Types
Added
- AWS > Lambda > Function > Delete from AWS
- AWS > Lambda > Function > Set Tags
- AWS > Lambda > Function > Skip alarm for Active control
- AWS > Lambda > Function > Skip alarm for Active control [90 days]
- AWS > Lambda > Function > Skip alarm for Approved control
- AWS > Lambda > Function > Skip alarm for Approved control [90 days]
- AWS > Lambda > Function > Skip alarm for Encryption at Rest control
- AWS > Lambda > Function > Skip alarm for Encryption at Rest control [90 days]
- AWS > Lambda > Function > Skip alarm for Tags control
- AWS > Lambda > Function > Skip alarm for Tags control [90 days]
- AWS > Lambda > Function Alias > Delete from AWS
- AWS > Lambda > Function Alias > Skip alarm for Active control
- AWS > Lambda > Function Alias > Skip alarm for Active control [90 days]
- AWS > Lambda > Function Alias > Skip alarm for Approved control
- AWS > Lambda > Function Alias > Skip alarm for Approved control [90 days]
- AWS > Lambda > Function Version > Delete from AWS
- AWS > Lambda > Function Version > Skip alarm for Active control
- AWS > Lambda > Function Version > Skip alarm for Active control [90 days]
- AWS > Lambda > Function Version > Skip alarm for Approved control
- AWS > Lambda > Function Version > Skip alarm for Approved control [90 days]
5.9.0 (2022-02-15)
What's new?
- Users can now create their own custom checks against resource attributes in the Approved control using the
Approved > Custom
policy. These custom checks would be a part of the evaluation of the Approved control. Custom messages can also be added which are then displayed in the control details table. See Custom Checks for more information. AWS/Lambda/Admin
andAWS/Lambda/Metadata
now include permissions for Code Signing Config and Function Code Signing Config.
Bug fixes
- We've improved the process of deleting resources from Turbot if their CMDB policy was set to
Enforce: Disabled
. The CMDB controls will now not look to resolve credentials via Turbot's IAM role while deleting resources from Turbot. This will allow the CMDB controls to process resource deletions from Turbot more reliably than before.
Policy Types
Added
- AWS > Lambda > Function > Approved > Custom
- AWS > Lambda > Function Alias > Approved > Custom
- AWS > Lambda > Function Version > Approved > Custom
5.8.0 (2021-04-23)
What's new?
- We've improved the state reasons and details tables in various Approved and Active controls to be more helpful, especially when a resource is unapproved or inactive. Previously, to understand why one of these controls is in Alarm state, you would need to find and read the control's process logs. This felt like too much work for a simple task, so now these details are visible directly from the control page.
5.7.3 (2020-12-18)
Bug fixes
- Controls run faster now when in the
tbd
andskipped
states thanks to the new Turbot Precheck feature (not to be confused with TSA PreCheck). With Turbot Precheck, controls avoid running GraphQL input queries when intbd
andskipped
, resulting in faster and lighter control runs.
5.7.2 (2020-12-04)
Bug fixes
- We've updated various resources' Discovery and CMDB controls to ensure array properties are consistently sorted in the CMDB.
5.7.1 (2020-11-25)
Bug fixes
- The
AWS > Lambda > Function Version > Discovery
control would sometimes go into an error state if its parent function was deleted in the AWS account, but not cleaned up properly in our CMDB. This is now fixed.
5.7.0 (2020-11-23)
What's new?
Cross-account trust is not only important for complex enterprise and application scenarios but is also a critical area for security controls. We now support controlling cross-account access for function and function version to provide automatic protection against unexpected cross-account access.
A common set of trusted AWS account IDs can be defined in the
AWS > Account > Trusted Accounts [Default]
policy. Trusted accounts can also be defined at any level, even down to the specific function and function version resources.To get started with these new controls, please see the
AWS > Lambda > Function > Policy > Trusted Access
andAWS > Lambda > Function Version > Policy > Trusted Access
policies.
Control Types
Added
- AWS > Lambda > Function > Policy
- AWS > Lambda > Function > Policy > Trusted Access
- AWS > Lambda > Function Version > Policy
- AWS > Lambda > Function Version > Policy > Trusted Access
Policy Types
Added
- AWS > Lambda > Function > Policy
- AWS > Lambda > Function > Policy > Trusted Access
- AWS > Lambda > Function > Policy > Trusted Access > Accounts
- AWS > Lambda > Function > Policy > Trusted Access > Services
- AWS > Lambda > Function Version > Policy
- AWS > Lambda > Function Version > Policy > Trusted Access
- AWS > Lambda > Function Version > Policy > Trusted Access > Accounts
- AWS > Lambda > Function Version > Policy > Trusted Access > Services
- AWS > Lambda > Trusted Accounts [Default]
- AWS > Lambda > Trusted Services [Default]
Action Types
Added
- AWS > Lambda > Function > Set Policy Trusted Access
- AWS > Lambda > Function Version > Set Policy Trusted Access
5.6.0 (2020-10-28)
Resource Types
Added
- AWS > Lambda > Function Version
Control Types
Added
- AWS > Lambda > Function Version > Active
- AWS > Lambda > Function Version > Approved
- AWS > Lambda > Function Version > CMDB
- AWS > Lambda > Function Version > Discovery
Policy Types
Added
- AWS > Lambda > Function Version > Active
- AWS > Lambda > Function Version > Active > Age
- AWS > Lambda > Function Version > Active > Last Modified
- AWS > Lambda > Function Version > Approved
- AWS > Lambda > Function Version > Approved > Regions
- AWS > Lambda > Function Version > Approved > Usage
- AWS > Lambda > Function Version > CMDB
- AWS > Lambda > Function Version > Regions
Action Types
Added
- AWS > Lambda > Function Version > Delete
- AWS > Lambda > Function Version > Router
5.5.0 (2020-10-19)
Resource Types
Added
- AWS > Lambda > Function Alias
Control Types
Added
- AWS > Lambda > Function Alias > Active
- AWS > Lambda > Function Alias > Approved
- AWS > Lambda > Function Alias > CMDB
- AWS > Lambda > Function Alias > Configured
- AWS > Lambda > Function Alias > Discovery
Policy Types
Added
- AWS > Lambda > Function Alias > Active
- AWS > Lambda > Function Alias > Active > Age
- AWS > Lambda > Function Alias > Active > Last Modified
- AWS > Lambda > Function Alias > Approved
- AWS > Lambda > Function Alias > Approved > Regions
- AWS > Lambda > Function Alias > Approved > Usage
- AWS > Lambda > Function Alias > CMDB
- AWS > Lambda > Function Alias > Configured
- AWS > Lambda > Function Alias > Configured > Claim Precedence
- AWS > Lambda > Function Alias > Configured > Source
- AWS > Lambda > Function Alias > Regions
Renamed
- AWS > Turbot > Event Handlers > Events > Rules > Custom Event Patterns > Lambda to AWS > Turbot > Event Handlers > Events > Rules > Custom Event Patterns > @turbot/aws-lambda
Action Types
Added
- AWS > Lambda > Function Alias > Delete
- AWS > Lambda > Function Alias > Router
5.4.2 (2020-09-21)
Bug fixes
- We've made some improvements to our real-time event handling that reduces the risk of creating resources in CMDB with malformed AKAs. There's no noticeable difference, but things should run more reliably now.
5.4.1 (2020-09-15)
Bug fixes
- Updating tags for a lambda function did not automatically update its corresponding CMDB control. This issue has now been fixed.
5.4.0 (2020-09-02)
What's new?
- Discovery controls now have their own control category,
CMDB > Discovery
, to allow for easier filtering separately from other CMDB controls. - We've renamed the service's default regions policy from
Regions [Default]
toRegions
to be consistent with our other regions policies.
5.3.2 (2020-08-13)
Bug fixes
- In various Active controls, we were outputting log messages that did not properly show how many days were left until we'd delete the inactive resources (we were still deleting them after the correct number of days). These log messages have been fixed and now contain the correct number of days.
5.3.1 (2020-07-07)
Bug fixes
- Updated various resource configurations to provide better compatibility with AWS China regions.
5.3.0 (2020-05-15)
What's new?
- Updated
AWS > Lambda > Regions
policy default value to now includeaf-south-1
.
5.2.1 (2020-04-23)
Bug fixes
- Changes to the VPC configuration for functions was not being properly captured in the CMDB. Now it is.