Como girar segredos para centros de eventos no Azure Stack HubHow to rotate secrets for Event Hubs on Azure Stack Hub

Este artigo irá mostrar-lhe como rodar os segredos utilizados pelo fornecedor de recursos Event Hubs.This article will show you how to rotate the secrets used by the Event Hubs resource provider.

Descrição geral e pré-requisitosOverview and prerequisites

Nota

A rotação secreta para fornecedores de recursos de valor acrescentado só é suportada através do PowerShell.Secret rotation for value-add resource providers is currently only supported via PowerShell.

Tal como a infraestrutura Azure Stack Hub, os fornecedores de recursos de valor acrescentado utilizam segredos internos e externos.Like the Azure Stack Hub infrastructure, value-add resource providers use both internal and external secrets. Os segredos podem assumir várias formas, incluindo palavras-passe e chaves de encriptação mantidas por certificados X509.Secrets can take multiple forms, including passwords and the encryption keys maintained by X509 certificates. Como operador, é responsável por:As an operator, you're responsible for:

  • Fornecendo segredos externos atualizados, como um novo certificado TLS usado para garantir pontos finais do fornecedor de recursos.Providing updated external secrets, such as a new TLS certificate used to secure resource provider endpoints.
  • Gerir regularmente a rotação secreta do fornecedor de recursos.Managing resource provider secret rotation on a regular basis.

Em preparação para o processo de rotação:In preparation for the rotation process:

  1. Reveja os requisitos de certificado de infraestrutura de chaves públicas (PKI) do Azure Stack Hub para informações importantes antes de adquirir/renovar o certificado X509, incluindo detalhes sobre o formato PFX necessário.Review Azure Stack Hub public key infrastructure (PKI) certificate requirements for important prerequisite information before acquiring/renewing your X509 certificate, including details on the required PFX format. Reveja também os requisitos especificados na secção de certificados Opcionais PaaS,para o seu fornecedor específico de recursos de valor acrescentado.Also review the requirements specified in the Optional PaaS certificates section, for your specific value-add resource provider.

  2. Se ainda não o fez, instale o módulo PowerShell Az para O Azure Stack Hub antes de continuar.If you haven't already, Install PowerShell Az module for Azure Stack Hub before continuing. A versão 2.0.2 pré-visualização ou posterior é necessária para a rotação secreta do Azure Stack Hub.Version 2.0.2-preview or later is required for Azure Stack Hub secret rotation. Para obter mais informações, consulte Migrar de AzureRM para Azure PowerShell Az em Azure Stack Hub.For more information, see Migrate from AzureRM to Azure PowerShell Az in Azure Stack Hub.

Preparar um novo certificado TLSPrepare a new TLS certificate

Em seguida, crie ou renove o certificado TLS para assegurar os pontos finais do fornecedor de recursos de valor acrescentado:Next, create or renew your TLS certificate for securing the value-add resource provider endpoints:

  1. Complete os passos em Gerar pedidos de assinatura de certificado (RSE) para renovação de certificado para o seu fornecedor de recursos.Complete the steps in Generate certificate signing requests (CSRs) for certificate renewal for your resource provider. Aqui utiliza a ferramenta Azure Stack Hub Readiness Checker para criar a RSE.Here you use the Azure Stack Hub Readiness Checker tool to create the CSR. Certifique-se de executar o cmdlet correto para o seu fornecedor de recursos, no passo "Gerar pedidos de certificado para outros serviços Azure Stack Hub".Be sure to run the correct cmdlet for your resource provider, in the step "Generate certificate requests for other Azure Stack Hub services". Por New-AzsHubEventHubsCertificateSigningRequest exemplo, é usado para Centros de Eventos.For example New-AzsHubEventHubsCertificateSigningRequest is used for Event Hubs. Quando terminar, submete o gerado. ReQ arquivo para a sua Autoridade de Certificados (CA) para o novo certificado.When finished, you submit the generated .REQ file to your Certificate Authority (CA) for the new certificate.

  2. Assim que receber o seu ficheiro de certificado da AC, complete os passos nos certificados preparar para a implantação ou rotação.Once you've received your certificate file from the CA, complete the steps in Prepare certificates for deployment or rotation. Utilize novamente a ferramenta Verificador de Pronto-de-leitura para processar o ficheiro devolvido da AC.You use the Readiness Checker tool again, to process the file returned from the CA.

  3. Por fim, complete os passos nos certificados PKI Do Azure Stack Hub.Finally, complete the steps in Validate Azure Stack Hub PKI certificates. Utilize mais uma vez a ferramenta Verificador de Prontos para realizar testes de validação no seu novo certificado.You use the Readiness Checker tool once more, to perform validation tests on your new certificate.

Rotar segredosRotate secrets

Finalmente, determine as mais recentes propriedades de implementação do fornecedor de recursos e use-as para completar o processo de rotação secreta.Finally, determine the resource provider's latest deployment properties and use them to complete the secret rotation process.

Determinar propriedades de implantaçãoDetermine deployment properties

Os fornecedores de recursos são implantados no seu ambiente Azure Stack Hub como um pacote de produto com versão.Resource providers are deployed into your Azure Stack Hub environment as a versioned product package. Os pacotes são atribuídos a um iD de pacote único, no formato '<product-id>.<installed-version>' .Packages are assigned a unique package ID, in the format '<product-id>.<installed-version>'. Onde <product-id> está uma cadeia única representando o fornecedor de recursos, e representa uma versão <installed-version> específica.Where <product-id> is a unique string representing the resource provider, and <installed-version> represents a specific version. Os segredos associados a cada pacote estão armazenados no serviço Azure Stack Hub Key Vault.The secrets associated with each package are stored in the Azure Stack Hub Key Vault service.

Abra uma consola PowerShell elevada e complete os seguintes passos para determinar as propriedades necessárias para rodar os segredos do fornecedor de recursos:Open an elevated PowerShell console and complete the following steps to determine the properties required to rotate the resource provider's secrets:

  1. Inscreva-se no seu ambiente Azure Stack Hub utilizando as credenciais do seu operador.Sign in to your Azure Stack Hub environment using your operator credentials. Consulte Connect to Azure Stack Hub com PowerShell para o script de sinstrução PowerShell.See Connect to Azure Stack Hub with PowerShell for PowerShell sign-in script. Certifique-se de que utiliza os cmdlets PowerShell Az (em vez de AzureRM), e substitua todos os valores de espaço reservado, tais como URLs de ponto final e nome do inquilino do diretório.Be sure to use the PowerShell Az cmdlets (instead of AzureRM), and replace all placeholder values, such as endpoint URLs and directory tenant name.

  2. Executar o Get-AzsProductDeployment cmdlet para recuperar uma lista das mais recentes implementações do fornecedor de recursos.Run the Get-AzsProductDeployment cmdlet to retrieve a list of the latest resource provider deployments. A recolha devolvida "value" contém um elemento para cada fornecedor de recursos implantado.The returned "value" collection contains an element for each deployed resource provider. Encontre o fornecedor de recursos de interesse e tome nota dos valores para estes imóveis:Find the resource provider of interest and make note of the values for these properties:

    • "name" - contém o ID do produto fornecedor de recursos no segundo segmento do valor."name" - contains the resource provider product ID in the second segment of the value.
    • "properties"."deployment"."version" - contém o número de versão atualmente implantado."properties"."deployment"."version" - contains the currently deployed version number.

    No exemplo seguinte, note a implantação de RP do Event Hubs no primeiro elemento da coleção, que tem um ID de produto "microsoft.eventhub" de, e versão "1.2003.0.0" :In the following example, notice the Event Hubs RP deployment in the first element in the collection, which has a product ID of "microsoft.eventhub", and version "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. Construa o ID do pacote do fornecedor de recursos, concatenando o ID e a versão do produto fornecedor de recursos.Build the resource provider's package ID, by concatenating the resource provider product ID and version. Por exemplo, utilizando os valores derivados do passo anterior, o ID do pacote de RP do Event Hubs é microsoft.eventhub.1.2003.0.0 .For example, using the values derived in the previous step, the Event Hubs RP package ID is microsoft.eventhub.1.2003.0.0.

  4. Utilizando o ID do pacote derivado no passo anterior, corra Get-AzsProductSecret -PackageId para recuperar a lista de tipos secretos que estão a ser usados pelo fornecedor de recursos.Using the package ID derived in the previous step, run Get-AzsProductSecret -PackageId to retrieve the list of secret types being used by the resource provider. Na value recolha devolvida, encontre o elemento que contenha um valor "Certificate" para o "properties"."secretKind" imóvel.In the returned value collection, find the element containing a value of "Certificate" for the "properties"."secretKind" property. Este elemento contém propriedades para o segredo de certificado do RP.This element contains properties for the RP's certificate secret. Tome nota do nome atribuído a este segredo de certificado, que é identificado pelo último segmento do "name" imóvel, logo acima "properties" .Make note of the name assigned to this certificate secret, which is identified by the last segment of the "name" property, just above "properties".

    No exemplo seguinte, a coleção de segredos devolvida para o Event Hubs RP contém um "Certificate" segredo chamado aseh-ssl-gateway-pfx .In the following example, the secrets collection returned for the Event Hubs RP contains a "Certificate" secret named 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"
                                        }
                        },
                        ...
                    ]
    }
    

Rode os segredosRotate the secrets

  1. Utilize o Set-AzsProductSecret cmdlet para importar o seu novo certificado para o Key Vault, que será utilizado pelo processo de rotação.Use the Set-AzsProductSecret cmdlet to import your new certificate to Key Vault, which will be used by the rotation process. Substitua os valores de espaço reservado variável em conformidade antes de executar o script:Replace the variable placeholder values accordingly before running the script:

    Marcador de posiçãoPlaceholder DescriçãoDescription Valor de exemploExample value
    <product-id> O ID do produto da mais recente implementação do fornecedor de recursos.The product ID of the latest resource provider deployment. microsoft.eventhub
    <installed-version> A versão da mais recente implementação do fornecedor de recursos.The version of the latest resource provider deployment. 1.2003.0.0
    <cert-secret-name> O nome sob o qual o segredo do certificado está armazenado.The name under which the certificate secret is stored. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> O caminho para o seu arquivo PFX certificado.The path to your certificate PFX file. C:\dir\eh-cert-file.pfx
    <pfx-password> A palavra-passe atribuída ao seu certificado. Ficheiro PFX.The password assigned to your certificate .PFX file. 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. Finalmente, use o Invoke-AzsProductRotateSecretsAction cmdlet para rodar os segredos internos e externos:Finally, use the Invoke-AzsProductRotateSecretsAction cmdlet to rotate the internal and external secrets:

    Nota

    Leva aproximadamente 3,5 - 4 horas para completar o processo de rotação.It takes approximately 3.5 - 4 hours to complete the rotation process.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    Pode monitorizar o progresso da rotação secreta na consola PowerShell ou no portal do administrador selecionando o fornecedor de recursos no serviço Marketplace:You can monitor secret rotation progress in either the PowerShell console, or in the administrator portal by selecting the resource provider in the Marketplace service:

    secret-rotation-progresssecret-rotation-progress

Resolução de problemasTroubleshooting

A rotação secreta deve ser concluída com sucesso sem erros.Secret rotation should complete successfully without errors. Se experimentar alguma das seguintes condições no portal do administrador, abra um pedido de assistência de apoio:If you experience any of the following conditions in the administrator portal, open a support request for assistance:

  • Problemas de autenticação, incluindo problemas de ligação ao fornecedor de recursos do Event Hubs.Authentication issues, including problems connecting to the Event Hubs resource provider.
  • Não é possível atualizar o fornecedor de recursos ou editar parâmetros de configuração.Unable to upgrade resource provider, or edit configuration parameters.
  • As métricas de utilização não estão a aparecer.Usage metrics aren't showing.
  • As contas não estão a ser geradas.Bills aren't being generated.
  • Os reforços não estão a ocorrer.Backups aren't occurring.

Passos seguintesNext steps

Para mais detalhes sobre a rotação dos seus segredos de infraestrutura Azure Stack Hub, visite os segredos da Rotação no Azure Stack Hub.For details on rotating your Azure Stack Hub infrastructure secrets, visit Rotate secrets in Azure Stack Hub.