Segurança — ArgoCD
O chart tdp-argo suporta autenticação LDAP via Dex (tdp-argo.dex.enabled: true), com credenciais de bind em argocd-secret (chaves dex.ldap.bindDN e dex.ldap.bindPW), dex.config em tdp-argo.configs.cm e RBAC em tdp-argo.rbacConfig.
1. Credenciais LDAP no Secret
Com tdp-argo.configs.secret.createSecret: true, você pode definir extras renderizados no argocd-secret:
tdp-argo:
configs:
secret:
createSecret: true
extra:
dex.ldap.bindDN: "uid=ldap.user,cn=users,cn=accounts,dc=example,dc=com"
dex.ldap.bindPW: "<ldap-bind-password>"
danger
Não commite senhas. Use arquivos de valores privados, CI seguro ou gestão de secrets externa.
2. Habilitar Dex e dex.config
tdp-argo:
configs:
cm:
url: https://<host>
dex.config: |
connectors:
- type: ldap
id: ldap
name: LDAP
config:
host: "<ldap-host>:389"
insecureNoSSL: true
insecureSkipVerify: true
bindDN: "$dex.ldap.bindDN"
bindPW: "$dex.ldap.bindPW"
userSearch:
baseDN: "cn=users,cn=accounts,dc=example,dc=com"
filter: "(objectClass=person)"
username: uid
idAttr: uid
emailAttr: mail
nameAttr: givenName
secret:
createSecret: false
dex:
enabled: true
Ajuste host, baseDN e flags SSL conforme seu diretório. Quando createSecret: false, crie e mantenha o argocd-secret por outro meio, com as chaves referenciadas em dex.config.
3. RBAC para grupos LDAP
tdp-argo:
rbacConfig:
policy.default: role:readonly
policy.csv: |
g:devops-admins, role:admin
g:data-platform, role:admin
g:data-read, role:readonly
p, role:ldap-user, applications, *, default/<namespace>, get
p, role:ldap-user, applications, *, default/<namespace>, sync
p, role:ldap-user, applications, *, default/<namespace>, override
p, role:ldap-user, clusters, *, *, get
g, *, role:ldap-user
Substitua <namespace> pelo projeto/namespace lógico do Argo CD que você utiliza.