From b88933d38daf54714611c2d849236049092ad5d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Sun, 15 May 2022 16:49:04 +0200
Subject: [PATCH] move more secrets to sops and closer to terraform

---
 .sops.yaml                   |   7 ++++++
 secrets/cloudflare-api-token | Bin 63 -> 0 bytes
 secrets/hydra-password       | Bin 48 -> 0 bytes
 secrets/terraformrc          | Bin 160 -> 0 bytes
 shell.nix                    |   9 -------
 terraform/.envrc             |   5 ++++
 terraform/secrets.yaml       |  47 +++++++++++++++++++++++++++++++++++
 7 files changed, 59 insertions(+), 9 deletions(-)
 delete mode 100644 secrets/cloudflare-api-token
 delete mode 100644 secrets/hydra-password
 delete mode 100644 secrets/terraformrc
 create mode 100644 terraform/.envrc
 create mode 100644 terraform/secrets.yaml

diff --git a/.sops.yaml b/.sops.yaml
index 0622b71..142169d 100644
--- a/.sops.yaml
+++ b/.sops.yaml
@@ -9,6 +9,13 @@ keys:
 # scan new hosts like this:
 # $ nix-shell -p ssh-to-age --run 'ssh-keyscan buildXX.nix-community.org | ssh-to-age'
 creation_rules:
+  - path_regex: terraform/secrets.yaml$
+    key_groups:
+    - age:
+      - *mic92
+      - *ryantm
+      pgp:
+      - *zimbatm
   - path_regex: build01/[^/]+\.yaml$
     key_groups:
     - age:
diff --git a/secrets/cloudflare-api-token b/secrets/cloudflare-api-token
deleted file mode 100644
index 08e732f4bc0e26910e3d9bbb0451b7600fc47427..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 63
zcmV-F0KoqMM@dveQdv+`02TBB<2O9<cA^8DM@Q|Eb*L35n&1~jb(Z>;NCx2iCHiu8
V_9URcAwH*>*>8M}KqXD(%+o;l9U}k$

diff --git a/secrets/hydra-password b/secrets/hydra-password
deleted file mode 100644
index affd737ff22cfff9e11c8a5fba96fe43cc39cad6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 48
zcmV-00MGvbM@dveQdv+`0NG*B^K%+9Y5SA(m#<YP7im;#Rl84RlZeu#Zr(AEODI><
G=&3314i(k_

diff --git a/secrets/terraformrc b/secrets/terraformrc
deleted file mode 100644
index 42216ea0ede61b3188c8cc6ca26a79a4025860c1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 160
zcmV;R0AK$AM@dveQdv+`0B8t<?d`mO^=wzyosTaQv6@{2bhgb??qqw;g^mbLDf*ME
zr0$k-!dj~&$-l(8!ck@QL+%EY%~EacIRM;?hKb+==basS%4>sg#L*f5)4ky0Kwa=T
zkdC4vz~_%AbRJ=A1Coa|{D(fvk6(WD(TtOXry-@19CT;kzYY>QiyGxBA_rhE$|GSE
O3qPBTmqPKwnIQ-;TTXTW

diff --git a/shell.nix b/shell.nix
index 9fb2ee2..f7f05d4 100644
--- a/shell.nix
+++ b/shell.nix
@@ -25,13 +25,4 @@ mkShell {
 
     sops-import-keys-hook
   ];
-
-  # terraform cloud without the remote execution part
-  TF_FORCE_LOCAL_BACKEND = "1";
-  TF_CLI_CONFIG_FILE = toString ./secrets/terraformrc;
-
-  shellHook = ''
-    export CLOUDFLARE_API_TOKEN=$(< ./secrets/cloudflare-api-token)
-    export HYDRA_PASSWORD=$(< ./secrets/hydra-password)
-  '';
 }
diff --git a/terraform/.envrc b/terraform/.envrc
new file mode 100644
index 0000000..074a87c
--- /dev/null
+++ b/terraform/.envrc
@@ -0,0 +1,5 @@
+source_up
+
+# terraform cloud without the remote execution part
+export TF_FORCE_LOCAL_BACKEND="1";
+eval "$("$direnv" dotenv bash <(sops -d --output-type dotenv secrets.yaml))"
diff --git a/terraform/secrets.yaml b/terraform/secrets.yaml
new file mode 100644
index 0000000..97a8fc5
--- /dev/null
+++ b/terraform/secrets.yaml
@@ -0,0 +1,47 @@
+CLOUDFLARE_API_TOKEN: ENC[AES256_GCM,data:YDe1kQGBXn1DxIAInQkZociCuZhfVMQq7KaUeI4bkZDQhXlc38E67A==,iv:z/7VchAdz6zFMOmf67801V+yAU7vk4MyITVpvzIH4U8=,tag:krlU7ogI3E7UYxKdBuLO9w==,type:str]
+HYDRA_PASSWORD: ENC[AES256_GCM,data:7o8RuTWxYY7HNbMDgl9ur0j+ehI1bf0JSA==,iv:oZ6iHGGL4xbCC54kQ+mjpYYrm3Kn2PAlhDOyX8K6VCY=,tag:hXSlJSgjQymbsriHBiMy4w==,type:str]
+TF_TOKEN_app_terraform_io: ENC[AES256_GCM,data:htOyHZEIKxwPHzgpao+m3YIhLBM6ihZdq54YVlIw9bNHup7qrwgjJbT4nX6SIrFQvGQmqbVvhoFN6+UYyfcPlOWfdiIMUgZfa2F4zMceIsArNAcXMtv7Efzy,iv:RmDIHFfPJ5hHNDwvjdb7vxTnpE6JIlbLmbFzfGo+YAc=,tag:gzFY4HOGmuT5BrrFhzBtxw==,type:str]
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age:
+        - recipient: age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz
+          enc: |
+            -----BEGIN AGE ENCRYPTED FILE-----
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5blVRbEU4YXNtaWRZM0ll
+            YWNacFNCZ0xUdGRzY05LaTllTnd1WWN3YVVNCmw0L09uclI3QUxiNmFBZnlEUnZs
+            VnRFWnFNRmd4UTNlWnh4QmtDWU1LZG8KLS0tIG8zQ0lFK2dHTHBhRVBibloxKzZS
+            OHZHaWY2WnZrU3Z2eUVlOVZWWTRqclUKvCRIA85XJ72u6Q+yc8mcloBPj1lIbri0
+            kXQH/X1rvwaKNhSzNzoUH64PlNQdjelgcl2eUrlDiqfvnXcVLTyfQg==
+            -----END AGE ENCRYPTED FILE-----
+        - recipient: age1d87z3zqlv6ullnzyng8l722xzxwqr677csacf3zf3l28dau7avfs6pc7ay
+          enc: |
+            -----BEGIN AGE ENCRYPTED FILE-----
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqU3hNODVQMnJ4d0JDeEpQ
+            Qk1nMHd2M2IvQmplNDRnZy84VHZSb1hFV2hFCm8xRTlBRUlhMEllWUhZNHh3aVVH
+            d1BpZFFSN3BDWEVSeDE1Rk01cnVtZTgKLS0tIEF4ajVVbG1xalBqRmt2cTVRZVhJ
+            cDhJajhSUWNHcXhqMW1Gcnp5c2tlS2sKsoavYL6DTdjGHg74uPow54PdY/F2rROc
+            aEtMsirY3CgbsroyjWfaHd+LszUOrY2jaN7UcNiqE1cJo6pJLyXa9g==
+            -----END AGE ENCRYPTED FILE-----
+    lastmodified: "2022-05-15T15:01:13Z"
+    mac: ENC[AES256_GCM,data:R0A/XaigE7nSDfthabJ6TCUTxI28qeopF4GiAuwA21bgIFcEVWfR76w02alMYIp0gjWjL87KlNk+XiijeM054pDESMGGtbdVaYiQL0nqB8jH6Z8rreVt8pqnzC7I90EP0bWjQUPflCsDgMKrSOGdaLJRHGAOHnMLy8pvwaE+OXc=,iv:5Nr1OAHoTrbrQgXNg+4rVGQDdIsyGxc74TlYjsVPEBw=,tag:3LIWD8IGPY9dCdIk9BLZQg==,type:str]
+    pgp:
+        - created_at: "2022-05-15T14:38:07Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQEMA3tEuTsG48KkAQf/eIw45c+1Y0hRehsO/irm0zHcEtN+VFb1/n7yORw/cgl6
+            PByxkbHLtrKxOeMwAWS80DW+xPdigqDdZz7v+VPivDZJfBnvH9BVEgtljPd3JtR4
+            3b/IKgKvFQ9rSDpwAcfJJYP8zlWR7wIcpw/Eu+nt08/94guvsDzda7OUUo+5G2Fj
+            IyaLejv0bXJm4Kz48zk9dsLIGLJwOok/eyHsisTSmfKBuLC/axVEgIJqyRxte3LI
+            OqKo3HMqUqdVZ1Fcarr2A8WtCtHT5hEoxDh00uGULa7OQuAYerYoKFvet1C7BrLq
+            ioPAgI2F5Ggt3c60femP0eIENzPXQLarYh0ZPmwOudJeAQiLRC4xvCvVGnH/KO/k
+            cViuRUDKHrn3vyDzumAcdFHw8civlceSuln4LI/TCM7LkfQ4JFXLl6SpznUpUDC8
+            6iHtN1hg7DVefCJT4qj64o2qwtXIZ1JB7Y+ch4l7IA==
+            =kUzQ
+            -----END PGP MESSAGE-----
+          fp: 260353B993F8CE16752EF48C71BAF6D40C1D63D7
+    unencrypted_suffix: _unencrypted
+    version: 3.7.3