Ativando a criptografia com a autenticação do Kubernetes usando o HashiCorp Vault (parte manual)
Defina as configurações do Kubernetes no servidor da área segura
Procedimento
- Obter o
VAULT_SA_SECRET_NAMEno OpenShift® Container Platform:- Para OpenShift Container Platform 4.14 identifique o nome secreto associado ao
serviceaccount(SA) criado anteriormente.VAULT_SA_SECRET_NAME=$(oc -n openshift-storage get sa odf-vault-auth -o jsonpath="{.secrets[*]['name']}" | grep -o "[^[:space:]]*-token-[^[:space:]]*")Saída de exemplo:[root@fu40 ~]# echo $VAULT_SA_SECRET_NAME odf-vault-auth-token-8kb2r - Para OpenShift Container Platform 4.15, atribua um valor padrão para `VAULT_SA_SECRET_NAME`"
VAULT_SA_SECRET_NAME=odf-vault-auth-token
- Para OpenShift Container Platform 4.14 identifique o nome secreto associado ao
- Obtenha os parâmetros do cluster do OpenShift Container Platform .
- Obtenha
SA_JWT_TOKENeSA_CA_CRTdo segredo.SA_JWT_TOKEN=$(oc -n openshift-storage get secret "$VAULT_SA_SECRET_NAME" -o jsonpath="{.data.token}" | base64 --decode; echo) - Obtenha
SA_CA_CRTdo segredo.SA_CA_CRT=$(oc -n openshift-storage get secret "$VAULT_SA_SECRET_NAME" -o jsonpath="{.data['ca\.crt']}" | base64 --decode; echo) - Recupere o OpenShift Container Platform cluster endpoint
OCP_HOST.OCP_HOST=$(oc config view --minify --flatten -o jsonpath="{.clusters[0].cluster.server}") - Busque o emissor da conta de serviço:
oc proxy & proxy_pid=$! issuer="$( curl --silent http://127.0.0.1:8001/.well-known/openid-configuration | jq -r .issuer)" kill $proxy_pidSaída de exemplo:# oc proxy & # proxy_pid=$! # issuer="$( curl --silent http://127.0.0.1:8001/.well-known/openid-configuration | jq -r .issuer)" # echo $issuer https://kubernetes.default.svc # kill $proxy_pid
- Obtenha
- Aplicar as configurações no servidor da área segura.
- Use as informações coletadas na seção anterior para configurar o método de autenticação Kubernetes no servidor de área segura.
vault auth enable kubernetesvault write auth/kubernetes/config \ token_reviewer_jwt="$SA_JWT_TOKEN" \ kubernetes_host="$OCP_HOST" \ kubernetes_ca_cert="$SA_CA_CRT" \ issuer="$issuer"Saída de exemplo:# vault write auth/kubernetes/config \ > token_reviewer_jwt="$SA_JWT_TOKEN" \ > kubernetes_host="$OCP_HOST" \ > kubernetes_ca_cert="$SA_CA_CRT" \ > issuer="$issuer" Success! Data written to: auth/kubernetes/config - Ative o caminho de backend de Chave / Valor (KV) no Vault. Para a API do mecanismo de segredo KV da área segura, consulte a versão 2. Use um nome de caminho exclusivo como o caminho de backend O nome não deve ser alterado e deve ser consistente com o valor de entrada do Caminho de Backend presente na interface com o usuário.
vault secrets enable -path=<repalce-with-the-backend-path> kv-v2A amostra de exemplo usará o caminho de back-end odfvault secrets enable -path=odf kv-v2 - Crie uma política para restringir usuários para executar uma operação de gravação ou exclusão no segredo usando os comandos a seguir.
echo ' path "odf/*" { capabilities = ["create", "read", "update", "delete", "list"] } path "sys/mounts" { capabilities = ["read"] }'| vault policy write odf - - Gere a função
odf-rook-ceph-opusando os comandos a seguir:vault write auth/kubernetes/role/odf-rook-ceph-op \ bound_service_account_names=rook-ceph-system,rook-ceph-osd,noobaa \ bound_service_account_namespaces=openshift-storage \ policies=odf \ ttl=1440hSaída de exemplo:
A função# vault write auth/kubernetes/role/odf-rook-ceph-op \ > bound_service_account_names=rook-ceph-system,rook-ceph-osd,noobaa \ > bound_service_account_namespaces=openshift-storage \ > policies=odf \ > ttl=1440h Success! Data written to: auth/kubernetes/role/odf-rook-ceph-opodf-rook-ceph-opé inserida anteriormente no campo de função usado quando você configura os detalhes da conexão KMS na interface do usuário do IBM Fusion. - Gere a função
odf-rook-ceph-osdusando os comandos a seguir:vault write auth/kubernetes/role/odf-rook-ceph-osd \ bound_service_account_names=rook-ceph-osd \ bound_service_account_namespaces=openshift-storage \ policies=odf \ ttl=1440hSaída de exemplo:# vault write auth/kubernetes/role/odf-rook-ceph-osd \ > bound_service_account_names=rook-ceph-osd \ > bound_service_account_namespaces=openshift-storage \ > policies=odf \ > ttl=1440h Success! Data written to: auth/kubernetes/role/odf-rook-ceph-osd
- Use as informações coletadas na seção anterior para configurar o método de autenticação Kubernetes no servidor de área segura.