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 diff --git a/policies/kv/service/authentik/oidc-vault/read.yaml b/policies/kv/service/authentik/oidc-vault/read.yaml new file mode 100644 index 0000000..df475d4 --- /dev/null +++ b/policies/kv/service/authentik/oidc-vault/read.yaml @@ -0,0 +1,21 @@ +# Let the terraform-vault deployer read the OpenBao OIDC client credentials that +# Authentik's provider module generates and writes here (terraform_authentik owns +# kv/service/authentik/* — see policies/kv/service/authentik/write.yaml). The +# deployer consumes client_id/client_secret to configure the auth/oidc backend. +# +# OIDC becomes the default human auth path; approle and k8s (CI and agents) plus +# the break-glass root path are unchanged. +# +# AppRole capabilities are fixed at login, so this grant must be applied before +# the PR that adds the auth/oidc modules. +--- +rules: + - path: "kv/data/service/authentik/oidc-vault" + capabilities: + - read + +auth: + approle: + - tf_vault + k8s/au/syd1: + - woodpecker_terraform_vault