Partilhar via


Usar o provedor Azure Key Vault para o Secrets Store CSI Driver num cluster do Azure Kubernetes Service (AKS)

O Azure Key Vault provider para o Secrets Store CSI Driver permite a integração de um Azure Key Vault como um repositório de segredos com um cluster do Azure Kubernetes Service (AKS) através de um volume CSI.

Funcionalidades

  • Monta segredos, chaves e certificados em um pod usando um volume CSI.
  • Suporta os volumes em linha do CSI.
  • Suporta a montagem de vários objetos de armazenamento de segredos como um único volume.
  • Suporta portabilidade de pod com o SecretProviderClass CRD.
  • Suporta contêineres do Windows.
  • Sincroniza com segredos do Kubernetes.
  • Suporta autorotação de conteúdos montados e segredos sincronizados do Kubernetes.

Limitações

  • Um contentor que use um ConfigMap ou Secret como montagem de volume subPath não é atualizado automaticamente quando o segredo é alterado. Esta é uma limitação do Kubernetes. Para que as alterações entrem em vigor, o aplicativo precisa recarregar o arquivo alterado observando as alterações no sistema de arquivos ou reiniciando o pod. Para obter mais informações, consulte Limitações conhecidas do driver CSI do Secrets Store.
  • O complemento cria uma identidade gerida nomeada azurekeyvaultsecretsprovider-xxx no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Escalabilidade de Máquinas Virtuais (VMSS). Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é possível impedir a criação da identidade.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Verifique se a sua versão da CLI do Azure é 2.30.0 ou posterior. Se for uma versão anterior, instale a versão mais recente.

Rede

Funções

  • A identidade usada com o SecretProviderClass precisa ter permissão para acessar key ou certificatetipos de objetos.
  • A identidade usada com o SecretProviderClass precisa ter Key Vault Secrets User para aceder ao secrettipo de objeto.

Criar um cluster AKS com o provedor do Azure Key Vault para suporte ao Driver CSI do Secrets Store

  1. Crie um grupo de recursos do Azure usando o az group create comando.

    az group create --name myResourceGroup --___location eastus2
    
  2. Crie um cluster AKS com o provedor do Azure Key Vault para a funcionalidade do Secrets Store CSI Driver, utilizando o comando az aks create com o parâmetro --enable-addons azure-keyvault-secrets-provider. O complemento cria uma identidade gerenciada atribuída pelo usuário que você pode usar para autenticar no cofre de chaves. O exemplo a seguir cria um cluster AKS com o Azure Key Vault como provedor do Secrets Store CSI Driver habilitado.

    Nota

    Se pretender usar o ID de carga de trabalho do Microsoft Entra, deverá também usar os parâmetros --enable-oidc-issuer e --enable-workload-identity, como no seguinte exemplo:

    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
    
    az aks create \
        --name myAKSCluster \
        --resource-group myResourceGroup \
        --enable-addons azure-keyvault-secrets-provider \
        --generate-ssh-keys
    
  3. O comando anterior cria uma identidade gerenciada atribuída pelo usuário, azureKeyvaultSecretsProvider, para acessar recursos do Azure. O exemplo a seguir usa essa identidade para se conectar ao cofre de chaves que armazena os segredos, mas você também pode usar outros métodos de acesso de identidade. Tome nota da identidade clientId na saída.

    ...,
     "addonProfiles": {
        "azureKeyvaultSecretsProvider": {
          ...,
          "identity": {
            "clientId": "<client-id>",
            ...
          }
        }
    

Nota

Depois de ativar este recurso, o AKS cria uma identidade gerida nomeada azurekeyvaultsecretsprovider-xxx no grupo de recursos do nó e atribui-a aos Conjuntos de Escala de Máquina Virtual (VMSS) automaticamente. Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é possível impedir a criação da identidade.

Atualizar um cluster AKS existente com o provedor do Azure Key Vault para suporte ao Driver CSI do Secrets Store

  • Atualize um cluster AKS existente com o provedor do Azure Key Vault para o recurso de Driver CSI do Secrets Store usando o az aks enable-addons comando e habilite o complemento azure-keyvault-secrets-provider . O complemento cria uma identidade gerenciada atribuída pelo usuário que você pode usar para autenticar no cofre de chaves.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
    

Nota

Depois de ativar este recurso, o AKS cria uma identidade gerida nomeada azurekeyvaultsecretsprovider-xxx no grupo de recursos do nó e atribui-a aos Conjuntos de Escala de Máquina Virtual (VMSS) automaticamente. Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é possível impedir a criação da identidade.

Verifique o provedor do Azure Key Vault para a instalação do Driver CSI do Secrets Store

  1. Obtenha as credenciais do cluster AKS usando o az aks get-credentials comando.

    az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
    
  2. Verifique se a instalação foi concluída usando o comando kubectl get pods, que lista todos os pods com os rótulos secrets-store-csi-driver e secrets-store-provider-azure no namespace kube-system.

    kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
    

    Sua saída deve ser semelhante à saída de exemplo a seguir:

    NAME                                     READY   STATUS    RESTARTS   AGE
    aks-secrets-store-csi-driver-4vpkj       3/3     Running   2          4m25s
    aks-secrets-store-csi-driver-ctjq6       3/3     Running   2          4m21s
    aks-secrets-store-csi-driver-tlvlq       3/3     Running   2          4m24s
    aks-secrets-store-provider-azure-5p4nb   1/1     Running   0          4m21s
    aks-secrets-store-provider-azure-6pqmv   1/1     Running   0          4m24s
    aks-secrets-store-provider-azure-f5qlm   1/1     Running   0          4m25s
    
  3. Verifique se cada nó no pool de nós do cluster tem um pod do Secrets Store CSI Driver e um pod do Secrets Store Provider Azure a correr.

Criar ou usar um Cofre da Chave do Azure existente

  1. Crie ou atualize um cofre de chaves com o controlo de acesso baseado em função do Azure (Azure RBAC) habilitado usando os comandos az keyvault create ou az keyvault update com o parâmetro --enable-rbac-authorization. O nome do cofre de chaves deve ser globalmente exclusivo. Para obter mais detalhes sobre os modelos de permissão do Cofre de Chaves e o RBAC do Azure, consulte Forneça acesso às chaves, certificados e segredos do Cofre de Chaves com um controle de acesso baseado em função do Azure

    ## Create a new Azure key vault
    az keyvault create --name <keyvault-name> --resource-group myResourceGroup --___location eastus2 --enable-rbac-authorization
    
    ## Update an existing Azure key vault
    az keyvault update --name <keyvault-name> --resource-group myResourceGroup --___location eastus2 --enable-rbac-authorization
    
  2. Seu cofre de chaves pode armazenar chaves, segredos e certificados. Neste exemplo, use o az keyvault secret set comando para definir um segredo de texto simples chamado ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. Tome nota das seguintes propriedades para uso futuro:

    • O nome do objeto secreto no cofre de chaves
    • O tipo de objeto (segredo, chave ou certificado)
    • O nome do recurso do cofre de chaves
    • O ID do inquilino do Azure da assinatura

Próximos passos

Neste artigo, você aprendeu como usar o provedor do Cofre de Chaves do Azure para o Driver CSI do Repositório de Segredos em um cluster AKS. Agora você precisa fornecer uma identidade para acessar o Cofre da Chave do Azure. Para saber como, continue para o próximo artigo.