Skip to content

Commit

Permalink
POL-1327 New Policy: AWS Lambda Functions Without Provisioned Concurr…
Browse files Browse the repository at this point in the history
…ency (#2565)

* update

* fix

* update

* fix

* update

* fix

* update

* update

* update

* update
  • Loading branch information
XOmniverse authored Sep 16, 2024
1 parent 46a4b2e commit c52809c
Show file tree
Hide file tree
Showing 8 changed files with 2,061 additions and 0 deletions.
52 changes: 52 additions & 0 deletions data/policy_permissions_list/master_policy_permissions_list.json
Original file line number Diff line number Diff line change
Expand Up @@ -5578,6 +5578,58 @@
}
]
},
{
"id": "./operational/aws/lambda_provisioned_concurrency/aws_lambda_provisioned_concurrency.pt",
"name": "AWS Lambda Functions Without Provisioned Concurrency",
"version": "0.1.0",
"providers": [
{
"name": "aws",
"permissions": [
{
"name": "sts:GetCallerIdentity",
"read_only": true,
"required": true
},
{
"name": "ec2:DescribeRegions",
"read_only": true,
"required": true
},
{
"name": "lambda:ListFunctions",
"read_only": true,
"required": true
},
{
"name": "lambda:ListTags",
"read_only": true,
"required": true
},
{
"name": "lambda:ListProvisionedConcurrencyConfigs",
"read_only": true,
"required": true
},
{
"name": "lambda:ListVersionsByFunction",
"read_only": true,
"required": true
}
]
},
{
"name": "flexera",
"permissions": [
{
"name": "billing_center_viewer",
"read_only": true,
"required": true
}
]
}
]
},
{
"id": "./operational/aws/long_running_instances/long_running_instances.pt",
"name": "AWS Long Running Instances",
Expand Down
29 changes: 29 additions & 0 deletions data/policy_permissions_list/master_policy_permissions_list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3264,6 +3264,35 @@
- name: billing_center_viewer
read_only: true
required: true
- id: "./operational/aws/lambda_provisioned_concurrency/aws_lambda_provisioned_concurrency.pt"
name: AWS Lambda Functions Without Provisioned Concurrency
version: 0.1.0
:providers:
- :name: aws
:permissions:
- name: sts:GetCallerIdentity
read_only: true
required: true
- name: ec2:DescribeRegions
read_only: true
required: true
- name: lambda:ListFunctions
read_only: true
required: true
- name: lambda:ListTags
read_only: true
required: true
- name: lambda:ListProvisionedConcurrencyConfigs
read_only: true
required: true
- name: lambda:ListVersionsByFunction
read_only: true
required: true
- :name: flexera
:permissions:
- name: billing_center_viewer
read_only: true
required: true
- id: "./operational/aws/long_running_instances/long_running_instances.pt"
name: AWS Long Running Instances
version: '5.1'
Expand Down
5 changes: 5 additions & 0 deletions operational/aws/lambda_provisioned_concurrency/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog

## v0.1.0

- Initial release
70 changes: 70 additions & 0 deletions operational/aws/lambda_provisioned_concurrency/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# AWS Lambda Functions Without Provisioned Concurrency

## What It Does

This policy template reports any published AWS Lambda Function versions that do not have provisioned concurrency enabled. Optionally, it emails this report.

## Input Parameters

- *Email Addresses* - Email addresses of the recipients you wish to notify when new incidents are created.
- *Account Number* - The Account number for use with the AWS STS Cross Account Role. Leave blank when using AWS IAM Access key and secret. It only needs to be passed when the desired AWS account is different than the one associated with the Flexera One credential. [More information is available in our documentation.](https://docs.flexera.com/flexera/EN/Automation/ProviderCredentials.htm#automationadmin_1982464505_1123608)
- *Allow/Deny Regions* - Whether to treat Allow/Deny Regions List parameter as allow or deny list. Has no effect if Allow/Deny Regions List is left empty.
- *Allow/Deny Regions List* - A list of regions to allow or deny for an AWS account. Please enter the regions code if SCP is enabled. See [Available Regions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) in AWS; otherwise, the policy may fail on regions that are disabled via SCP. Leave blank to consider all the regions.
- *Exclusion Tags* - The policy will filter resources containing the specified tags from the results. The following formats are supported:
- `Key` - Filter all resources with the specified tag key.
- `Key==Value` - Filter all resources with the specified tag key:value pair.
- `Key!=Value` - Filter all resources missing the specified tag key:value pair. This will also filter all resources missing the specified tag key.
- `Key=~/Regex/` - Filter all resources where the value for the specified key matches the specified regex string.
- `Key!~/Regex/` - Filter all resources where the value for the specified key does not match the specified regex string. This will also filter all resources missing the specified tag key.
- *Exclusion Tags: Any / All* - Whether to filter instances containing any of the specified tags or only those that contain all of them. Only applicable if more than one value is entered in the `Exclusion Tags` field.

## Policy Actions

- Sends an email notification

## Prerequisites

This Policy Template uses [Credentials](https://docs.flexera.com/flexera/EN/Automation/ManagingCredentialsExternal.htm) for authenticating to datasources -- in order to apply this policy you must have a Credential registered in the system that is compatible with this policy. If there are no Credentials listed when you apply the policy, please contact your Flexera Org Admin and ask them to register a Credential that is compatible with this policy. The information below should be consulted when creating the credential(s).

- [**AWS Credential**](https://docs.flexera.com/flexera/EN/Automation/ProviderCredentials.htm#automationadmin_1982464505_1121575) (*provider=aws*) which has the following permissions:
- `sts:GetCallerIdentity`
- `ec2:DescribeRegions`
- `lambda:ListFunctions`
- `lambda:ListTags`
- `lambda:ListProvisionedConcurrencyConfigs`
- `lambda:ListVersionsByFunction`

Example IAM Permission Policy:

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:GetCallerIdentity",
"ec2:DescribeRegions",
"lambda:ListFunctions",
"lambda:ListTags",
"lambda:ListProvisionedConcurrencyConfigs",
"lambda:ListVersionsByFunction"
],
"Resource": "*"
}
]
}
```

- [**Flexera Credential**](https://docs.flexera.com/flexera/EN/Automation/ProviderCredentials.htm) (*provider=flexera*) which has the following roles:
- `billing_center_viewer`

The [Provider-Specific Credentials](https://docs.flexera.com/flexera/EN/Automation/ProviderCredentials.htm) page in the docs has detailed instructions for setting up Credentials for the most common providers.

## Supported Clouds

- AWS

## Cost

This Policy Template does not incur any cloud costs.
Loading

0 comments on commit c52809c

Please sign in to comment.