Como rodar segredos para Hubs de Eventos no Azure Stack Hub

Este artigo irá mostrar-lhe como rodar os segredos utilizados pelo fornecedor de recursos dos Hubs de Eventos.

Descrição geral e pré-requisitos

Nota

A rotação de segredos para fornecedores de recursos de valor acrescentado (RPs) é atualmente suportada apenas através do PowerShell. Além disso, tem de rodar proativamente segredos para RPs de valor acrescentado regularmente, uma vez que os alertas administrativos não são atualmente gerados.

Tal como a infraestrutura do Azure Stack Hub, os fornecedores de recursos de valor acrescentado utilizam segredos internos e externos. Os segredos podem assumir vários formulários, incluindo palavras-passe e as chaves de encriptação mantidas pelos certificados X509. Como operador, é responsável por:

  • Fornecer segredos externos atualizados, como um novo certificado TLS utilizado para proteger pontos finais do fornecedor de recursos.
  • Gerir a rotação de segredos do fornecedor de recursos regularmente.

Em preparação para o processo de rotação:

  1. Reveja os requisitos de certificado de infraestrutura de chaves públicas (PKI) do Azure Stack Hub para obter informações de pré-requisitos importantes antes de adquirir/renovar o certificado X509, incluindo detalhes sobre o formato PFX necessário. Reveja também os requisitos especificados na secção Certificados PaaS Opcionais para o seu fornecedor de recursos de valor acrescentado específico.

  2. Se ainda não o fez, instale o módulo do PowerShell Az para o Azure Stack Hub antes de continuar. A versão 2.0.2-preview ou posterior é necessária para a rotação secreta do Azure Stack Hub. Para obter mais informações, veja Migrar do AzureRM para o Azure PowerShell Az no Azure Stack Hub.

Preparar um novo certificado TLS

Em seguida, crie ou renove o certificado TLS para proteger os pontos finais do fornecedor de recursos de valor acrescentado:

  1. Conclua os passos em Gerar pedidos de assinatura de certificados (CSRs) para renovação de certificados para o seu fornecedor de recursos. Aqui, vai utilizar a ferramenta Verificador de Preparação do Azure Stack Hub para criar o CSR. Certifique-se de que executa o cmdlet correto para o seu fornecedor de recursos, no passo "Gerar pedidos de certificado para outros serviços do Azure Stack Hub". Por exemplo New-AzsHubEventHubsCertificateSigningRequest , é utilizado para Hubs de Eventos. Quando terminar, submeta o . Ficheiro REQ à Autoridade de Certificação (AC) para o novo certificado.

  2. Depois de receber o ficheiro de certificado da AC, conclua os passos em Preparar certificados para implementação ou rotação. Utilize novamente a ferramenta Verificador de Preparação para processar o ficheiro devolvido a partir da AC.

  3. Por fim, conclua os passos em Validar certificados PKI do Azure Stack Hub. Utilize a ferramenta Verificador de Preparação mais uma vez para realizar testes de validação no seu novo certificado.

Rodar segredos

Por fim, determine as propriedades de implementação mais recentes do fornecedor de recursos e utilize-as para concluir o processo de rotação de segredos.

Determinar as propriedades de implementação

Os fornecedores de recursos são implementados no ambiente do Azure Stack Hub como um pacote de produtos com versões. É atribuído um ID de pacote exclusivo aos pacotes no formato '<product-id>.<installed-version>'. Onde <product-id> é uma cadeia exclusiva que representa o fornecedor de recursos e <installed-version> representa uma versão específica. Os segredos associados a cada pacote são armazenados no serviço de Key Vault do Azure Stack Hub.

Abra uma consola elevada do PowerShell e conclua os seguintes passos para determinar as propriedades necessárias para rodar os segredos do fornecedor de recursos:

  1. Inicie sessão no ambiente do Azure Stack Hub com as credenciais do operador. Veja Ligar ao Azure Stack Hub com o script de início de sessão do PowerShell para PowerShell. Certifique-se de que utiliza os cmdlets do PowerShell Az (em vez do AzureRM) e substitui todos os valores de marcador de posição, como URLs de ponto final e nome do inquilino do diretório.

  2. Execute o Get-AzsProductDeployment cmdlet para obter uma lista das implementações mais recentes do fornecedor de recursos. A coleção devolvida "value" contém um elemento para cada fornecedor de recursos implementado. Localize o fornecedor de recursos de interesse e tome nota dos valores destas propriedades:

    • "name" - contém o ID de produto do fornecedor de recursos no segundo segmento do valor.
    • "properties"."deployment"."version" - contém o número de versão atualmente implementado.

    No exemplo seguinte, repare na implementação do RP dos Hubs de Eventos no primeiro elemento da coleção, que tem um ID de produto do e da "microsoft.eventhub"versão "1.2003.0.0":

    PS C:\WINDOWS\system32> Get-AzsProductDeployment -AsJson
    VERBOSE: GET https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 2656-char response, StatusCode = OK
    {
        "value":  [
                      {
                          "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments/microsoft.eventhub",
                          "name":  "global/microsoft.eventhub",
                          "type":  "Microsoft.Deployment.Admin/locations/productDeployments",
                          "properties":  {
                                             "status":  "DeploymentSucceeded",
                                             "subscriptionId":  "b37ae55a-a6c6-4474-ba97-81519412adf5",
                                             "deployment":  {
                                                                "version":  "1.2003.0.0",
                                                                "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                "parameters":  {
    
                                                                               }
                                                            },
                                             "lastSuccessfulDeployment":  {
                                                                              "version":  "1.2003.0.0",
                                                                              "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                              "parameters":  {
    
                                                                                             }
                                                                          },
                                             "provisioningState":  "Succeeded"
                                         }
                      },
                      {
                      ...
                      }
                  ]
    }
    
  3. Crie o ID do pacote do fornecedor de recursos ao concatenar o ID e a versão do produto do fornecedor de recursos. Por exemplo, com os valores derivados no passo anterior, o ID do pacote de RP dos Hubs de Eventos é microsoft.eventhub.1.2003.0.0.

  4. Com o ID do pacote derivado no passo anterior, execute Get-AzsProductSecret -PackageId para obter a lista de tipos secretos que estão a ser utilizados pelo fornecedor de recursos. Na coleção devolvida value , localize o elemento que contém um valor de "Certificate" para a "properties"."secretKind" propriedade. Este elemento contém propriedades para o segredo do certificado do RP. Anote o nome atribuído a este segredo de certificado, que é identificado pelo último segmento da "name" propriedade, imediatamente acima "properties"de .

    No exemplo seguinte, a coleção de segredos devolvida para o RP dos Hubs de Eventos contém um "Certificate" segredo com o nome aseh-ssl-gateway-pfx.

    PS C:\WINDOWS\system32> Get-AzsProductSecret -PackageId 'microsoft.eventhub.1.2003.0.0' -AsJson
    VERBOSE: GET
    https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 617-char response, StatusCode = OK
    {
        "value":  [
                        {
                            "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets/aseh-ssl-gateway-pfx",
                            "name":  "global/microsoft.eventhub.1.2003.0.0/aseh-ssl-gateway-pfx",
                            "type":  "Microsoft.Deployment.Admin/locations/productPackages/secrets",
                            "properties":  {
                                            "secretKind":  "Certificate",
                                            "description":  "Event Hubs gateway SSL certificate.",
                                            "expiresAfter":  "P730D",
                                            "secretDescriptor":  {
    
                                                                    },
                                            "secretState":  {
                                                                "status":  "Deployed",
                                                                "rotationStatus":  "None",
                                                                "expirationDate":  "2022-03-31T00:16:05.3068718Z"
                                                            },
                                            "provisioningState":  "Succeeded"
                                        }
                        },
                        ...
                    ]
    }
    

Rodar os segredos

  1. Utilize o cmdlet para importar o Set-AzsProductSecret novo certificado para Key Vault, que será utilizado pelo processo de rotação. Substitua os valores do marcador de posição da variável em conformidade antes de executar o script:

    Marcador de posição Descrição Valor de exemplo
    <product-id> O ID do produto da implementação mais recente do fornecedor de recursos. microsoft.eventhub
    <installed-version> A versão da implementação mais recente do fornecedor de recursos. 1.2003.0.0
    <cert-secret-name> O nome no qual o segredo do certificado é armazenado. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> O caminho para o ficheiro PFX do certificado. C:\dir\eh-cert-file.pfx
    <pfx-password> A palavra-passe atribuída ao certificado . Ficheiro PFX. strong@CertSecret6
    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Por fim, utilize o Invoke-AzsProductRotateSecretsAction cmdlet para rodar os segredos internos e externos:

    Nota

    Demora aproximadamente 3,5 a 4 horas a concluir o processo de rotação.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    Pode monitorizar o progresso da rotação de segredos na consola do PowerShell ou no portal de administrador ao selecionar o fornecedor de recursos no serviço Marketplace:

    secret-rotation-progress

Resolução de problemas

A rotação de segredos deve ser concluída com êxito sem erros. Se tiver alguma das seguintes condições no portal de administrador, abra um pedido de suporte para obter assistência:

  • Problemas de autenticação, incluindo problemas de ligação ao fornecedor de recursos dos Hubs de Eventos.
  • Não é possível atualizar o fornecedor de recursos ou editar parâmetros de configuração.
  • As métricas de utilização não estão a ser apresentadas.
  • As faturas não estão a ser geradas.
  • As cópias de segurança não estão a ocorrer.

Passos seguintes

Para obter detalhes sobre como rodar os segredos da infraestrutura do Azure Stack Hub, visite Rodar segredos no Azure Stack Hub.