Share via


Gerenciar segredos para sua implantação do Azure IoT Operations Preview

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

O gerenciamento de segredos no Azure IoT Operations Preview usa o Azure Key Vault como a solução de cofre gerenciado na nuvem e usa o driver CSI de armazenamento de segredos para extrair segredos da nuvem e armazená-los na borda.

Pré-requisitos

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

Configurar um armazenamento secreto no cluster

O Azure IoT Operations dá suporte ao Cofre da Chave 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 IoT do Azure.

Para obter mais informações, consulte Implantar extensões do Azure IoT Operations Preview em um cluster Kubernetes.

Configurar a entidade de serviço e o Cofre da Chave manualmente

Se a conta do Azure que executa o az iot ops init comando não tiver permissões para consultar o Microsoft Graph e criar entidades de serviço, você poderá prepará-las antecipadamente e usar argumentos extras ao executar o comando CLI, conforme descrito em Implantar extensões de Operações IoT do Azure.

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

Siga estas etapas para criar um novo Registro de Aplicativo para o aplicativo Azure IoT Operations a ser usado para autenticar no Cofre da Chave.

Primeiro, registre um aplicativo com o Microsoft Entra ID:

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

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

  3. Selecione Novo registo.

  4. Na página Registar uma candidatura, forneça as seguintes informações:

    Campo Valor
    Nome Forneça um nome para seu aplicativo.
    Tipos de conta suportados Certifique-se de que Contas neste diretório organizacional somente (<somente YOUR_TENANT_NAME> - Locatário único) esteja selecionado.
    URI de Redirecionamento Selecione Web como a plataforma. Pode deixar o endereço Web vazio.
  5. Selecione Registar.

    Quando seu aplicativo é criado, você é direcionado para sua página de recursos.

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

Em seguida, conceda permissões ao seu aplicativo para o Cofre da Chave:

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

  2. Selecione Adicionar uma permissão.

  3. Na página Solicitar permissões da API, role para baixo e selecione Azure Key Vault.

  4. Selecione Permissões delegadas.

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

  6. Selecione Adicionar permissões.

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

  1. Na página de recursos do seu aplicativo, selecione Certificados & 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 selecione Adicionar.

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

Recupere a ID do objeto da entidade de serviço:

  1. Na página Visão geral do seu aplicativo, na seção Essenciais, 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 para usar quando você executar az iot ops inito .

Criar um cofre de chaves

Crie uma nova instância do Azure Key Vault e verifique se ela tem 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 você tiver um cofre de chaves existente, 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 

Você precisará do ID do recurso do Cofre da Chave quando executar az iot ops inito . 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 da entidade de serviço no Cofre da Chave

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

Para gerenciar as políticas de acesso ao Cofre da Chave, a entidade de segurança conectada à CLI precisa de permissões suficientes do Azure. No modelo RBAC (Controle de Acesso Baseado em Função), essa permissão está incluída em funções superiores ou de colaborador do Cofre de Chaves.

Gorjeta

Se você usou a entidade de CLI conectada para criar o cofre de chaves, provavelmente já tem as permissões certas. No entanto, se você estiver apontando para um cofre de chaves diferente ou existente, verifique se tem permissões suficientes para definir políticas de acesso.

Execute o seguinte para atribuir segredolist e get permissões à 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

Passe os argumentos da entidade de serviço e do Cofre da Chave para a implantação do Azure IoT Operations

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

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

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 init comando executa é garantir que todas as Classes de Provedor Secreto (SPCs) exigidas pelas Operações IoT do Azure tenham um segredo padrão configurado no cofre de chaves. Se um valor para o segredo padrão não existir init criará um. Esta etapa requer que a entidade de segurança conectada à CLI tenha permissões secretas set . Se você quiser usar um segredo existente como o segredo padrão do SPC, poderá especificá-lo com o --kv-sat-secret-name parâmetro, caso em que a entidade conectada só precisa de permissões secretas get .

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

Depois de configurar o armazenamento secreto no cluster, você pode criar e adicionar segredos do Cofre da Chave.

  1. Crie o seu segredo no Cofre da Chave com o nome e o valor que precisar. 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) do 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 ficheiro no seu editor de texto preferido. Se você usa 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 as alterações e aplique-as ao cluster. Se utilizar o k9s, as alterações serão aplicadas automaticamente.

O driver CSI atualiza segredos usando um intervalo de sondagem, portanto, o novo segredo não está 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 Preview

As etapas para gerenciar segredos com o Azure Key Vault for Azure IoT MQ Preview são diferentes. Para obter mais informações, consulte Gerenciar segredos MQ usando o Cofre de Chaves.