Share via


Gerenciar segredos para sua implantação das Operações do Azure IoT (versão prévia)

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

O gerenciamento de segredos nas Operações do Azure IoT (versão prévia) usa o Azure Key Vault como a solução de cofre gerenciado na nuvem e usa o driver CSI do repositório de segredos para extrair segredos da nuvem e armazená-los na borda.

Pré-requisitos

  • Um cluster do Kubernetes habilitado para Arc. Para obter mais informações, consulte Preparar o cluster.

Configurar um repositório de segredos no cluster

As Operações IoT do Azure dão suporte ao Key Vault para armazenar segredos e certificados. O az iot ops init comando CLI do Azure automatiza as etapas para configurar uma entidade de serviço para dar acesso ao cofre de chaves e configurar os segredos necessários para executar as Operações de IoT do Azure.

Para obter mais informações, consulte Implantar extensões das Operações do Azure IoT (versão prévia) em um cluster do Kubernetes.

Configurar a entidade de serviço e o Key Vault manualmente

Se a conta do Azure que estiver executando o comando az iot ops init não tiver permissões para consultar o Microsoft Graph e criar entidades de serviço, será possível prepará-las antecipadamente e usar argumentos extras ao executar o comando da CLI, conforme descrito nas Implantar extensões das Operações do Azure IoT.

Configurar a entidade de serviço para interagir com o Key Vault por meio do Microsoft Entra ID

Siga essas etapas para criar um novo Registro de Aplicativo para o aplicativo Azure IoT Operations usar para autenticar no Key Vault.

Primeiro, registre um aplicativo no Microsoft Entra ID:

  1. Na barra de pesquisa do portal do Azure, pesquise e selecione Microsoft Entra ID.

  2. Selecione Registros de aplicativo na seção Gerenciar do menu Microsoft Entra ID.

  3. Selecione Novo registro.

  4. Na página Registrar um aplicativo, forneça as seguintes informações:

    Campo Valor
    Nome Dê um nome ao aplicativo.
    Tipos de conta compatíveis Certifique-se de que Contas somente neste diretório organizacional (somente <YOUR_TENANT_NAME> – locatário único) esteja selecionado.
    URI de redirecionamento Selecione Web como plataforma. Você pode deixar o endereço web vazio.
  5. Selecione Registrar.

    Quando o aplicativo é criado, você é direcionado para a página de recursos.

  6. Copie a ID do aplicativo (cliente) na página de visão geral do registro do aplicativo. Você usará esse valor como argumento ao executar a implantação de Operações do Azure IoT com o comando az iot ops init.

Em seguida, conceda permissões ao seu aplicativo para o Key Vault:

  1. Na página de recursos do aplicativo, selecione Permissões de API na seção Gerenciar do menu do aplicativo.

  2. Selecione Adicionar permissão.

  3. Na página Solicitar permissões de API, role para baixo e selecioneAzure Key Vault .

  4. Selecione Permissões delegadas.

  5. Marque a caixa para selecionar permissões user_impersonation.

  6. Selecione Adicionar Permissões.

Crie um segredo do cliente que é adicionado ao seu cluster Kubernetes para autenticar no seu cofre de chaves:

  1. Na página de recursos do aplicativo, selecione Certificados e segredos na seção Gerenciar do menu do aplicativo.

  2. Selecione Novo segredo do cliente.

  3. Forneça uma descrição opcional para o segredo e, em seguida, selecione Adicionar.

  4. Copie o valor do novo segredo. Você usará esse valor mais tarde quando executar az iot ops init.

Recuperar a ID de objeto da entidade de serviço:

  1. Na página Visão geral do seu aplicativo, na seção Essentials, selecione o link Nome do aplicativo em Aplicativo gerenciado no diretório local. Isso abre as propriedades do aplicativo empresarial. Copie a ID do objeto a ser usada ao executar az iot ops init.

Criar um cofre de chave

Crie uma nova instância do Azure Key Vault e certifique-se de que ela tenha o Modelo de Permissão definido como Política de acesso ao Vault.

az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"

Se tiver um cofre de chaves existente, você poderá alterar o modelo de permissão executando o seguinte:

az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false 

A ID do recurso do Key Vault será necessária ao executar az iot ops init. Para recuperar a ID do recurso, execute:

az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id  -o tsv

Definir política de acesso principal de serviço no Key Vault

A entidade de serviço recém-criada precisa de uma política secretalist e de get acesso para que as Operações IoT do Azure funcionem com o armazenamento secreto.

Para gerir as políticas de acesso do Key Vault, o principal conectado ao CLI precisa de permissões suficientes do Azure. No modelo RBAC (Controle de Acesso Baseado em Função), essa permissão está incluída no contribuidor do Key Vault ou em funções superiores.

Dica

Se utilizou o principal CLI registado para criar o cofre de chaves, então provavelmente já tem as permissões corretas. No entanto, se estiver a apontar para um cofre de chaves diferente ou existente, então deverá verificar se tem permissões suficientes para definir políticas de acesso.

Execute o seguinte para atribuir as permissões de segredolist e get à entidade de serviço.

az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list

Passar argumentos da entidade de serviço e do Key Vault para a implantação das Operações do Azure IoT

Ao seguir o guia Implantar extensões de operações de IoT do Azure, passe sinalizadores adicionais para o comando az iot ops init para usar a entidade de serviço pré-configurada e o cofre de chaves.

O exemplo a seguir mostra como preparar o cluster para Operações do Azure IoT sem implantá-lo totalmente usando o sinalizador --no-deploy. Você também pode executar o comando sem esse argumento para uma implantação padrão das Operações do Azure IoT.

az iot ops init --name "<your unique key vault name>" --resource-group "<the name of the resource group>" \
    --kv-id <Key Vault Resource ID> \
    --sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
    --sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
    --sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
    --no-deploy

Uma etapa que o comando init executa é garantir que todas as SPCs (classes de provedores secretos) exigidas pelas operações do Azure IoT tenham um segredo padrão configurado no cofre de chaves. Se não existir um valor para o segredo padrão, init criará um. Essa etapa requer que o principal conectado à CLI tenha permissões set secretas. Se desejar usar um segredo existente como o segredo SPC padrão, você poderá especificá-lo com o parâmetro --kv-sat-secret-name; nesse caso, o principal conectado precisará apenas de permissões secretas get.

Adicionar um segredo a um componente de Operações do Azure IoT

Depois de configurar o armazenamento secreto em seu cluster, você poderá criar e adicionar segredos do Key Vault.

  1. Crie o segredo no Key Vault com o nome e o valor necessários. Você pode criar um segredo usando o portal do Azure ou o comando az keyvault secret set.

  2. No cluster, identifique a classe de provedor secreto (SPC) para o componente ao qual você deseja adicionar o segredo. Por exemplo, aio-default-spc. Use o seguinte comando para listar todos os SPCs no cluster:

    kubectl get secretproviderclasses -A
    
  3. Abra o arquivo em seu editor de texto preferido. Se você usar k9s, digite e para editar.

  4. Adicione o objeto secreto à lista em spec.parameters.objects.array. Por exemplo:

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Salve suas alterações e aplique-as ao cluster. Se você usar k9s, suas alterações serão aplicadas automaticamente.

O driver CSI atualiza segredos usando um intervalo de sondagem, portanto, o novo segredo não estará disponível para o pod até o próximo intervalo de sondagem. Para atualizar um componente imediatamente, reinicie os pods do componente. Por exemplo, para reiniciar o componente Processador de Dados, execute os seguintes comandos:

kubectl delete pod aio-dp-reader-worker-0 -n azure-iot-operations
kubectl delete pod aio-dp-runner-worker-0 -n azure-iot-operations

Segredos do Azure IoT MQ (versão prévia)

As etapas para gerenciar segredos com o Azure Key Vault para o Azure IoT MQ (versão prévia), são diferentes. Para obter mais informações, veja Gerenciar segredos do MQ usando o Key Vault.