vault: add admin role for config jobs
This commit is contained in:
parent
85c3d9c2f7
commit
86c9951cc4
@ -14,7 +14,7 @@ spec:
|
|||||||
backoffLimit: 1
|
backoffLimit: 1
|
||||||
template:
|
template:
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: vault
|
serviceAccountName: vault-admin
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/arch: arm64
|
||||||
@ -30,7 +30,7 @@ spec:
|
|||||||
- name: VAULT_ADDR
|
- name: VAULT_ADDR
|
||||||
value: http://vault.vault.svc.cluster.local:8200
|
value: http://vault.vault.svc.cluster.local:8200
|
||||||
- name: VAULT_K8S_ROLE
|
- name: VAULT_K8S_ROLE
|
||||||
value: vault
|
value: vault-admin
|
||||||
- name: VAULT_K8S_ROLE_TTL
|
- name: VAULT_K8S_ROLE_TTL
|
||||||
value: 1h
|
value: 1h
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@ -5,6 +5,7 @@ namespace: vault
|
|||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- serviceaccount.yaml
|
- serviceaccount.yaml
|
||||||
|
- serviceaccount-admin.yaml
|
||||||
- rbac.yaml
|
- rbac.yaml
|
||||||
- configmap.yaml
|
- configmap.yaml
|
||||||
- statefulset.yaml
|
- statefulset.yaml
|
||||||
|
|||||||
@ -16,7 +16,7 @@ spec:
|
|||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
vault.hashicorp.com/agent-inject: "true"
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
vault.hashicorp.com/role: "vault"
|
vault.hashicorp.com/role: "vault-admin"
|
||||||
vault.hashicorp.com/agent-inject-secret-vault-oidc-env.sh: "kv/data/atlas/vault/vault-oidc-config"
|
vault.hashicorp.com/agent-inject-secret-vault-oidc-env.sh: "kv/data/atlas/vault/vault-oidc-config"
|
||||||
vault.hashicorp.com/agent-inject-template-vault-oidc-env.sh: |
|
vault.hashicorp.com/agent-inject-template-vault-oidc-env.sh: |
|
||||||
{{ with secret "kv/data/atlas/vault/vault-oidc-config" }}
|
{{ with secret "kv/data/atlas/vault/vault-oidc-config" }}
|
||||||
@ -40,7 +40,7 @@ spec:
|
|||||||
export VAULT_OIDC_BOUND_CLAIMS_TYPE="{{ .Data.data.bound_claims_type }}"
|
export VAULT_OIDC_BOUND_CLAIMS_TYPE="{{ .Data.data.bound_claims_type }}"
|
||||||
{{ end }}
|
{{ end }}
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: vault
|
serviceAccountName: vault-admin
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/arch: arm64
|
kubernetes.io/arch: arm64
|
||||||
@ -58,7 +58,7 @@ spec:
|
|||||||
- name: VAULT_ADDR
|
- name: VAULT_ADDR
|
||||||
value: http://vault.vault.svc.cluster.local:8200
|
value: http://vault.vault.svc.cluster.local:8200
|
||||||
- name: VAULT_K8S_ROLE
|
- name: VAULT_K8S_ROLE
|
||||||
value: vault
|
value: vault-admin
|
||||||
- name: VAULT_ENV_FILE
|
- name: VAULT_ENV_FILE
|
||||||
value: /vault/secrets/vault-oidc-env.sh
|
value: /vault/secrets/vault-oidc-env.sh
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@ -50,6 +50,13 @@ vault write auth/kubernetes/config \
|
|||||||
kubernetes_host="${k8s_host}" \
|
kubernetes_host="${k8s_host}" \
|
||||||
kubernetes_ca_cert="${k8s_ca}"
|
kubernetes_ca_cert="${k8s_ca}"
|
||||||
|
|
||||||
|
write_raw_policy() {
|
||||||
|
name="$1"
|
||||||
|
body="$2"
|
||||||
|
log "writing policy ${name}"
|
||||||
|
printf '%s\n' "${body}" | vault policy write "${name}" -
|
||||||
|
}
|
||||||
|
|
||||||
write_policy_and_role() {
|
write_policy_and_role() {
|
||||||
role="$1"
|
role="$1"
|
||||||
namespace="$2"
|
namespace="$2"
|
||||||
@ -90,6 +97,41 @@ path \"kv/metadata/atlas/${path}\" {
|
|||||||
ttl="${role_ttl}"
|
ttl="${role_ttl}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vault_admin_policy='
|
||||||
|
path "sys/auth" {
|
||||||
|
capabilities = ["read"]
|
||||||
|
}
|
||||||
|
path "sys/auth/*" {
|
||||||
|
capabilities = ["create", "update", "delete", "sudo", "read"]
|
||||||
|
}
|
||||||
|
path "auth/kubernetes/*" {
|
||||||
|
capabilities = ["create", "update", "read"]
|
||||||
|
}
|
||||||
|
path "auth/oidc/*" {
|
||||||
|
capabilities = ["create", "update", "read"]
|
||||||
|
}
|
||||||
|
path "sys/policies/acl" {
|
||||||
|
capabilities = ["list"]
|
||||||
|
}
|
||||||
|
path "sys/policies/acl/*" {
|
||||||
|
capabilities = ["create", "update", "read"]
|
||||||
|
}
|
||||||
|
path "kv/data/atlas/vault/*" {
|
||||||
|
capabilities = ["read"]
|
||||||
|
}
|
||||||
|
path "kv/metadata/atlas/vault/*" {
|
||||||
|
capabilities = ["list"]
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
write_raw_policy "vault-admin" "${vault_admin_policy}"
|
||||||
|
log "writing role vault-admin"
|
||||||
|
vault write "auth/kubernetes/role/vault-admin" \
|
||||||
|
bound_service_account_names="vault-admin" \
|
||||||
|
bound_service_account_namespaces="vault" \
|
||||||
|
policies="vault-admin" \
|
||||||
|
ttl="${role_ttl}"
|
||||||
|
|
||||||
write_policy_and_role "outline" "outline" "outline-vault" \
|
write_policy_and_role "outline" "outline" "outline-vault" \
|
||||||
"outline/* shared/postmark-relay" ""
|
"outline/* shared/postmark-relay" ""
|
||||||
write_policy_and_role "planka" "planka" "planka-vault" \
|
write_policy_and_role "planka" "planka" "planka-vault" \
|
||||||
|
|||||||
6
services/vault/serviceaccount-admin.yaml
Normal file
6
services/vault/serviceaccount-admin.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# services/vault/serviceaccount-admin.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: vault-admin
|
||||||
|
namespace: vault
|
||||||
Loading…
x
Reference in New Issue
Block a user