Rotera behållar register hemligheter i Azure Stack Hub – modulärt Data Center (MDC)Rotate container registry secrets in Azure Stack Hub - Modular Data Center (MDC)

Azure Stack Hub-användare kan rotera hemligheter (certifikat, användar namn och lösen ord) för en distribution av behållar register mal len.Your Azure Stack Hub users can rotate the secrets (certificates, username, and password) for a container registry template deployment. Du kan köra ett skript för att fylla i nya hemliga värden i Microsoft Azure Key Vault och distribuera om den befintliga instansen för behållar register mal len.You can run a script to populate new secret values in Microsoft Azure Key Vault and redeploy the existing Container registry template instance. Att rotera hemligheterna behöver inte vara en ny distribution.Rotating secrets by themselves doesn't require a new deployment.

Krav för användarenPrerequisites for the user

  • Användaren måste ha PowerShell-modulerna för Azure Stack Hub installerade.The user will need to have the Azure Stack Hub PowerShell modules installed. Mer information finns i Installera PowerShell för Azure Stack.For more information, see Install PowerShell for Azure Stack.

  • Hämta uppdaterings hemligheterna för behållar register mal len.Get the update secrets for the container registry template. Du kan använda ett nytt SSL-certifikat eller en ny kombination av användar namn och lösen ord för att komma åt Docker-registret.You can use a new SSL certificate or a new username and password combination for accessing the Docker registry.

  • Hämta skripten som påträffades i \registry\scripts när du har laddat ned ZIP-filen från msazurestackworkloads/azurestack-Gallery GitHub- lagringsplatsen.Get the scripts found in \registry\scripts after downloading the zip file from the msazurestackworkloads/azurestack-gallery GitHub repository.

Importera nya hemligheter till Key VaultImport new secrets into Key Vault

Följ anvisningarna nedan om du vill ange nya hemligheter i Key Vault.Follow the instructions below to set new secrets in Key Vault.

Ange uppdaterat register användar lösen ord för befintligt användar namnSet updated registry user password for existing username

  1. Öppna en upphöjd PowerShell-prompt och kör sedan Import-Module .\\pre-reqs.ps1 från mappen skript.Open an elevated PowerShell prompt and then run Import-Module .\\pre-reqs.ps1 from the scripts folder.

  2. Om du vill uppdatera värdet för den befintliga register användaren kör du cmdleten:To update the value of the existing registry user, run the cmdlet:

    Set-RegistryAccessSecret -KeyVaultName newregkv `
        -RegistryUserName <username> `
        -RegistryUserPassword <newpassword> `
        -SkipExistCheck $true
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Set-RegistryAccessSecret -KeyVaultName newregkv `
        -RegistryUserName admin `
        -RegistryUserPassword password1 `
        -SkipExistCheck $true 
    
    Check if key vault secret name (admin) exists.
    Creating key vault secret name (admin) as it does not exist.
    
  3. Du kan kontrol lera att ett nytt värde har angetts för den här posten genom att öppna en upphöjd PowerShell-prompt och köra följande cmdlet:To validate that a new value has been entered for this record, open an elevated PowerShell prompt and run the following cmdlet:

    Get-AzureKeyVaultSecret -VaultName newregkv -Name admin -IncludeVersions
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Get-AzureKeyVaultSecret -VaultName newregkv -Name admin -IncludeVersions
    
    
    Vault Name   : newregkv
    Name         : admin
    Version      : 2a1495372c474cc890c888518f02b19f
    Id           : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/
                   admin/2a1495372c474cc890c888518f02b19f
    Enabled      : True
    Expires      : 
    Not Before   : 
    Created      : 12/18/2019 7:05:56 PM
    Updated      : 12/18/2019 7:05:56 PM
    Content Type : 
    Tags         : 
    
    Vault Name   : newregkv
    Name         : admin
    Version      : 3fd65c1719c74997984648de18a1fa0e
    Id           : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/
                   admin/3fd65c1719c74997984648de18a1fa0e
    Enabled      : True
    Expires      : 
    Not Before   : 
    Created      : 12/17/2019 5:05:56 AM
    Updated      : 12/17/2019 5:05:56 AM
    Content Type : user credentials
    Tags         : 
    

Ange nytt användar namn och lösen ord för registretSet new Registry username and password

  1. Öppna en upphöjd PowerShell-prompt och Import-Module .\pre-reqs.ps1 från mappen skript.Open an elevated PowerShell prompt and Import-Module .\pre-reqs.ps1 from the scripts folder.

  2. Om du vill skapa en ny hemlighet för det nya användar namnet och lösen ordet öppnar du en upphöjd PowerShell-prompt och kör följande cmdlet:To create a new secret for the new username and password, open an elevated PowerShell prompt and run the following cmdlet:

    Set-RegistryAccessSecret -KeyVaultName newregkv `
        -RegistryUserName <newusername> `
        -RegistryUserPassword <newpassword> 
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Set-RegistryAccessSecret -KeyVaultName newregkv `
        -RegistryUserName admin1 `
        -RegistryUserPassword password1
    
    Check if key vault secret name (admin1) exists.
    Creating key vault secret name (admin1) as it does not exist. 
    
  3. Du kan kontrol lera att en ny hemlighet har skapats genom att öppna en upphöjd PowerShell-prompt och köra följande cmdlet:To validate that a new secret has been created, open an elevated PowerShell prompt and run the following cmdlet:

    Get-AzureKeyVaultSecret -VaultName \<KeyVaultName> -Name \<username>
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Get-AzureKeyVaultSecret -VaultName newregkv -Name admin1
    
    
    Vault Name   : newregkv
    Name         : admin1
    Version      : 2ae9a7239f4044be82ca9d1e9b80e85a
    Id           : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/admin1/2ae9a7239f4044be82ca9d1e9b80e85a
    Enabled      : True
    Expires      : 
    Not Before   : 
    Created      : 12/18/2019 11:28:18 PM
    Updated      : 12/18/2019 11:28:18 PM
    Content Type : user credentials
    Tags         : 
    

Viktigt

Om du skapar en ny hemlighet (kombinationen av användar namn/lösen ord) måste du ta bort den gamla Key Vault hemligheten.If you are creating a new secret (username/password combination) you will need to delete the old Key Vault secret. Om du distribuerar om den befintliga behållar register mal len utan att ta bort den gamla hemligheten är både den gamla och nya kombinationen av användar namn och lösen ord giltiga för att logga in i registret.If you redeploy the existing container registry template without deleting the old secret both the old and new username and password combinations will be valid for logging into the registry.

Uppdatera SSL-certifikatet för befintlig Key Vault hemlighetUpdate the SSL certificate for existing Key Vault secret

  1. Öppna en upphöjd PowerShell-prompt och kör följande cmdlet:Open an elevated PowerShell prompt and run the following cmdlet:

    Set-CertificateSecret -KeyVaultName \<keyvaultname> `
     -CertificateSecretName \<originalsecretnameforcertificate> `
    Set-CertificateSecret -KeyVaultName <keyvaultname> `
        -CertificateSecretName <originalsecretnameforcertificate> `
        -CertificateFilePath <pathtonewcertificate> `
        -CertificatePassword <certificatepassword> `
        -SkipExistCheck $true
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Set-CertificateSecret -KeyVaultName newregkv `
        -CertificateSecretName containersecret `
        -CertificateFilePath C:\crinstall\shanghairegcertnew.pfx `
        -CertificatePassword <certificatepassword> `
        -SkipExistCheck $true
    Check if key vault secret name (containersecret) exists.
    Creating key vault secret name (containersecret) as it does not exist.
    ----------------------------------------------------------------
    PFX KeyVaultResourceId       : /subscriptions/997da68a-xxxx-xxxx-ad3d-ffeac81b02dc/resourceGroups/newregreg/providers/Microsoft.KeyVault/vaults/newregkv
    PFX KeyVaultSecretUrl        : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/containersecret/a07ece6b9914408e8f20c516e15b66c9
    PFX Certificate Thumbprint   : 31810AA7FEF1173188691FB3F47208E5389FBA61
    ---------------------------------------------------------------- 
    
  2. Du kommer att använda värdena som skapas av den här funktionen när du distribuerar om den befintliga behållar register mal len.You will use the values produced by this function when redeploying the existing container registry template.

  3. Du kan kontrol lera att en ny version av den befintliga hemligheten har skapats genom att öppna en upphöjd PowerShell-prompt och köra följande cmdlet:To validate that a new version of the existing secret was created, open an elevated PowerShell prompt and run the following cmdlet:

    Get-AzureKeyVaultSecret -VaultName <KeyVaultName> -Name <secretname>
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts> Get-AzureKeyVaultSecret -VaultName newregkv -Name containersecret -IncludeVersions
    
    
    Vault Name   : newregkv
    Name         : containersecret
    Version      : a07ece6b9914408e8f20c516e15b66c9
    Id           : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/containersecret/a07ece6b9914408e8f20c516e15b66c9
    Enabled      : True
    Expires      : 
    Not Before   : 
    Created      : 12/18/2019 11:46:28 PM
    Updated      : 12/18/2019 11:46:28 PM
    Content Type : 
    Tags         : 
    
    Vault Name   : newregkv
    Name         : containersecret
    Version      : 0199c7ec1d8d41bb9ddff0f39dca9931
    Id           : https://newregkv.vault.shanghai.azurestack.corp.microsoft.com:443/secrets/containersecret/0199c7ec1d8d41bb9ddff0f39dca9931
    Enabled      : True
    Expires      : 
    Not Before   : 
    Created      : 12/17/2019 5:06:03 AM
    Updated      : 12/17/2019 5:06:03 AM
    Content Type : pfx
    Tags         : 
    

Ange ett nytt SSL-certifikat för behållar register mal lenSet a new SSL certificate for the container registry template

  1. Öppna en upphöjd PowerShell-prompt och kör följande cmdlet:Open an elevated PowerShell prompt, and run the following cmdlet:

    Set-CertificateSecret -KeyVaultName <keyvaultname> `
        -CertificateSecretName <newsecretnameforcertificate> `
        -CertificateFilePath <pathtonewcertificate> `
        -CertificatePassword <certificatepassword>
    

    Till exempel returnerar cmdleten följande utdata:For example, the cmdlet returns the following output:

    PS C:\azurestack-gallery-master\registry\Scripts>    Set-CertificateSecret -KeyVaultName newregkv `
        -CertificateSecretName containersecret121719 `
        -CertificateFilePath C:\crinstall\shanghairegcertnew.pfx `
        -CertificatePassword <certificatepassword> 
    Check if key vault secret name (containersecret121719) exists.
    Creating key vault secret name (containersecret121719) as it does not exist.
    ----------------------------------------------------------------
    PFX KeyVaultResourceId       : /subscriptions/997da68a-xxxx-xxxx-ad3d-ffeac81b02dc/resourc
    eGroups/newregreg/providers/Microsoft.KeyVault/vaults/newregkv
    PFX KeyVaultSecretUrl        : https://newregkv.vault.shanghai.azurestack.corp.microsoft.c
    om:443/secrets/containersecret121719/bb2cfe4df7bc4fbe854a00799afa8566
    PFX Certificate Thumbprint   : 31810AA7FEF1173188691FB3F47208E5389FBA61 
    

Distribuera om befintlig mall för behållar registretRedeploy existing container registry template

  1. Öppna användar portalen för Azure Stack Hub.Open the Azure Stack Hub user portal.

  2. Navigera till resurs gruppen som VM-mallen för behållar registret har distribuerats till.Navigate to the resource group that the container registry template VM is deployed.

    Resursgrupp

  3. Välj distributioner under distributioner.Select the deployments under Deployments.

    Skärm bild som visar sidan distributioner.

  4. Om du roterar hemligheter för första gången väljer du den ursprungliga distributionen.If rotating secrets for the first time, select the original deployment. Om det inte är första gången du roterar hemligheter väljer du den senaste distributionen och väljer sedan distribuera om.If this isn't the first time rotating secrets, select the most recent deployment and then select Redeploy.

    Skärm bild som visar sidan "Översikt" där åtgärden distribuera om har valts.

  5. I mallen distribuera lösning väljer du Använd befintlig resurs grupp och väljer den resurs grupp som användes för att distribuera behållar register mal len ursprungligen.In Deploy Solution Template, select Use Existing Resource Group and select the resource group that was used to originally deploy the container registry template. För att en distribution ska lyckas måste den använda samma resurs grupp.In order for a redeployment to be successful, it must use the same resource group.

    Distribuera lösnings mal len

  6. I parametrar kontrollerar du att parametrarna matchar den ursprungliga distributionen.In Parameters check that the parameters match the original deployment. Tjänstens huvud namn för klient-ID och tjänstens huvud namn måste läggas till.The service principal client ID and service principal secret will need to be added.

    • Om du bara roterar användar namnet och lösen ordet för register tjänsten behöver du bara lägga till tjänstens huvud namns parametrar.If you're only rotating the username and password for the registry service, you just need to add the service principal parameters.

    • Om du roterar certifikatet måste du ange de nya värdena för PFXKeyVaultSecretURL och PFXThumbprint som har skapats från att ställa in nya hemligheter.If you're rotating the certificate, you'll need to input the new values for the PFXKeyVaultSecretURL and PFXThumbprint that were output from setting the new secrets.

    Skärm bild som visar fönstret Parameters.

  7. Välj OK och sedan skapa.Select OK and then Create. Omdistributionen fortsätter.The redeployment will proceed. Register funktionen kommer att fortsätta fungera under omdistributionen.Registry functionality will continue to function during redeployment.

    • Om du roterar användar namn och lösen ord måste du autentisera till registret igen när omdistributionen är klar.If you are rotating username and password, you will need to authenticate to the registry again once the redeployment is complete.

    • Om du roterar certifikatet bör du inte uppleva någon förlust av åtkomst till registret.If you are rotating the certificate, you shouldn't experience any loss of access to the registry. Detta förutsätter att du använder ett certifikat från en betrodd certifikat leverantör.This assumes you are using a certificate from a trusted cert provider. Om du använder ett privat certifikat måste det här certifikatet installeras på klienter för att förhindra att åtkomsten går förlorad.If using a private certificate this certificate will need to be installed on clients to prevent loss of access.

Nästa stegNext steps

Översikt över Azure Stack MarketplaceAzure Stack Marketplace overview