Skip to content

Commit 571b5c2

Browse files
authored
Vault Lambda Extension updates (hashicorp#380)
* Vault Lambda Extension updates - Update Vault version - Update PostgreSQL version - Resolve a deprecation notice from Terraform - Add some lambda with caching example configurations * Cached versions
1 parent 8b0e77c commit 571b5c2

12 files changed

+81
-13
lines changed

ecosystem/vault-lambda-extension/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ FROM public.ecr.aws/lambda/provided:al2
1818
COPY --from=build /go/src/demo-function/bin/main /main
1919
COPY extensions/vault-lambda-extension /opt/extensions/vault-lambda-extension
2020

21-
ENTRYPOINT [ "/main" ]
21+
ENTRYPOINT [ "/main" ]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Vault Lambda Extension
22

3-
These assets are provided to perform the tasks described in the [Vault AWS Lambda Extension](https://learn.hashicorp.com/tutorials/vault/aws-lambda) tutorial.
3+
These assets are provided to perform the tasks described in the [Vault AWS Lambda Extension](https://learn.hashicorp.com/tutorials/vault/aws-lambda) tutorial.

ecosystem/vault-lambda-extension/build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/sh
1+
#!/usr/bin/env bash
22

33
set -euo pipefail
44

@@ -17,4 +17,4 @@ echo
1717
echo "Making new zip..."
1818
zip -j -D -r demo-function.zip bin/bootstrap bin/main
1919

20-
popd # ${DIR}
20+
popd # ${DIR}

ecosystem/vault-lambda-extension/lambda-as_a_container.tf.disabled

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ The lambda function is ready to run.
2929
| base64 --decode
3030

3131
EOF
32-
}
32+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
resource "aws_lambda_function" "function" {
2+
function_name = "${var.environment_name}-function"
3+
description = "Demo Vault AWS Lambda extension in container"
4+
role = aws_iam_role.lambda.arn
5+
image_uri = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${var.aws_region}.amazonaws.com/demo-function:latest"
6+
package_type = "Image"
7+
8+
environment {
9+
variables = {
10+
VAULT_ADDR = "http://${aws_instance.vault-server.public_ip}:8200",
11+
VAULT_AUTH_ROLE = aws_iam_role.lambda.name,
12+
VAULT_AUTH_PROVIDER = "aws",
13+
VAULT_SECRET_PATH_DB = "database/creds/lambda-function",
14+
VAULT_SECRET_FILE_DB = "/tmp/vault_secret.json",
15+
VAULT_DEFAULT_CACHE_ENABLE = true,
16+
VAULT_DEFAULT_CACHE_TTL = "5m",
17+
DATABASE_URL = aws_db_instance.main.address
18+
}
19+
}
20+
}
21+
22+
output "lambda" {
23+
value = <<EOF
24+
25+
The lambda function is ready to run.
26+
27+
aws lambda invoke --function-name ${aws_lambda_function.function.function_name} /dev/null \
28+
--log-type Tail \
29+
--region ${var.aws_region} \
30+
| jq -r '.LogResult' \
31+
| base64 --decode
32+
33+
EOF
34+
}

ecosystem/vault-lambda-extension/lambda-as_an_archive.tf.disabled

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ The lambda function is ready to run.
3131
| base64 --decode
3232

3333
EOF
34-
}
34+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
resource "aws_lambda_function" "function" {
2+
function_name = "${var.environment_name}-function"
3+
description = "Demo Vault AWS Lambda extension"
4+
role = aws_iam_role.lambda.arn
5+
filename = "./demo-function/demo-function.zip"
6+
handler = "main"
7+
runtime = "provided.al2"
8+
layers = ["arn:aws:lambda:${var.aws_region}:634166935893:layer:vault-lambda-extension:6"]
9+
10+
environment {
11+
variables = {
12+
VAULT_ADDR = "http://${aws_instance.vault-server.public_ip}:8200",
13+
VAULT_AUTH_ROLE = aws_iam_role.lambda.name,
14+
VAULT_AUTH_PROVIDER = "aws",
15+
VAULT_SECRET_PATH_DB = "database/creds/lambda-function",
16+
VAULT_SECRET_FILE_DB = "/tmp/vault_secret.json",
17+
VAULT_DEFAULT_CACHE_ENABLE = true,
18+
VAULT_DEFAULT_CACHE_TTL = "5m",
19+
DATABASE_URL = aws_db_instance.main.address
20+
}
21+
}
22+
}
23+
24+
output "lambda" {
25+
value = <<EOF
26+
27+
The lambda function is ready to run.
28+
29+
aws lambda invoke --function-name ${aws_lambda_function.function.function_name} /dev/null \
30+
--log-type Tail \
31+
--region ${var.aws_region} \
32+
| jq -r '.LogResult' \
33+
| base64 --decode
34+
35+
EOF
36+
}

ecosystem/vault-lambda-extension/outputs.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,3 @@ You can SSH into the Vault EC2 instance using private.key:
1818
1919
EOF
2020
}
21-

ecosystem/vault-lambda-extension/rds.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ resource "aws_db_instance" "main" {
77
allocated_storage = 20
88
storage_type = "gp2"
99
engine = "postgres"
10-
engine_version = "12.3"
10+
engine_version = "12.10"
1111
instance_class = var.db_instance_type
12-
name = "lambdadb"
12+
db_name = "lambdadb"
1313
username = "vaultadmin"
1414
password = random_password.password.result
1515
vpc_security_group_ids = [aws_security_group.rds.id]

ecosystem/vault-lambda-extension/security-groups.tf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,3 @@ resource "aws_security_group" "rds" {
6262
cidr_blocks = ["0.0.0.0/0"]
6363
}
6464
}
65-

ecosystem/vault-lambda-extension/terraform.tfvars.example

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ aws_region = "us-east-1"
77
environment_name = "vault-lambda-extension-demo"
88

99
# URL for Vault OSS binary
10-
# default: Vault 1.7.2
11-
vault_zip_file = "https://releases.hashicorp.com/vault/1.7.2/vault_1.7.2_linux_amd64.zip"
10+
# default: Vault 1.10.0
11+
vault_zip_file = "https://releases.hashicorp.com/vault/1.10.0/vault_1.10.0_linux_amd64.zip"
1212

1313
# Instance size
1414
# default: 't2.micro'

ecosystem/vault-lambda-extension/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ variable "environment_name" {
1010

1111
# URL for Vault OSS binary
1212
variable "vault_zip_file" {
13-
default = "https://releases.hashicorp.com/vault/1.6.0/vault_1.6.0_linux_amd64.zip"
13+
default = "https://releases.hashicorp.com/vault/1.10.0/vault_1.10.0_linux_amd64.zip"
1414
}
1515

1616
# Instance size

0 commit comments

Comments
 (0)