Otočení tajných kódů registru kontejneru v centru Azure Stack – modulární datové centrum (MDC)Rotate container registry secrets in Azure Stack Hub - Modular Data Center (MDC)

Vaši uživatelé centra Azure Stack můžou pro nasazení šablony registru kontejneru otáčet tajné klíče (certifikáty, uživatelské jméno a heslo).Your Azure Stack Hub users can rotate the secrets (certificates, username, and password) for a container registry template deployment. Můžete spustit skript, který naplní nové tajné hodnoty v Microsoft Azure Key Vault a znovu nasadí existující instanci šablony registru kontejneru.You can run a script to populate new secret values in Microsoft Azure Key Vault and redeploy the existing Container registry template instance. Střídání tajných kódů nevyžadují nové nasazení.Rotating secrets by themselves doesn't require a new deployment.

Předpoklady pro uživatelePrerequisites for the user

  • Uživatel bude muset mít nainstalované moduly PowerShellu Azure Stack hub.The user will need to have the Azure Stack Hub PowerShell modules installed. Další informace najdete v tématu instalace PowerShellu pro Azure Stack.For more information, see Install PowerShell for Azure Stack.

  • Získejte tajná klíčová okna pro šablonu registru kontejneru.Get the update secrets for the container registry template. Pro přístup k registru Docker můžete použít nový certifikát SSL nebo novou kombinaci uživatelského jména a hesla.You can use a new SSL certificate or a new username and password combination for accessing the Docker registry.

  • Získejte skripty, které se nacházejí v nástroji \registry\scripts po stažení souboru zip z úložiště GitHub msazurestackworkloads/azurestack-Galerie .Get the scripts found in \registry\scripts after downloading the zip file from the msazurestackworkloads/azurestack-gallery GitHub repository.

Import nových tajných kódů do Key VaultImport new secrets into Key Vault

Podle následujících pokynů nastavte nové tajné kódy v Key Vault.Follow the instructions below to set new secrets in Key Vault.

Nastavte aktualizované heslo uživatele registru pro existující uživatelské jméno.Set updated registry user password for existing username

  1. Otevřete příkazový řádek prostředí PowerShell se zvýšenými oprávněními a potom ho spusťte Import-Module .\\pre-reqs.ps1 ze složky skripty.Open an elevated PowerShell prompt and then run Import-Module .\\pre-reqs.ps1 from the scripts folder.

  2. Pokud chcete aktualizovat hodnotu stávajícího uživatele registru, spusťte rutinu:To update the value of the existing registry user, run the cmdlet:

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

    Například rutina vrátí následující výstup: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. Pokud chcete ověřit, jestli se pro tento záznam zadala nová hodnota, otevřete příkazový řádek PowerShellu se zvýšenými oprávněními a spusťte následující rutinu: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
    

    Například rutina vrátí následující výstup: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         : 
    

Nastavení nového uživatelského jména a hesla v registruSet new Registry username and password

  1. Otevřete příkazový řádek PowerShellu se zvýšenými oprávněními a Import-Module .\pre-reqs.ps1 ze složky skripty.Open an elevated PowerShell prompt and Import-Module .\pre-reqs.ps1 from the scripts folder.

  2. Pokud chcete vytvořit nový tajný klíč pro nové uživatelské jméno a heslo, otevřete příkazový řádek prostředí PowerShell se zvýšenými oprávněními a spusťte následující rutinu: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> 
    

    Například rutina vrátí následující výstup: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. Pokud chcete ověřit, jestli se vytvořil nový tajný klíč, otevřete příkazový řádek PowerShellu se zvýšenými oprávněními a spusťte následující rutinu: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>
    

    Například rutina vrátí následující výstup: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         : 
    

Důležité

Pokud vytváříte nový tajný klíč (kombinaci uživatelského jména a hesla), bude nutné odstranit starý Key Vault tajný klíč.If you are creating a new secret (username/password combination) you will need to delete the old Key Vault secret. Pokud znovu nasadíte stávající šablonu registru kontejnerů, aniž byste museli odstranit starý tajný klíč, budou platné kombinace původní a nové uživatelské jméno a heslo platné pro přihlášení do registru.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.

Aktualizuje certifikát SSL pro existující Key Vault tajný klíč.Update the SSL certificate for existing Key Vault secret

  1. Otevřete příkazový řádek prostředí PowerShell se zvýšenými oprávněními a spusťte následující rutinu: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
    

    Například rutina vrátí následující výstup: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. Hodnoty vytvořené touto funkcí budete používat při opětovném nasazení existující šablony registru kontejnerů.You will use the values produced by this function when redeploying the existing container registry template.

  3. Pokud chcete ověřit, jestli se vytvořila nová verze existujícího tajného kódu, otevřete příkazový řádek PowerShellu se zvýšenými oprávněními a spusťte následující rutinu: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>
    

    Například rutina vrátí následující výstup: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         : 
    

Nastavení nového certifikátu SSL pro šablonu registru kontejneruSet a new SSL certificate for the container registry template

  1. Otevřete příkazový řádek prostředí PowerShell se zvýšenými oprávněními a spusťte následující rutinu:Open an elevated PowerShell prompt, and run the following cmdlet:

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

    Například rutina vrátí následující výstup: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 
    

Znovu nasadit stávající šablonu registru kontejnerůRedeploy existing container registry template

  1. Otevřete portál Azure Stack hub User Portal.Open the Azure Stack Hub user portal.

  2. Přejděte do skupiny prostředků, kterou je nasazený virtuální počítač šablony registru kontejneru.Navigate to the resource group that the container registry template VM is deployed.

    Skupina prostředků

  3. Vyberte nasazení v části nasazení.Select the deployments under Deployments.

    Snímek obrazovky zobrazující stránku nasazení

  4. Při prvním střídání tajných klíčů vyberte původní nasazení.If rotating secrets for the first time, select the original deployment. Pokud se nejedná o první střídání tajných klíčů, vyberte nejnovější nasazení a pak vyberte znovu nasadit.If this isn't the first time rotating secrets, select the most recent deployment and then select Redeploy.

    Snímek obrazovky zobrazující stránku ' Přehled ' s vybranou akcí ' znovu nasadit '.

  5. V části nasadit šablonu řešení vyberte použít existující skupinu prostředků a vyberte skupinu prostředků, která se použila k původnímu nasazení šablony registru kontejneru.In Deploy Solution Template, select Use Existing Resource Group and select the resource group that was used to originally deploy the container registry template. Aby bylo opětovné nasazení úspěšné, musí používat stejnou skupinu prostředků.In order for a redeployment to be successful, it must use the same resource group.

    Nasadit šablonu řešení

  6. V parametrech ověřte, zda parametry odpovídají původnímu nasazení.In Parameters check that the parameters match the original deployment. Bude nutné přidat ID a tajný klíč objektu instančního objektu služby.The service principal client ID and service principal secret will need to be added.

    • Pokud pouze přenášíte uživatelské jméno a heslo pro službu registru, stačí pouze přidat hlavní parametry služby.If you're only rotating the username and password for the registry service, you just need to add the service principal parameters.

    • Pokud certifikát přenášíte, budete muset zadat nové hodnoty pro PFXKeyVaultSecretURL a PFXThumbprint, které byly vydány jako výstup z nastavení nových tajných klíčů.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.

    Snímek obrazovky, který zobrazuje okno parametry.

  7. Vyberte OK a pak vytvořit.Select OK and then Create. Opětovné nasazení bude pokračovat.The redeployment will proceed. Funkce registru budou během opětovného nasazení nadále fungovat.Registry functionality will continue to function during redeployment.

    • Pokud předáváte uživatelské jméno a heslo, budete po dokončení opětovného nasazení muset znovu provést ověření do registru.If you are rotating username and password, you will need to authenticate to the registry again once the redeployment is complete.

    • Pokud certifikát předáváte, neměli byste mít vliv na přístup k registru.If you are rotating the certificate, you shouldn't experience any loss of access to the registry. To předpokládá, že používáte certifikát od poskytovatele důvěryhodného certifikátu.This assumes you are using a certificate from a trusted cert provider. Pokud používáte privátní certifikát, bude nutné tento certifikát nainstalovat na klienty, aby nedošlo ke ztrátě přístupu.If using a private certificate this certificate will need to be installed on clients to prevent loss of access.

Další krokyNext steps

Přehled Azure Stack MarketplaceAzure Stack Marketplace overview