diff --git a/nomad/acls/acls.tf b/nomad/acls/acls.tf deleted file mode 100644 index 13961c6..0000000 --- a/nomad/acls/acls.tf +++ /dev/null @@ -1,5 +0,0 @@ -resource "nomad_acl_policy" "create_post_bootstrap_policy" { - name = "anonymous" - description = "Anon RW" - rules_hcl = file("${path.module}/nomad-anon-bootstrap.hcl") -} diff --git a/nomad/acls/nomad-deploy-policy.hcl b/nomad/acls/nomad-deploy-policy.hcl new file mode 100644 index 0000000..7b904a7 --- /dev/null +++ b/nomad/acls/nomad-deploy-policy.hcl @@ -0,0 +1,4 @@ +namespace "*" { + policy = "read" + capabilities = ["submit-job", "dispatch-job", "read-logs"] +} diff --git a/nomad/acls/nomad_policies.tf b/nomad/acls/nomad_policies.tf new file mode 100644 index 0000000..863085c --- /dev/null +++ b/nomad/acls/nomad_policies.tf @@ -0,0 +1,18 @@ +resource "nomad_acl_policy" "anon_policy" { + name = "anonymous" + description = "Anon RO" + rules_hcl = file("${path.module}/nomad-anon-bootstrap.hcl") +} + +resource "nomad_acl_policy" "admin" { + name = "admin" + description = "Admin RW for admins" + rules_hcl = file("${path.module}/nomad-admin-policy.hcl") +} + +# TODO: Limit this scope +resource "nomad_acl_policy" "deploy" { + name = "deploy" + description = "Admin RW" + rules_hcl = file("${path.module}/nomad-deploy-policy.hcl") +} diff --git a/nomad/acls/nomad_vault.tf b/nomad/acls/nomad_vault.tf index 3f4a13a..f062b06 100644 --- a/nomad/acls/nomad_vault.tf +++ b/nomad/acls/nomad_vault.tf @@ -8,27 +8,32 @@ resource "vault_nomad_secret_backend" "config" { backend = "nomad" description = "Nomad ACL" token = nomad_acl_token.vault.secret_id + + default_lease_ttl_seconds = "3600" + max_lease_ttl_seconds = "7200" + max_ttl = "240" + ttl = "120" } +# Vault roles generating Nomad tokens resource "vault_nomad_secret_role" "nomad-deploy" { - backend = vault_nomad_secret_backend.config.backend - role = "nomad-deploy" - policies = ["nomad-deploy"] + backend = vault_nomad_secret_backend.config.backend + role = "nomad-deploy" + # Nomad policies + policies = ["deploy"] } -resource "vault_nomad_secret_role" "admin" { +resource "vault_nomad_secret_role" "admin-management" { backend = vault_nomad_secret_backend.config.backend role = "admin-management" type = "management" } -resource "vault_policy" "nomad-deploy" { - name = "nomad-deploy" - policy = <