From a3a8854a164e74042294410deaa528f745938ae9 Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Sun, 30 Aug 2026 22:14:41 +1000 Subject: [PATCH] Grant the vault deployer auth/oidc and identity group capabilities (#148) ## Why AppRole capabilities are fixed at login, so the deployer needs `auth/oidc/*` and identity-group grants in an apply that precedes the one creating those resources. ## How - Add `policies/auth/oidc/admin.yaml`: full `auth/oidc/*` administration (mount config and login roles), mirroring `policies/auth/ldap/admin.yaml`. - Add `policies/identity/group/admin.yaml`: manage external identity groups, group aliases and `identity/lookup/group`, on both the collection and per-id endpoints. - Grant both policies to the `tf_vault` approle and the `woodpecker_terraform_vault` k8s role. Apply before #147. Reviewed-on: https://git.unkin.net/unkin/terraform-vault/pulls/148 Co-authored-by: unkin-agent Co-committed-by: unkin-agent --- policies/auth/oidc/admin.yaml | 19 +++++++++++++++ policies/identity/group/admin.yaml | 38 ++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 policies/auth/oidc/admin.yaml create mode 100644 policies/identity/group/admin.yaml diff --git a/policies/auth/oidc/admin.yaml b/policies/auth/oidc/admin.yaml new file mode 100644 index 0000000..9f04b3b --- /dev/null +++ b/policies/auth/oidc/admin.yaml @@ -0,0 +1,19 @@ +# Allow full administration of the OIDC auth backend (mount config and login +# roles), mirroring policies/auth/ldap/admin.yaml. sys/auth/* already covers +# enabling the mount itself; this covers writing auth/oidc/config and +# auth/oidc/role/*. +--- +rules: + - path: "auth/oidc/*" + capabilities: + - create + - update + - read + - delete + - list + +auth: + approle: + - tf_vault + k8s/au/syd1: + - woodpecker_terraform_vault diff --git a/policies/identity/group/admin.yaml b/policies/identity/group/admin.yaml new file mode 100644 index 0000000..d077a51 --- /dev/null +++ b/policies/identity/group/admin.yaml @@ -0,0 +1,38 @@ +# Allow the deployer to manage external identity groups and their aliases, which +# is how OIDC group membership (the ak_groups claim) maps onto Vault policies. +# Both the collection endpoints and the per-id endpoints are needed: create posts +# to identity/group, subsequent reads and updates address identity/group/id/. +--- +rules: + - path: "identity/group" + capabilities: + - create + - update + - path: "identity/group/*" + capabilities: + - create + - update + - read + - delete + - list + - path: "identity/group-alias" + capabilities: + - create + - update + - path: "identity/group-alias/*" + capabilities: + - create + - update + - read + - delete + - list + - path: "identity/lookup/group" + capabilities: + - create + - update + +auth: + approle: + - tf_vault + k8s/au/syd1: + - woodpecker_terraform_vault