security.acme.certs."postgresql" = config.myServices.databasesCerts // {
user = "postgres";
group = "postgres";
- plugins = [ "fullchain.pem" "key.pem" "account_key.json" "account_reg.json" ];
domain = "db-1.immae.eu";
postRun = ''
systemctl reload postgresql.service
'';
};
- secrets.keys = [
- {
- dest = "postgresql/pam";
+ secrets.keys = {
+ "postgresql/pam" = {
permissions = "0400";
group = "postgres";
user = "postgres";
pam_filter ${filter}
ssl start_tls
'';
- }
- {
- dest = "postgresql/pam_replication";
+ };
+ "postgresql/pam_replication" = {
permissions = "0400";
group = "postgres";
user = "postgres";
pam_login_attribute cn
ssl start_tls
'';
- }
- ];
+ };
+ };
security.pam.services = let
pam_ldap = "${pkgs.pam_ldap}/lib/security/pam_ldap.so";
- in [
- {
- name = "postgresql";
+ in {
+ postgresql = {
text = ''
- auth required ${pam_ldap} config=${config.secrets.location}/postgresql/pam
- account required ${pam_ldap} config=${config.secrets.location}/postgresql/pam
+ auth required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam"}
+ account required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam"}
'';
- }
- {
- name = "postgresql_replication";
+ };
+ postgresql_replication = {
text = ''
- auth required ${pam_ldap} config=${config.secrets.location}/postgresql/pam_replication
- account required ${pam_ldap} config=${config.secrets.location}/postgresql/pam_replication
+ auth required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam_replication"}
+ account required ${pam_ldap} config=${config.secrets.fullPaths."postgresql/pam_replication"}
'';
- }
- ];
+ };
+ };
};
}