O Kaspersky Container Security oferece a possibilidade de transferir senhas, tokens e segredos de forma segura usando o HashiCorp Vault, um serviço externo de armazenamento. A solução gera anotações de pod, que o Vault Injector usa para montar os segredos necessários do armazenamento durante a inicialização.
O Kaspersky Container Security tem suporte à integração com Hashicorp Vault 1.7 ou posterior.
A versão 2.1 do Kaspersky Container Security só é compatível com o HashiCorp Vault no modo sidecar usando contêineres sidecar; nesse caso, apenas o método de autenticação do Kubernetes é aceito.
Caso contas de serviço de pods não sejam definidas e contas de serviço padrão sejam utilizadas, não é recomendável atribuir a elas funções dedicadas ao armazenamento, de acordo com um requisito crítico de segurança.
Os valores de configuração do HashiCorp Vault são especificados no arquivo de configuração values.yaml e implementados quando o pacote Helm Chart é inicializado.
As configurações do HashiCorp Vault são configuradas no arquivo de configuração values.yaml da seguinte maneira:
enabled
no bloco vault
estiver definida como false
, a integração com o vault não é usada.enabled
no bloco vault
estiver definida como true
, a integração com o vault é ativada e os valores das variáveis no bloco de configurações vault
são priorizadas. O bloco de configurações vault
contém as seguintes seções:
secret
– para especificar segredos e credenciais.certificate
– para especificar certificados e chaves de certificado.A seção secret
lista os caminhos de arquivos que contêm os segredos dos seguintes parâmetros:
Os segredos são especificados em formato key:value
em que:
<key>
é o nome da variável de ambiente<value>
é o caminho completo do segredo no armazenamento de segredos, seguido do caractere @ e do nome da chave do segredo criado no armazenamento.Por exemplo: POSTGRES_USER: kv/secret/kcs/psql@POSTGRES_USER
Para obter um certificado, na seção vault.certificate
, é necessário especificar os seguintes campos:
ca
é definida como true.
Nesse caso, o caminho para acessar o certificado é formado de acordo com o caminho padrão cert/ca
que é, por sua vez, baseado no nome na infraestrutura de chaves públicas (PKI). Se o certificado CA não for um certificado raiz, use o parâmetro caList
para listar todos os certificados, incluindo o certificado raiz. Por exemplo: cert-ca:
ca: true
tls.crt: pki_kcs/cert/ca
caList:
- pki/cert/ca
issue
e o nome da função criada. O nome comum (cn
) e todos os possíveis nomes alternativos (altname
) são adicionados automaticamente ao certificado. Se necessário, os valores cn
, altname
e ipsans
podem ser especificados manualmente, conforme mostrado abaixo para um banco de dados externo: cert-pguser:
cn: pguser
altname: pguser,pguser.psql,pguser.psql.svc,pguser.psql.svc.cluster.local,localhost
ipsans: 0.0.0.0,127.0.0.1
ttl
. O valor padrão é 8760 horas. O valor do parâmetro não pode ser maior que o valor definido no PKI HashiCorp Vault.
A seção certificate
também contém os caminhos de arquivos com os seguintes certificados e chaves: