From 518f527936b18c1ad27a4bfe43dbd7e10b7890c8 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Thu, 19 Dec 2024 10:24:55 +1000 Subject: [PATCH] modules/shared/community-builder: move secrets to sops --- .sops.yaml | 10 +++ modules/secrets/community-builder.yaml | 75 +++++++++++++++++++ modules/shared/community-builder.nix | 8 +- .../community-builder-nix-access-tokens.age | 22 ------ secrets/secrets.nix | 8 -- sops.nix | 4 + 6 files changed, 94 insertions(+), 33 deletions(-) create mode 100644 modules/secrets/community-builder.yaml delete mode 100644 secrets/community-builder-nix-access-tokens.age diff --git a/.sops.yaml b/.sops.yaml index 5ed46f9..9551646 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -63,6 +63,16 @@ creation_rules: - age1jrh8yyq3swjru09s75s4mspu0mphh7h6z54z946raa9wx3pcdegq0x8t4h - age1m7xhem3qll35d539f364pm6txexvnp6k0tk34d8jxu4ry3pptv7smm0k5n path_regex: ^hosts/web02/secrets.yaml$ + - key_groups: + - age: + - age17jtyn2y4fpey6q7ers9gtnh4580xj89zdjuew9nqhxywmsaw94fs5udupc + - age1tc0yavxcq9hnf8rl5akv4twzaqkz5p9g80r2kf8cdv4urxgm4qnszccsy3 + - age1dzvjjum2p240qtdt2qcxpm7pl2s5w36mh4fs3q9dhhq0uezvdqaq9vrgfy + - age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz + - age1d87z3zqlv6ullnzyng8l722xzxwqr677csacf3zf3l28dau7avfs6pc7ay + - age1jrh8yyq3swjru09s75s4mspu0mphh7h6z54z946raa9wx3pcdegq0x8t4h + - age1m7xhem3qll35d539f364pm6txexvnp6k0tk34d8jxu4ry3pptv7smm0k5n + path_regex: ^modules/secrets/community-builder.yaml$ - key_groups: - age: - age1qg7tfjwzp6dxwkw9vej6knkhdvqre3fu7ryzsdk5ggvtdx854ycqevlwnq diff --git a/modules/secrets/community-builder.yaml b/modules/secrets/community-builder.yaml new file mode 100644 index 0000000..63f5bf9 --- /dev/null +++ b/modules/secrets/community-builder.yaml @@ -0,0 +1,75 @@ +community-builder-nix-access-tokens: ENC[AES256_GCM,data:AIMsjuuJ9hG2tDGyY+GjaOh654moBwgNkc/m+GYIm5+YPkyujQ7H/pIlgyTTqgDZniysE1QUm9xJBwwmbUdwghICPsje829sLjUGcZ+xqq7iNoP9/123+XD099pTU1eNKQhhWLpjvnHCRJxv7nbhFuE10OQdJ3SQLA==,iv:ARs8xyXXLFp7KAvHI7y70DINzdVtEtGW0k7DQTFb5EU=,tag:PROuSQIXPKod3ul+QCW5ww==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age17jtyn2y4fpey6q7ers9gtnh4580xj89zdjuew9nqhxywmsaw94fs5udupc + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBncEk5Z24zWERTMkxPcFhu + elVBcC9ibEJpcXJySHkyYVNJczhsZG1HcjA4ClI4WDIydVVmTzY1Q0FIcFlSdWk4 + RE42VCtrT2NTN0xZUGs4czhPei95TUEKLS0tIGovQ0M5clpnNmNaK254MnVpUFRE + cjZkOVNTQVhHQTdLVm9IbWd0QjJMNzgKdO4ceB3p617WxnKC8Y4KS3ymVBs9Tc+z + nMQ1L8tdjib83AR4v637qG59eWmDUZ1ACwARrSFM2KrNaJhhuHwjRw== + -----END AGE ENCRYPTED FILE----- + - recipient: age1tc0yavxcq9hnf8rl5akv4twzaqkz5p9g80r2kf8cdv4urxgm4qnszccsy3 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1MG1vNjJxK0MxL2tZREx4 + am5HcmpnbGZ2Zk9PdU1IdzBySEZuMnJHcTNvCmtuWlNHWE5LRGtVa3pIeTcwbmRE + VHJaN2VmZDFoWnlkYkc4WVVqWkVyWTQKLS0tIDMzUm9NT3FhTjE2ajJmbDBFU0RZ + MEJ4T2xsRkI4QTZQWlNRYWhCQXo4ZU0KQJGmC8wAYI09M8kpT6ID2EIYVj55RK6g + 4WRRCxVQZ900fXYVqslMOR+kr9T9lM5tVSNwXUFaJYktB1VuwcXewQ== + -----END AGE ENCRYPTED FILE----- + - recipient: age1dzvjjum2p240qtdt2qcxpm7pl2s5w36mh4fs3q9dhhq0uezvdqaq9vrgfy + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBReDREbmZVVGF1L0ZVc2JF + SXpVcGhjalNHc0hmVHl4Q2s3RnY2MkhqMlR3Ck5RaUxCN0xzcW0vYjZia1ZYUGJR + Vk1NandDRzVZSUx1dVVTa1N0UC9iLzgKLS0tIGJOR29MSW8zQ29YMUl5OStqck0w + MGMwbVN4WDNLanJlQTBDVExkdWh1REkKJ7IItvPrcoad6TpDm0/Ctg52lqDUJjRm + w2OyUFBaDddpb5wBt/7G16gSQJOvO36r3Vg4rWHxrJUp1Yr58UpCbg== + -----END AGE ENCRYPTED FILE----- + - recipient: age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTWHRJMFhTS0RUNVFwZ1RO + NlBXU0JFYzIrWkRVWE1RUHVtZ2NQd1ZzRlJnClZ0OFNLVmJPTDlwZVU0K1p1SVEx + aGJMYUo2MG9mZ1g1WmcwSm94blpSaU0KLS0tIGY0QVBEaWdTcFVSSytIZUJDaDY5 + SU8zTHBMMWFjZHJPa0YrNlBoOEg3R28KwUeRyXAjx6S4vHsF3iEtvYGwRJUd1gDm + olxKzPti2kHsnQJ3Sz7sKx0dFSFYIbusPUPX8OLZy2AFXM2U6JYFkA== + -----END AGE ENCRYPTED FILE----- + - recipient: age1d87z3zqlv6ullnzyng8l722xzxwqr677csacf3zf3l28dau7avfs6pc7ay + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxbmdhZGtpb1p3Misrdjh4 + aWhDRGRNc3BHZ1BVSjJrTUZHT2ZWdzh0WWlVCis2anZqc3BWbjNBT2RyRVlpZWc5 + ZHZlWGdmenhpeHBUOFhGV0xPTnNBaWMKLS0tIHhrQytZUlV2d2ZySHFESXZabnVV + dUgrZzdxZVdZTjArMDJQS3VzMUNWZTQKN0+wEGUEXfvnIvBP3Pj+isNYogWNcJOZ + 5hZdAa/j+qSFcqTodREllOJPWNz8Rm3NDa3z/vZxfZs1jkl5mW4ESg== + -----END AGE ENCRYPTED FILE----- + - recipient: age1jrh8yyq3swjru09s75s4mspu0mphh7h6z54z946raa9wx3pcdegq0x8t4h + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnaVQ3R2VtRXFRTXBJR2da + VUpBRkJsMGl5YWFldE85UEVwR2FnSDVxSWlFCjlFOGpTNGVTYzhSMFZLUGl0cTJn + d1ZCQ04yeVdXNU1jYlBrbGNiaUQyb3cKLS0tIFZmbndDNXM3ZnZXT2JpMWFXUE5t + UWV5T2NURnpxYzFhaVNUWU5qcll4V3cKJXb7PpLodu/dYHJt7eol/B+OTmrnpqDL + RMJTfmAWHuJk7VHoTinJV2MmYyU6KU6sq2rYxKv1+uc2S/UTQCR3Rw== + -----END AGE ENCRYPTED FILE----- + - recipient: age1m7xhem3qll35d539f364pm6txexvnp6k0tk34d8jxu4ry3pptv7smm0k5n + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiazdENTdRcDVzRmVhVHdn + Q1E2NGxIVnBuN2RCZmVwSnhnamVmMjhTOFJrCkFrVGdobEYvSGVIN2Y3NDVEd0tE + b0lCYTQ1TEhYMlJML212ZmxiR1hieFkKLS0tICt3RVBLRVd1UWpzQm1ib1BZRUd3 + OCtmdlhZRU1ZdkRJZVdKMm1mQjFwdFEKrErnw+YwpfG8ywSSaufWbq71Q3Kc+lz3 + Tmvpi4UcEUGJTj8ZHrixvxgvUvjCcgsYKcrbbPeKynFERk6HFDZPVg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-12-19T00:27:32Z" + mac: ENC[AES256_GCM,data:hKJQ1ef7CyPOD8xd/PCqOpGSBYpSpdW37P9nOXeKQEHE58vCaiQyy5RziUIGKUI7KIcxHwa1agn/yBdaWigSWihImH2WlRMQnQJAQoSV2Tc8sDhDFFckJEDqh0Pm0g+HcjL/59J4G4QJuRgVdxNBeRT472gQN/u/Lw1CE2s6ONQ=,iv:IU2cLIfCT6DuViUTFH8EnvaWA4ok96CzXs86DRsonqM=,tag:T/+HmZLWvYNkR3u2jSWM9Q==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.9.2 diff --git a/modules/shared/community-builder.nix b/modules/shared/community-builder.nix index d75925c..b6de41a 100644 --- a/modules/shared/community-builder.nix +++ b/modules/shared/community-builder.nix @@ -26,13 +26,15 @@ ''; - age.secrets.community-builder-nix-access-tokens = { - file = "${inputs.self}/secrets/community-builder-nix-access-tokens.age"; + sops.secrets.community-builder-nix-access-tokens = { + sopsFile = "${inputs.self}/modules/secrets/community-builder.yaml"; mode = "444"; }; + # fine-grained, no permissions github token, expires 2025-10-29 + # from `nix-community-buildbot` (user account, not the github app) nix.extraOptions = '' - !include ${config.age.secrets.community-builder-nix-access-tokens.path} + !include ${config.sops.secrets.community-builder-nix-access-tokens.path} ''; # useful for people that want to test stuff diff --git a/secrets/community-builder-nix-access-tokens.age b/secrets/community-builder-nix-access-tokens.age deleted file mode 100644 index 3c4e392..0000000 --- a/secrets/community-builder-nix-access-tokens.age +++ /dev/null @@ -1,22 +0,0 @@ -age-encryption.org/v1 --> ssh-ed25519 INdbQA z8wMt6lT52YyEqoOhhmbAhzfip08LXa49qGS7aqC4HQ -pHnLGs/xCdk7VmHb6o1YHc2haTp65Rs6LfCYtz1Tmww --> ssh-ed25519 YMHjXw 61B5Zlry7Y5qH4c9bx/vd/Nw8xONK0fbaUyKdAdFk3M -Zz7aWM4chDnKdnbdjOqeHmVBYpIcpELqvNS89SJMMWw --> ssh-rsa ALNSWw -q0prQ4k9lYSwq3wRmPkAMtphvSQSGM9lJfsX6k7I8TOITr3j9LsNuoJJ5IhBl6ut -e9vfCBQ1e7AYMMpVs0t5YnLMUpQaEf52PoCJr7Ng4Gwz7k6w2K4B21G7u5VcCRmG -panXfLCqkfESX0BaiyYtB2OUYfSIhb/s1coUJYZ6c2fO8fcNnatiXcHou+TAJDp6 -BgRng1FcrItIer5f6S/zj8et4Jf1nY/EhsRIoczXvDI37vOO16mLcp/vJuVTxLBO -cwrwRgP38w5Ksnr0gMbSAcmj3TxOpzdnD51imkusjc5p5dveKSb5oLfIVic2dqA2 -bDQkhoud9u6aM6EJe1bR0g --> ssh-ed25519 Qi7vNw hWe3ZZm4XqaT03sVhid+NF7GlSojve0c39Nex818ahc -1hbSiV3Bo0eLe4e4/da30erp1N/LraLOR5y1XB5AvYk --> ssh-ed25519 MW0fCg uNHGu14NYPUnQO4dCf4jjqcsphkn8fOvdTHQZ3wSKSU -FgTrf/DnJVkGF8sdNCYGEWhoXPkWwsCYzbY3cvlD/0w --> ssh-ed25519 92bXiA LSz/4wSP6EbQV3JayNpXVDAnk/xkW6q+9VWSayjOhW8 -C4RJvkOgQUMAVdXCa1kPpD50/A0Wh3514AUJw3rRU9s --> ssh-ed25519 h1lenA rhww2s2rzG8pomRw5n94LL1O2CLht04pwd9aPxZZ53M -ZBrCDvix3CUdTHxXsg1T05TFnFM36Tng7Pr+4DYX8Ls ---- nL7sh66aBHKa44yvUwTSLfHEdS6rLA6EBZYYvS4a82A -9ԓLe!�Z���w�������%���</��|�x*�o$�-�K�v��oA�4��ʷ<����5�99�i�\ �ڟ��en&́V������+_�/�MA��K��#8d���v�}���~W�4���z��H� ����l��Ď~��#��o \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 19c5034..b39c7fc 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -11,19 +11,11 @@ let inherit ((import ../modules/shared/known-hosts.nix).programs.ssh) knownHosts; - build01 = knownHosts.build01.publicKey; build02 = knownHosts.build02.publicKey; build03 = knownHosts.build03.publicKey; - darwin01 = knownHosts.darwin01.publicKey; web02 = knownHosts.web02.publicKey; secrets = { - # fine-grained, no permissions github token, expires 2025-10-29 - # from `nix-community-buildbot` (user account, not the github app) - community-builder-nix-access-tokens = [ - build01 - darwin01 - ]; grafana-client-secret = [ web02 ]; hetzner-borgbackup-ssh = [ build02 diff --git a/sops.nix b/sops.nix index d7ce470..4732db9 100644 --- a/sops.nix +++ b/sops.nix @@ -23,6 +23,10 @@ let "terraform/secrets.yaml" = [ ]; } // builtins.mapAttrs (_: value: (map (x: keys.hosts.${x}) value)) { + "modules/secrets/community-builder.yaml" = [ + "build01" + "darwin01" + ]; "modules/secrets/hercules-ci.yaml" = [ "build03" "build04"