Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure IoT Operations usa o TLS para criptografar a comunicação entre todos os componentes. Este artigo descreve como gerenciar certificados para comunicações internas e externas e como usar seu próprio emissor de autoridade certificadora (AC) para comunicações internas em uma implantação de produção.
Pré-requisitos
Para gerenciar certificados para comunicações externas, você precisa de uma instância de Operações IoT do Azure implantada com configurações seguras. Se você implantou operações de IoT do Azure com configurações de teste, precisará primeiro habilitar as configurações seguras.
Gerenciar certificados para comunicações internas
Todas as comunicações dentro das Operações de IoT do Azure são criptografadas usando TLS. Para ajudar você a começar, o recurso Operações do Azure IoT é implantado com uma autoridade de certificação raiz padrão e um emissor para certificados de servidor TLS. Você pode usar a configuração padrão para fins de desenvolvimento e teste. Para uma implantação de produção, recomendamos usar seu próprio emissor de AC e uma solução PKI corporativa.
Certificado de autoridade de certificação raiz e emissor autoassinado padrão para certificados de servidor TLS
Para ajudar você a começar, as Operações do Azure IoT são implantadas com um emissor autoassinado padrão e um certificado de Autoridade de Certificação raiz para certificados de servidor TLS. Você pode usar esse emissor para desenvolvimento e testes. As Operações do Azure IoT usam o cert-manager para gerenciar certificados TLS e o trust-manager para distribuir pacotes de confiança para componentes.
O certificado de AC é autoassinado e não é considerado confiável por nenhum cliente fora do recurso Operações do Azure IoT. A entidade do certificado de autoridade de certificação é
CN=Azure IoT Operations Quickstart Root CA - Not for Production. O certificado de autoridade de certificação é girado automaticamente pelo gerenciador de certificados.O certificado de autoridade de certificação raiz é armazenado em um segredo do Kubernetes chamado
azure-iot-operations-aio-ca-certificateno namespacecert-manager.A porção pública do certificado de Autoridade de Certificação raiz é armazenada em um ConfigMap chamado
azure-iot-operations-aio-ca-trust-bundleno namespaceazure-iot-operations. Você pode recuperar o certificado de Autoridade de Certificação a partir do ConfigMap e inspecioná-lo com o kubectl e o openssl. O ConfigMap é mantido atualizado pelo gerenciador de confiança quando o certificado de Autoridade de Certificação é rotacionado pelo cert-manager.kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -nooutCertificate: Data: Version: 3 (0x2) Serial Number: <SERIAL-NUMBER> Signature Algorithm: sha256WithRSAEncryption Issuer: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production Validity Not Before: Sep 18 20:42:19 2024 GMT Not After : Sep 18 20:42:19 2025 GMT Subject: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: <MODULUS> Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: <SUBJECT-KEY-IDENTIFIER> Signature Algorithm: sha256WithRSAEncryption [Signature]Por padrão, já existe um emissor configurado no
azure-iot-operations namespacechamadoazure-iot-operations-aio-certificate-issuer. É usado como o emissor de AC comum para todos os certificados de servidor TLS para as Operações de IoT. O agente MQTT usa um emissor criado com base no mesmo certificado de Autoridade de Certificação assinado pelo emissor autoassinado para emitir certificados de servidor TLS para o ouvinte TLS padrão na porta 18883. Você pode inspecionar o emissor com o seguinte comando:kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yamlapiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: creationTimestamp: "2024-09-18T20:42:17Z" generation: 1 name: azure-iot-operations-aio-certificate-issuer resourceVersion: "36665" uid: 592700a6-95e0-4788-99e4-ea93934bd330 spec: ca: secretName: azure-iot-operations-aio-ca-certificate status: conditions: - lastTransitionTime: "2024-09-18T20:42:22Z" message: Signing CA verified observedGeneration: 1 reason: KeyPairVerified status: "True" type: Ready
Traga seu próprio emissor
Para implantações de produção, recomendamos que você configure operações de IoT do Azure com uma PKI corporativa para gerenciar certificados e traga seu próprio emissor de AC que funcione com sua PKI corporativa, em vez de usar o emissor autoassinado padrão para emitir certificados TLS para comunicações internas.
Para configurar as Operações de IoT do Azure com seu próprio emissor para comunicações internas, use as seguintes etapas antes de implantar uma instância em seu cluster:
Siga as etapas em Preparar seu cluster para configurar o cluster.
Instalar cert-manager. O Cert-manager gerencia certificados TLS.
Instalar trust-manager. Ao instalar o gerenciador de confiança, defina
trust namespacepara cert-manager. Por exemplo:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitO Trust-manager é usado para distribuir um pacote de confiança aos componentes.
Crie o namespace do Azure IoT Operations.
kubectl create namespace azure-iot-operationsImplante um emissor que funcione com o cert-manager. Para obter uma lista de todos os emissores suportados, veja emissores cert-manager.
O emissor pode ser do tipo
ClusterIssuerouIssuer. Se usarIssuer, o recurso do emissor deverá ser criado no namespace do Azure IoT Operations.Configure o pacote de confiança no namespace do Azure IoT Operations.
Para configurar o pacote de confiança, crie um ConfigMap no namespace do Azure IoT Operations. Coloque a parte da chave pública do seu certificado CA no mapa de configuração com um nome de chave de sua escolha.
Obtenha a parte da chave pública do seu certificado de Autoridade de Certificação. As etapas para adquirir a chave pública dependem do emissor escolhido.
Crie o ConfigMap. Por exemplo:
kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
Siga as etapas em Implantar operações do Azure IoT para implantar, com algumas alterações.
Adicione o parâmetro
--user-trustao preparar o cluster. Por exemplo:az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trustAdicione o parâmetro
--trust-settingscom as informações necessárias ao implantar o Azure IoT Operations. Por exemplo:az iot ops create --subscription <SUBSCRIPTION_ID> -g <RESOURCE_GROUP> --cluster <CLUSTER_NAME> --custom-location <CUSTOM_LOCATION> -n <INSTANCE_NAME> --sr-resource-id <SCHEMAREGISTRY_RESOURCE_ID> --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
Observação
O nome do local personalizado tem um comprimento máximo de 63 caracteres.
Gerenciar certificados para comunicações externas
As Operações do Azure IoT usam o Azure Key Vault como a solução de cofre gerenciado na nuvem e usam a extensão de Repositório de segredos do Azure Key Vault para Kubernetes para sincronizar os segredos da nuvem e armazená-los na borda como segredos do Kubernetes. Você adiciona os seus certificados ao Azure Key Vault como segredos e a extensão os sincroniza à borda como segredos do Kubernetes.
Configurar permissões do Azure Key Vault
Para usar a experiência de operações para criar segredos no cofre de chaves, o usuário requer permissões do Key Vault Secrets Officer no nível do recurso no Azure.
Em um ambiente de teste ou desenvolvimento, use as seguintes etapas para atribuir a função Key Vault Secrets Officer ao usuário no nível do grupo de recursos em que a instância de Operações IoT do Azure e a instância do Azure Key Vault são implantadas:
Para localizar o nome do grupo de recursos, acesse a interface do usuário da Web da experiência de operações , acesse a página Instâncias e localize sua instância de Operações de IoT do Azure. O nome do grupo de recursos é mostrado no campo Grupo de recursos.
Vá para o portal do Azure e vá para o grupo de recursos em que sua instância de Operações IoT do Azure e a instância do Azure Key Vault são implantadas.
Dica
Use a caixa de pesquisa na parte superior do portal do Azure para localizar rapidamente o grupo de recursos digitando o nome.
Selecione controle de acesso (IAM) no menu à esquerda. Em seguida, selecione + Adicionar > Adicionar atribuição de função.
Na guia Funções, selecione Key Vault Secrets Officer na lista de funções e, em seguida, selecione Avançar.
Na guia Membros, selecione Usuário, grupo ou entidade de serviço, Selecione Membros, selecione o usuário que você deseja atribuir a função de Oficial de Segredos do Key Vault e selecione Avançar.
Clique em Revisar + atribuir para concluir a atribuição de função.
Em um ambiente de produção, siga as práticas recomendadas para proteger o Azure Key Vault que você usa com operações de IoT do Azure. Para obter mais informações, consulte as práticas recomendadas para usar o Azure Key Vault.
Adicionar e usar certificados
Os conectores usam a experiência de gerenciamento de certificados para configurar a autenticação de aplicativo cliente para servidores externos. Para saber mais sobre como os conectores usam certificados para estabelecer confiança mútua com servidores externos, consulte a documentação de gerenciamento de certificados específica do conector.
Ao implantar Operações do Azure IoT com configurações seguras, você pode começar a adicionar certificados ao Azure Key Vault e sincronizá-los com o cluster Kubernetes a ser usado na lista de certificados confiáveis e repositórios de lista do Emissor para conexões externas.
Para gerenciar certificados para comunicações externas, siga estas etapas:
Acesse a experiência de Operações do Azure IoT e escolha seu site e a instância de Operações de IoT do Azure.
No painel de navegação esquerdo, selecione Dispositivos.
Clique em Gerenciar certificados e segredos.
Na página Certificados e Segredos, clique em Adicionar novo certificado.
Você pode adicionar um novo certificado de duas maneiras:
Carregar certificado: carrega um certificado que é adicionado como um segredo ao Azure Key Vault e sincronizado automaticamente com o cluster usando a extensão do Repositório secreto.
- Exiba os detalhes do certificado uma vez carregados para garantir que você tenha o certificado correto antes de adicionar ao Azure Key Vault e sincronizar com o cluster.
- Use um nome intuitivo para que você possa reconhecer qual segredo representa seu segredo no futuro.
- Selecione o repositório de certificados apropriado para o conector que usa o certificado. Por exemplo, lista de confiança do OPC UA.
Observação
Apenas carregar o certificado não adicionará o segredo ao Azure Key Vault e não sincronizará com o cluster, você deve selecionar Aplicar, para que as alterações sejam aplicadas.
Adicionar do Azure Key Vault: Adicionar um segredo existente do Azure Key Vault para ser sincronizado com o cluster.
Observação
Selecione o segredo que contém o certificado que você deseja sincronizar com o cluster. Selecionar um segredo que não é o certificado correto faz com que a conexão falhe.
Usando a exibição de lista, você pode gerenciar os certificados sincronizados. Você pode exibir todos os certificados sincronizados e qual repositório de certificados ele é sincronizado para:
Para saber mais sobre como os certificados de confiança são gerenciados para conectores específicos, consulte a documentação de gerenciamento de certificados específica do conector.
Você também pode excluir certificados sincronizados. Quando você exclui um certificado sincronizado, ele exclui apenas o certificado sincronizado do cluster kubernetes e não exclui a referência secreta contida do Azure Key Vault. Você deve excluir o segredo do certificado manualmente do cofre de chaves.