Skip to content

Commit c9aa7e9

Browse files
committed
refactor: randomly generate cloudfront origin secret from openssl
1 parent 79df43d commit c9aa7e9

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ docs_s3_bucket = "$(s3_bucket_prefix)-docs"
3232

3333

3434
GIT_HASH := $(shell git rev-parse --short HEAD)
35+
ORIGIN_SECRET := $(shell openssl rand -hex 32)
3536

3637
.PHONY: clean
3738

@@ -90,7 +91,7 @@ postdeploy:
9091

9192
deploy_prod: check_account_prod
9293
@echo "Deploying CloudFormation stack..."
93-
sam deploy $(common_params) --parameter-overrides $(run_env)=prod $(set_application_prefix)=$(application_key) $(set_application_name)="$(application_name)" S3BucketPrefix="$(s3_bucket_prefix)"
94+
@sam deploy $(common_params) --parameter-overrides $(run_env)=prod $(set_application_prefix)=$(application_key) $(set_application_name)="$(application_name)" S3BucketPrefix="$(s3_bucket_prefix)" CloudfrontOriginSecret="$(ORIGIN_SECRET)"
9495
@echo "Deploying Terraform..."
9596
$(eval MAIN_DISTRIBUTION_ID := $(shell aws cloudformation describe-stacks --stack-name $(application_key) --query "Stacks[0].Outputs[?OutputKey=='CloudfrontDistributionId'].OutputValue" --output text))
9697
terraform -chdir=terraform/envs/prod init -lockfile=readonly
@@ -99,7 +100,7 @@ deploy_prod: check_account_prod
99100

100101
deploy_dev: check_account_dev
101102
@echo "Deploying CloudFormation stack..."
102-
sam deploy $(common_params) --parameter-overrides $(run_env)=dev $(set_application_prefix)=$(application_key) $(set_application_name)="$(application_name)" S3BucketPrefix="$(s3_bucket_prefix)"
103+
@sam deploy $(common_params) --parameter-overrides $(run_env)=dev $(set_application_prefix)=$(application_key) $(set_application_name)="$(application_name)" S3BucketPrefix="$(s3_bucket_prefix)" CloudfrontOriginSecret="$(ORIGIN_SECRET)"
103104
@echo "Deploying Terraform..."
104105
$(eval MAIN_DISTRIBUTION_ID := $(shell aws cloudformation describe-stacks --stack-name $(application_key) --query "Stacks[0].Outputs[?OutputKey=='CloudfrontDistributionId'].OutputValue" --output text))
105106
terraform -chdir=terraform/envs/qa init -lockfile=readonly

cloudformation/main.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ Parameters:
2525
S3BucketPrefix:
2626
Description: S3 bucket prefix which will ensure global uniqueness
2727
Type: String
28+
CloudfrontOriginSecret:
29+
NoEcho: true
30+
Description: Value for X-Origin-Verify passed to Lambda URL from cloudfront
31+
Type: String
2832

2933
Conditions:
3034
IsDev: !Equals [!Ref RunEnvironment, "dev"]
@@ -220,7 +224,7 @@ Resources:
220224
EntraRoleArn: !GetAtt AppSecurityRoles.Outputs.EntraFunctionRoleArn
221225
LinkryKvArn: !GetAtt LinkryRecordsCloudfrontStore.Arn
222226
AWS_CRT_NODEJS_BINARY_RELATIVE_PATH: node_modules/aws-crt/dist/bin/linux-arm64-glibc/aws-crt-nodejs.node
223-
ORIGIN_VERIFY_KEY: !Join ['-', ['secret', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]]
227+
ORIGIN_VERIFY_KEY: !Ref CloudfrontOriginSecret
224228
NODE_OPTIONS: --enable-source-maps
225229
VpcConfig:
226230
Ipv6AllowedForDualStack: !If [ShouldAttachVpc, True, !Ref AWS::NoValue]
@@ -340,7 +344,7 @@ Resources:
340344
OriginProtocolPolicy: https-only
341345
OriginCustomHeaders:
342346
- HeaderName: X-Origin-Verify
343-
HeaderValue: !Join ['-', ['secret', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]]
347+
HeaderValue: !Ref CloudfrontOriginSecret
344348
Enabled: true
345349
DefaultRootObject: index.html
346350
Aliases:
@@ -545,7 +549,7 @@ Resources:
545549
OriginProtocolPolicy: https-only
546550
OriginCustomHeaders:
547551
- HeaderName: X-Origin-Verify
548-
HeaderValue: !Join ['-', ['secret', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]]
552+
HeaderValue: !Ref CloudfrontOriginSecret
549553
Enabled: true
550554
Aliases:
551555
- !Join

0 commit comments

Comments
 (0)