Skip to content

Commit 7ac9033

Browse files
committed
Update resource naming
1 parent 35a8faf commit 7ac9033

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

infrastructure/modules/kms/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ module "kms_key" {
7373
| <a name="input_allowed_arn"></a> [allowed\_arn](#input\_allowed\_arn) | List of ARNs that are allowed full encrypt/decrypt access to the KMS key. | `list(string)` | `[]` | no |
7474
| <a name="input_aws_identifiers"></a> [aws\_identifiers](#input\_aws\_identifiers) | List of ARNs that will be granted decrypt-only access. | `list(string)` | `[]` | no |
7575
| <a name="input_environment"></a> [environment](#input\_environment) | Deployment environment (e.g., dev, staging, prod). | `string` | n/a | yes |
76+
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | Lambda KMS time to deletion in days | `number` | `30` | no |
7677
| <a name="input_kms_key_description"></a> [kms\_key\_description](#input\_kms\_key\_description) | Description of the KMS key. | `string` | n/a | yes |
7778
| <a name="input_kms_key_name"></a> [kms\_key\_name](#input\_kms\_key\_name) | Name of the KMS key to be created. | `string` | n/a | yes |
7879
| <a name="input_kms_key_rotation_enabled"></a> [kms\_key\_rotation\_enabled](#input\_kms\_key\_rotation\_enabled) | Enable automatic KMS key rotation. | `bool` | `true` | no |

infrastructure/modules/lambda/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,31 +78,42 @@ module "lambda" {
7878
| Name | Type |
7979
|------|------|
8080
| [aws_api_gateway_integration.lambda_integration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_integration) | resource |
81+
| [aws_cloudwatch_log_group.lambda_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |
8182
| [aws_iam_policy.combined_policies](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
8283
| [aws_iam_role.lambda_execution_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
84+
| [aws_iam_role_policy.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
8385
| [aws_iam_role_policy_attachment.default_policies](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
8486
| [aws_iam_role_policy_attachment.lambda_execution_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
87+
| [aws_kms_alias.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_alias) | resource |
88+
| [aws_kms_key.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key) | resource |
8589
| [aws_lambda_function.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |
8690
| [aws_lambda_permission.lambda_permission](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
8791
| [archive_file.lambda](https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file) | data source |
92+
| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
93+
| [aws_iam_policy_document.admin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
8894
| [aws_iam_policy_document.assume_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
95+
| [aws_iam_policy_document.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
8996
| [aws_iam_policy_document.merged_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
9097
## Inputs
9198

9299
| Name | Description | Type | Default | Required |
93100
|------|-------------|------|---------|:--------:|
94101
| <a name="input_api_execution_arn"></a> [api\_execution\_arn](#input\_api\_execution\_arn) | Execution ARN of the API Gateway used for granting invoke permissions. | `string` | `""` | no |
102+
| <a name="input_default_lambda_layers"></a> [default\_lambda\_layers](#input\_default\_lambda\_layers) | n/a | `list(string)` | <pre>[<br/> "arn:aws:lambda:eu-west-2:282860088358:layer:AWS-AppConfig-Extension:120"<br/>]</pre> | no |
95103
| <a name="input_default_policies"></a> [default\_policies](#input\_default\_policies) | List of default IAM policy ARNs to attach to the Lambda execution role. | `list(string)` | <pre>[<br/> "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole",<br/> "arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy"<br/>]</pre> | no |
104+
| <a name="input_extra_lambda_layers"></a> [extra\_lambda\_layers](#input\_extra\_lambda\_layers) | n/a | `list(string)` | <pre>[<br/> "arn:aws:lambda:eu-west-2:580247275435:layer:LambdaInsightsExtension:53"<br/>]</pre> | no |
96105
| <a name="input_handler"></a> [handler](#input\_handler) | Function entry point in the codebase (e.g., 'index.handler'). | `string` | n/a | yes |
97106
| <a name="input_http_methods"></a> [http\_methods](#input\_http\_methods) | List of HTTP methods to integrate with the Lambda function. | `list(string)` | `[]` | no |
98107
| <a name="input_iam_role_policy_documents"></a> [iam\_role\_policy\_documents](#input\_iam\_role\_policy\_documents) | List of IAM policy document ARNs to attach to the Lambda execution role. | `list(string)` | `[]` | no |
99108
| <a name="input_is_gateway_integration_needed"></a> [is\_gateway\_integration\_needed](#input\_is\_gateway\_integration\_needed) | Indicate whether the lambda need an aws\_api\_gateway\_integration resource block | `bool` | `true` | no |
100109
| <a name="input_is_invoked_from_gateway"></a> [is\_invoked\_from\_gateway](#input\_is\_invoked\_from\_gateway) | Indicate whether the lambda is supposed to be invoked by API gateway. Should be true for authoriser lambda. | `bool` | `true` | no |
110+
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | Lambda KMS time to deletion in days | `number` | `30` | no |
101111
| <a name="input_lambda_environment_variables"></a> [lambda\_environment\_variables](#input\_lambda\_environment\_variables) | Map of environment variables to set in the Lambda function. | `map(string)` | `{}` | no |
102112
| <a name="input_lambda_ephemeral_storage"></a> [lambda\_ephemeral\_storage](#input\_lambda\_ephemeral\_storage) | Amount of ephemeral storage (in MB) to allocate to the Lambda function. | `number` | `512` | no |
103113
| <a name="input_lambda_timeout"></a> [lambda\_timeout](#input\_lambda\_timeout) | Function timeout in seconds. | `number` | `30` | no |
104114
| <a name="input_memory_size"></a> [memory\_size](#input\_memory\_size) | Amount of memory to allocate to the Lambda function (in MB). | `number` | `512` | no |
105115
| <a name="input_name"></a> [name](#input\_name) | Unique name for the Lambda function. | `string` | n/a | yes |
116+
| <a name="input_persistent_workspaces"></a> [persistent\_workspaces](#input\_persistent\_workspaces) | A list of workspaces that require persistent logs | `list(string)` | <pre>[<br/> "ndr-dev",<br/> "ndr-test",<br/> "pre-prod",<br/> "prod"<br/>]</pre> | no |
106117
| <a name="input_reserved_concurrent_executions"></a> [reserved\_concurrent\_executions](#input\_reserved\_concurrent\_executions) | The number of concurrent execution allowed for lambda. A value of 0 will stop lambda from running, and -1 removes any concurrency limitations. Default to -1. | `number` | `-1` | no |
107118
| <a name="input_resource_id"></a> [resource\_id](#input\_resource\_id) | ID of the API Gateway resource (path) to attach Lambda to. | `string` | `""` | no |
108119
| <a name="input_rest_api_id"></a> [rest\_api\_id](#input\_rest\_api\_id) | ID of the associated API Gateway REST API. | `string` | `""` | no |

infrastructure/modules/lambda/main.tf

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ resource "aws_lambda_function" "lambda" {
1010
timeout = var.lambda_timeout
1111
memory_size = var.memory_size
1212
reserved_concurrent_executions = var.reserved_concurrent_executions
13-
kms_key_arn = aws_kms_key.lambda_kms_key.arn
13+
kms_key_arn = aws_kms_key.lambda.arn
1414
ephemeral_storage {
1515
size = var.lambda_ephemeral_storage
1616
}
@@ -35,7 +35,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
3535

3636
data "aws_caller_identity" "current" {}
3737

38-
data "aws_iam_policy_document" "lambda_kms_policy" {
38+
data "aws_iam_policy_document" "admin" {
3939
statement {
4040
sid = "AllowRootAccountAccess"
4141
effect = "Allow"
@@ -75,7 +75,7 @@ data "aws_iam_policy_document" "lambda_kms_policy" {
7575
}
7676
}
7777

78-
data "aws_iam_policy_document" "lambda_kms_usage" {
78+
data "aws_iam_policy_document" "lambda" {
7979
statement {
8080
effect = "Allow"
8181
actions = [
@@ -84,27 +84,27 @@ data "aws_iam_policy_document" "lambda_kms_usage" {
8484
"kms:GenerateDataKey"
8585
]
8686
resources = [
87-
aws_kms_key.lambda_kms_key.arn
87+
aws_kms_key.lambda.arn
8888
]
8989
}
9090
}
9191

92-
resource "aws_iam_role_policy" "lambda_kms_usage" {
92+
resource "aws_iam_role_policy" "lambda" {
9393
name = "lambda_kms_usage"
9494
role = aws_iam_role.lambda_execution_role.id
95-
policy = data.aws_iam_policy_document.lambda_kms_usage.json
95+
policy = data.aws_iam_policy_document.lambda.json
9696
}
9797

98-
resource "aws_kms_key" "lambda_kms_key" {
98+
resource "aws_kms_key" "lambda" {
9999
deletion_window_in_days = var.kms_deletion_window
100100
description = "Custom KMS Key for ${terraform.workspace}_${var.name}"
101101
enable_key_rotation = true
102-
policy = data.aws_iam_policy_document.lambda_kms_policy.json
102+
policy = data.aws_iam_policy_document.admin.json
103103
}
104104

105-
resource "aws_kms_alias" "lambda_kms_key_alias" {
105+
resource "aws_kms_alias" "lambda" {
106106
name = "alias/${terraform.workspace}_${var.name}"
107-
target_key_id = aws_kms_key.lambda_kms_key.key_id
107+
target_key_id = aws_kms_key.lambda.key_id
108108
}
109109

110110
resource "aws_api_gateway_integration" "lambda_integration" {
@@ -146,7 +146,7 @@ resource "aws_iam_role" "lambda_execution_role" {
146146
}
147147

148148
data "aws_iam_policy_document" "merged_policy" {
149-
source_policy_documents = concat(var.iam_role_policy_documents, [data.aws_iam_policy_document.lambda_kms_usage.json])
149+
source_policy_documents = concat(var.iam_role_policy_documents, [data.aws_iam_policy_document.lambda.json])
150150
}
151151

152152
resource "aws_iam_policy" "combined_policies" {

0 commit comments

Comments
 (0)