Skip to content

Commit c5d54a4

Browse files
Merge branch 'main' into PRMP-538
2 parents d9122a9 + 1156c3f commit c5d54a4

32 files changed

+725
-88
lines changed

.github/workflows/automated-deploy-dev.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- name: Run Terraform Plan
6262
id: plan
6363
run: |
64-
terraform plan -input=false -no-color -var-file="${{vars.TF_VARS_FILE}}" -out tf.plan > plan_output.txt 2>&1
64+
terraform plan -lock-timeout=20m -input=false -no-color -var-file="${{vars.TF_VARS_FILE}}" -out tf.plan > plan_output.txt 2>&1
6565
terraform show -no-color tf.plan > tfplan.txt 2>&1
6666
6767
# Mask PEM certificates (BEGIN...END CERTIFICATE)
@@ -202,7 +202,7 @@ jobs:
202202
# Terraform apply will only occur on a push (merge request completion)
203203
- name: Run Terraform Apply
204204
if: github.ref == 'refs/heads/main'
205-
run: terraform apply -auto-approve -input=false tf.plan
205+
run: terraform apply -lock-timeout=20m -auto-approve -input=false tf.plan
206206
working-directory: ./infrastructure
207207

208208
deploy_lambdas:

backup-vault/teraform/README.md

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,23 @@
1-
## Requirements
1+
# AWS Backup Vault Terraform Configuration
22

3-
| Name | Version |
4-
|------|---------|
5-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0 |
3+
To create or update the AWS config, Terraform must be run from a local machine, as there is currently no GitHub Action set up for this.
64

7-
## Providers
5+
The following commands should be used as a suggestion for the process:
86

9-
| Name | Version |
10-
|------|---------|
11-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.0 |
7+
```shell
8+
aws sso login --sso-session PRM
129

13-
## Modules
10+
export AWS_PROFILE=NDR-Pre-Prod-Backup-RW
11+
terraform init -backend-config=pre-prod.s3.tfbackend -upgrade -reconfigure
12+
terraform workspace list
13+
terraform workspace select pre-prod
14+
terraform plan
15+
terraform apply
1416

15-
No modules.
16-
17-
## Resources
18-
19-
| Name | Type |
20-
|------|------|
21-
| [aws_backup_vault.backup_vault](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/backup_vault) | resource |
22-
| [aws_backup_vault_policy.backup_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/backup_vault_policy) | resource |
23-
| [aws_kms_alias.encryption_key_alias](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_alias) | resource |
24-
| [aws_kms_key.encryption_key](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key) | resource |
25-
| [aws_ssm_parameter.backup-source-account](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ssm_parameter) | data source |
26-
27-
## Inputs
28-
29-
No inputs.
30-
31-
## Outputs
32-
33-
No outputs.
17+
export AWS_PROFILE=NDR-Prod-Backup-RW
18+
terraform init -backend-config=prod.s3.tfbackend -upgrade -reconfigure
19+
terraform workspace list
20+
terraform workspace select prod-backup
21+
terraform plan
22+
terraform apply
23+
```

backup-vault/teraform/backup-vault.tf

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ resource "aws_kms_alias" "encryption_key_alias" {
1212
target_key_id = aws_kms_key.encryption_key.id
1313
}
1414

15-
1615
resource "aws_backup_vault_policy" "backup_policy" {
1716
backup_vault_name = aws_backup_vault.backup_vault.name
1817

@@ -21,10 +20,10 @@ resource "aws_backup_vault_policy" "backup_policy" {
2120
"Version" : "2012-10-17",
2221
"Statement" : [
2322
{
24-
"Sid" : "Allow ${data.aws_ssm_parameter.backup-source-account.value} to copy into pre-prod_backup_vault",
23+
"Sid" : "Allow ${data.aws_ssm_parameter.backup_source_account.value} to copy into pre-prod_backup_vault",
2524
"Effect" : "Allow",
2625
"Principal" : {
27-
"AWS" : "arn:aws:iam::${data.aws_ssm_parameter.backup-source-account.value}:root"
26+
"AWS" : "arn:aws:iam::${data.aws_ssm_parameter.backup_source_account.value}:root"
2827
},
2928
"Action" : "backup:CopyIntoBackupVault",
3029
"Resource" : "*"
@@ -34,7 +33,6 @@ resource "aws_backup_vault_policy" "backup_policy" {
3433
)
3534
}
3635

37-
data "aws_ssm_parameter" "backup-source-account" {
36+
data "aws_ssm_parameter" "backup_source_account" {
3837
name = "backup-source-account"
3938
}
40-

backup-vault/teraform/iam.tf

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
resource "aws_iam_policy" "administrator_permission_restrictions" {
2+
name = "AdministratorRestriction"
3+
policy = jsonencode({
4+
Version = "2012-10-17",
5+
Statement = [
6+
{
7+
Effect = "Deny",
8+
Action = [
9+
"s3:DeleteObject",
10+
"s3:DeleteObjectVersion",
11+
"s3:PutLifecycleConfiguration",
12+
"s3:PutObject",
13+
"s3:RestoreObject"
14+
],
15+
Resource = [
16+
"arn:aws:s3:::*/*.tfstate"
17+
]
18+
}
19+
]
20+
})
21+
tags = {
22+
Name = "AdministratorRestriction"
23+
Workspace = "core"
24+
}
25+
}

backup-vault/teraform/main.tf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@ terraform {
22
required_providers {
33
aws = {
44
source = "hashicorp/aws"
5-
version = ">= 4.0"
5+
version = "~> 6.0"
66
}
77
}
8+
89
backend "s3" {
910
use_lockfile = true
1011
region = "eu-west-2"
1112
key = "ndr/terraform.tfstate"
1213
encrypt = true
1314
}
1415
}
16+
1517
provider "aws" {
1618
region = "eu-west-2"
1719
}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
bucket = "ndr-backup-terraform-state"
2-
dynamodb_table = "ndr-backup-terraform-lock"
32
region = "eu-west-2"
43
key = "backup/terraform.tfstate"
54
encrypt = true
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
bucket = "ndr-backup-terraform-state"
2-
dynamodb_table = "ndr-backup-terraform-lock"
1+
bucket = "ndr-prod-backup-terraform-state"
32
region = "eu-west-2"
4-
key = "backup/terraform.tfstate"
3+
key = "ndr/terraform.tfstate"
54
encrypt = true

infrastructure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
| <a name="module_create-token-lambda"></a> [create-token-lambda](#module_create-token-lambda) | ./modules/lambda | n/a |
5252
| <a name="module_create_doc_alarm"></a> [create_doc_alarm](#module_create_doc_alarm) | ./modules/lambda_alarms | n/a |
5353
| <a name="module_create_doc_alarm_topic"></a> [create_doc_alarm_topic](#module_create_doc_alarm_topic) | ./modules/sns | n/a |
54-
| <a name="module_create_document_reference_gateway"></a> [create_document_reference_gateway](#module_create_document_reference_gateway) | ./modules/gateway | n/a |
54+
| <a name="module_document_reference_gateway"></a> [document_reference_gateway](#module_document_reference_gateway) | ./modules/gateway | n/a |
5555
| <a name="module_create_token-alarm"></a> [create_token-alarm](#module_create_token-alarm) | ./modules/lambda_alarms | n/a |
5656
| <a name="module_create_token-alarm_topic"></a> [create_token-alarm_topic](#module_create_token-alarm_topic) | ./modules/sns | n/a |
5757
| <a name="module_data-collection-alarm"></a> [data-collection-alarm](#module_data-collection-alarm) | ./modules/lambda_alarms | n/a |

infrastructure/api.tf

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ resource "aws_api_gateway_base_path_mapping" "api_mapping" {
2323
stage_name = var.environment
2424
domain_name = local.api_gateway_full_domain_name
2525

26-
depends_on = [aws_api_gateway_deployment.ndr_api_deploy, aws_api_gateway_rest_api.ndr_doc_store_api]
26+
depends_on = [
27+
aws_api_gateway_deployment.ndr_api_deploy,
28+
aws_api_gateway_rest_api.ndr_doc_store_api,
29+
aws_api_gateway_stage.ndr_api
30+
]
2731
}
2832

2933
resource "aws_api_gateway_resource" "auth_resource" {
@@ -45,13 +49,13 @@ resource "aws_api_gateway_deployment" "ndr_api_deploy" {
4549
module.back-channel-logout-gateway,
4650
module.back_channel_logout_lambda,
4751
module.create-doc-ref-lambda,
48-
module.create_document_reference_gateway,
4952
module.create-token-gateway,
5053
module.create-token-lambda,
5154
module.delete-doc-ref-gateway,
5255
module.delete-doc-ref-lambda,
5356
module.document-manifest-job-gateway,
5457
module.document-manifest-job-lambda,
58+
module.document_reference_gateway,
5559
module.feature-flags-gateway,
5660
module.feature-flags-lambda,
5761
module.fhir_document_reference_gateway,
@@ -68,6 +72,7 @@ resource "aws_api_gateway_deployment" "ndr_api_deploy" {
6872
module.search-patient-details-lambda,
6973
module.send-feedback-gateway,
7074
module.send-feedback-lambda,
75+
module.update_doc_ref_lambda,
7176
module.update-upload-state-gateway,
7277
module.update-upload-state-lambda,
7378
module.document-status-check-gateway,

infrastructure/api_mtls.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ resource "aws_api_gateway_base_path_mapping" "api_mapping_mtls" {
3535

3636
depends_on = [
3737
aws_api_gateway_deployment.ndr_api_deploy_mtls,
38-
aws_api_gateway_rest_api.ndr_doc_store_api_mtls
38+
aws_api_gateway_rest_api.ndr_doc_store_api_mtls,
39+
aws_api_gateway_stage.ndr_api_mtls
3940
]
4041
}
4142

0 commit comments

Comments
 (0)