File tree Expand file tree Collapse file tree 12 files changed +81
-13
lines changed
ecosystem/vault-lambda-extension Expand file tree Collapse file tree 12 files changed +81
-13
lines changed Original file line number Diff line number Diff line change @@ -18,4 +18,4 @@ FROM public.ecr.aws/lambda/provided:al2
18
18
COPY --from=build /go/src/demo-function/bin/main /main
19
19
COPY extensions/vault-lambda-extension /opt/extensions/vault-lambda-extension
20
20
21
- ENTRYPOINT [ "/main" ]
21
+ ENTRYPOINT [ "/main" ]
Original file line number Diff line number Diff line change 1
1
# Vault Lambda Extension
2
2
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.
Original file line number Diff line number Diff line change 1
- #! /bin/sh
1
+ #! /usr/ bin/env bash
2
2
3
3
set -euo pipefail
4
4
17
17
echo " Making new zip..."
18
18
zip -j -D -r demo-function.zip bin/bootstrap bin/main
19
19
20
- popd # ${DIR}
20
+ popd # ${DIR}
Original file line number Diff line number Diff line change @@ -29,4 +29,4 @@ The lambda function is ready to run.
29
29
| base64 --decode
30
30
31
31
EOF
32
- }
32
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change @@ -31,4 +31,4 @@ The lambda function is ready to run.
31
31
| base64 --decode
32
32
33
33
EOF
34
- }
34
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change @@ -18,4 +18,3 @@ You can SSH into the Vault EC2 instance using private.key:
18
18
19
19
EOF
20
20
}
21
-
Original file line number Diff line number Diff line change @@ -7,9 +7,9 @@ resource "aws_db_instance" "main" {
7
7
allocated_storage = 20
8
8
storage_type = " gp2"
9
9
engine = " postgres"
10
- engine_version = " 12.3 "
10
+ engine_version = " 12.10 "
11
11
instance_class = var. db_instance_type
12
- name = " lambdadb"
12
+ db_name = " lambdadb"
13
13
username = " vaultadmin"
14
14
password = random_password. password . result
15
15
vpc_security_group_ids = [aws_security_group . rds . id ]
Original file line number Diff line number Diff line change @@ -62,4 +62,3 @@ resource "aws_security_group" "rds" {
62
62
cidr_blocks = [" 0.0.0.0/0" ]
63
63
}
64
64
}
65
-
Original file line number Diff line number Diff line change @@ -7,8 +7,8 @@ aws_region = "us-east-1"
7
7
environment_name = "vault-lambda-extension-demo"
8
8
9
9
# 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"
12
12
13
13
# Instance size
14
14
# default: 't2.micro'
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ variable "environment_name" {
10
10
11
11
# URL for Vault OSS binary
12
12
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"
14
14
}
15
15
16
16
# Instance size
You can’t perform that action at this time.
0 commit comments