Container register geheimen draaien in Azure Stack hub-modulair Data Center (MDC)Rotate container registry secrets in Azure Stack Hub - Modular Data Center (MDC)

Uw Azure Stack hub-gebruikers kunnen de geheimen (certificaten, gebruikers naam en wacht woord) voor de implementatie van een container register sjabloon draaien.Your Azure Stack Hub users can rotate the secrets (certificates, username, and password) for a container registry template deployment. U kunt een script uitvoeren om nieuwe geheime waarden in Microsoft Azure Key Vault te vullen en de bestaande instantie van het container register sjabloon opnieuw te implementeren .You can run a script to populate new secret values in Microsoft Azure Key Vault and redeploy the existing Container registry template instance. Voor het draaien van geheimen is geen nieuwe implementatie vereist.Rotating secrets by themselves doesn't require a new deployment.

Vereisten voor de gebruikerPrerequisites for the user

  • De gebruiker moet de Azure Stack hub Power shell-modules geïnstalleerd hebben.The user will need to have the Azure Stack Hub PowerShell modules installed. Zie Power shell voor Azure stack installerenvoor meer informatie.For more information, see Install PowerShell for Azure Stack.

  • Haal de update geheimen op voor de container register sjabloon.Get the update secrets for the container registry template. U kunt een nieuw SSL-certificaat of een nieuwe combi natie van gebruikers naam en wacht woord gebruiken voor toegang tot het docker-REGI ster.You can use a new SSL certificate or a new username and password combination for accessing the Docker registry.

  • Down load de scripts in \registry\scripts na het downloaden van het zip-bestand uit de msazurestackworkloads/azurestack-galerie github- opslag plaats.Get the scripts found in \registry\scripts after downloading the zip file from the msazurestackworkloads/azurestack-gallery GitHub repository.

Nieuwe geheimen importeren in Key VaultImport new secrets into Key Vault

Volg de onderstaande instructies om nieuwe geheimen in Key Vault in te stellen.Follow the instructions below to set new secrets in Key Vault.

Een bijgewerkt gebruikers wachtwoord voor het REGI ster instellen voor een bestaande gebruikers naamSet updated registry user password for existing username

  1. Open een Power shell-prompt met verhoogde bevoegdheid en voer Import-Module .\\pre-reqs.ps1 deze uit vanuit de map scripts.Open an elevated PowerShell prompt and then run Import-Module .\\pre-reqs.ps1 from the scripts folder.

  2. Voer de cmdlet uit om de waarde van de bestaande register gebruiker bij te werken:To update the value of the existing registry user, run the cmdlet:

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

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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. Open een Power shell-prompt met verhoogde bevoegdheid en voer de volgende cmdlet uit om te controleren of er een nieuwe waarde is ingevoerd voor deze record: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
    

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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         : 
    

Nieuwe gebruikers naam en wacht woord voor REGI ster instellenSet new Registry username and password

  1. Open een Power shell-prompt met verhoogde bevoegdheid en Import-Module .\pre-reqs.ps1 vanuit de map scripts.Open an elevated PowerShell prompt and Import-Module .\pre-reqs.ps1 from the scripts folder.

  2. Als u een nieuw geheim wilt maken voor de nieuwe gebruikers naam en wacht woord, opent u een Power shell-prompt met verhoogde bevoegdheid en voert u de volgende cmdlet uit: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> 
    

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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. Als u wilt controleren of er een nieuw geheim is gemaakt, opent u een Power shell-prompt met verhoogde bevoegdheid en voert u de volgende cmdlet uit: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>
    

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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         : 
    

Belangrijk

Als u een nieuw geheim maakt (combi natie van gebruikers naam en wacht woord), moet u het oude Key Vault Secret verwijderen.If you are creating a new secret (username/password combination) you will need to delete the old Key Vault secret. Als u de bestaande container register sjabloon opnieuw implementeert zonder het oude geheim te verwijderen, zijn de oude en nieuwe gebruikers naam-en wachtwoord combinaties geldig voor aanmelding bij het REGI ster.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.

Het SSL-certificaat voor een bestaand Key Vault geheim bijwerkenUpdate the SSL certificate for existing Key Vault secret

  1. Open een Power shell-prompt met verhoogde bevoegdheid en voer de volgende cmdlet uit: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
    

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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. U gebruikt de waarden die door deze functie worden geproduceerd tijdens het opnieuw implementeren van de bestaande container register sjabloon.You will use the values produced by this function when redeploying the existing container registry template.

  3. Als u wilt controleren of er een nieuwe versie van het bestaande geheim is gemaakt, opent u een Power shell-prompt met verhoogde bevoegdheid en voert u de volgende cmdlet uit: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>
    

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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         : 
    

Een nieuw SSL-certificaat voor de container register sjabloon instellenSet a new SSL certificate for the container registry template

  1. Open een Power shell-prompt met verhoogde bevoegdheid en voer de volgende cmdlet uit:Open an elevated PowerShell prompt, and run the following cmdlet:

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

    De cmdlet retourneert bijvoorbeeld de volgende uitvoer: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 
    

Bestaande container register sjabloon opnieuw implementerenRedeploy existing container registry template

  1. Open de gebruikers portal van de Azure Stack hub.Open the Azure Stack Hub user portal.

  2. Navigeer naar de resource groep die de container Registry-sjabloon-VM wordt geïmplementeerd.Navigate to the resource group that the container registry template VM is deployed.

    Resourcegroep

  3. Selecteer de implementaties onder implementaties.Select the deployments under Deployments.

    Scherm opname van de pagina implementaties.

  4. Selecteer de oorspronkelijke implementatie als u de eerste keer een geheimen draait.If rotating secrets for the first time, select the original deployment. Als dit de eerste keer is dat u geheimen roteert, selecteert u de meest recente implementatie en selecteert u vervolgens opnieuw implementeren.If this isn't the first time rotating secrets, select the most recent deployment and then select Redeploy.

    Scherm opname waarin de pagina overzicht wordt weer gegeven waarop de actie opnieuw implementeren is geselecteerd.

  5. Selecteer in oplossings sjabloon implementeren de optie bestaande resource groep gebruiken en selecteer de resource groep die is gebruikt voor het oorspronkelijk implementeren van de container register sjabloon.In Deploy Solution Template, select Use Existing Resource Group and select the resource group that was used to originally deploy the container registry template. Voor een geslaagde implementatie moet deze dezelfde resource groep gebruiken.In order for a redeployment to be successful, it must use the same resource group.

    Oplossings sjabloon implementeren

  6. Controleer in para meters of de para meters overeenkomen met de oorspronkelijke implementatie.In Parameters check that the parameters match the original deployment. De client-ID van de Service-Principal en het Service-Principal-geheim moeten worden toegevoegd.The service principal client ID and service principal secret will need to be added.

    • Als u alleen de gebruikers naam en het wacht woord voor de register service roteert, hoeft u alleen de para meters voor de Service-Principal toe te voegen.If you're only rotating the username and password for the registry service, you just need to add the service principal parameters.

    • Als u het certificaat draait, moet u de nieuwe waarden invoeren voor de PFXKeyVaultSecretURL en PFXThumbprint die zijn uitgevoerd voor het instellen van de nieuwe geheimen.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.

    Scherm opname van het venster ' para meters '.

  7. Selecteer OK en vervolgens maken.Select OK and then Create. De implementatie wordt voortgezet.The redeployment will proceed. De register functionaliteit blijft functioneren tijdens het opnieuw implementeren.Registry functionality will continue to function during redeployment.

    • Als u de gebruikers naam en het wacht woord roteert, moet u zich opnieuw bij het REGI ster aanmelden zodra de implementatie is voltooid.If you are rotating username and password, you will need to authenticate to the registry again once the redeployment is complete.

    • Als u het certificaat draait, hebt u geen toegang tot het REGI ster.If you are rotating the certificate, you shouldn't experience any loss of access to the registry. Hierbij wordt ervan uitgegaan dat u een certificaat van een vertrouwde certificaat provider gebruikt.This assumes you are using a certificate from a trusted cert provider. Als u een persoonlijk certificaat gebruikt, moet dit certificaat worden geïnstalleerd op clients om verlies van toegang te voor komen.If using a private certificate this certificate will need to be installed on clients to prevent loss of access.

Volgende stappenNext steps

Overzicht van Azure Stack MarketplaceAzure Stack Marketplace overview