Compartilhar via


Usar o provedor do Azure Key Vault para o Driver CSI do Armazenamento de Segredos em um cluster do Serviço de Kubernetes do Azure (AKS)

O provedor do Azure Key Vault para o Driver CSI do Armazenamento de Segredos permite a integração de um Azure Key Vault como um repositório secreto com um cluster do Serviço de Kubernetes do Azure (AKS) por um volume de CSI.

Recursos

  • Monta segredos, chaves e certificados em um pod usando um volume de CSI.
  • Dá suporte a volumes em linha de CSI.
  • Dá suporte à montagem de vários objetos de armazenamento de segredos como um único volume.
  • Dá suporte à portabilidade de pods com o CRD SecretProviderClass.
  • Suporte aos contêineres do Windows.
  • Faz a sincronização com os segredos do Kubernetes.
  • Dá suporte à rotação automática de conteúdo montado e segredos do Kubernetes sincronizados.

Limitações

Um contêiner que usa montagem de volume de SubPath não recebe atualizações secretas quando gira. Para obter mais informações, confira Limitações conhecidas do Driver CSI do Repositório de Segredos.

Pré-requisitos

  • Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
  • Verifique se sua versão da CLI do Azure é 2.30.0 ou posterior. Se ela for uma versão anterior, instale a última versão.
  • Se você estiver restringindo a Entrada ao cluster, verifique se as portas 9808 e 8095 estão abertas.
  • A versão mínima recomendada do Kubernetes baseia-se na janela de suporte deversão com rolagem do Kubernetes. Verifique se você está executando a versão N-2 ou posterior.

Criar um cluster do AKS com o provedor do Azure Key Vault para suporte ao Driver do CSI do Armazenamento de Segredos

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

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

    Observação

    Se você quiser usar a ID de carga de trabalho do Microsoft Entra, também deverá usar os parâmetros --enable-oidc-issuer e --enable-workload-identity, como no exemplo a seguir:

    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. Anote a clientId da identidade na saída.

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

Observação

Depois que você ativar esse recurso, o AKS criará um identity named azurekeyvaultsecretsprovider-xxx gerenciado no grupo de recursos do nó e o atribuirá automaticamente aos conjuntos de dimensionamento 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 há suporte para impedir a criação da identidade.

Atualizar um cluster do AKS existente com o provedor do Azure Key Vault para o suporte do Driver CSI do Armazenamento de Segredos

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

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

Observação

Depois que você ativar esse recurso, o AKS criará um identity named azurekeyvaultsecretsprovider-xxx gerenciado no grupo de recursos do nó e o atribuirá automaticamente aos conjuntos de dimensionamento 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 há suporte para impedir a criação da identidade.

Verificar o provedor do Azure Key Vault para a instalação do Driver do CSI do Armazenamento de Segredos

  1. 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)'
    

    Seu resultado deve ser semelhante ao seguinte exemplo de saída:

    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
    
  2. Verifique se cada nó no pool de nós do cluster tem um pod do Driver de CSI do Repositório de Segredos e um pod do Azure do Provedor do Repositório de Segredos em execução.

Criar ou usar um Azure Key Vault existente

  1. Crie ou atualize um cofre de chaves com o RBAC (controle de acesso baseado em função) do Azure habilitado usando o comando az keyvault create ou o comando az keyvault update com o sinalizador --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 Fornecer acesso a chaves, certificados e segredos do Key Vault 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 comando az keyvault secret set para definir um segredo de texto sem formatação chamado ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. Anote as 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 seu recurso do cofre de chaves
    • A ID do locatário do Azure da assinatura

Próximas etapas

Neste artigo, você aprendeu a usar o provedor do Azure Key Vault para o Driver do CSI do Armazenamento de Segredos com um cluster do AKS. Agora, você precisa fornecer uma identidade para acessar o Azure Key Vault. Para saber como, prossiga para o próximo artigo.