Share via


Conexión a Azure Resource Manager en el dispositivo Azure Stack Edge

SE APLICA A:Sí para Pro GPU SKUAzure Stack Edge Pro con GPUSí para Pro 2 SKUAzure Stack Edge Pro 2Sí para Pro R SKUAzure Stack Edge Pro RSí para Mini R SKUAzure Stack Edge Mini R

Azure Resource Manager proporciona una capa de administración que le permite crear, actualizar y eliminar recursos de su suscripción de Azure. El dispositivo Azure Stack Edge admite las mismas API de Azure Resource Manager para crear, actualizar y eliminar máquinas virtuales en una suscripción local. Esta compatibilidad le permite administrar el dispositivo de manera coherente con la nube.

En este tutorial se describe cómo conectarse a las API locales en el dispositivo Azure Stack Edge mediante Azure Resource Manager con Azure PowerShell.

Puntos de conexión en el dispositivo Azure Stack Edge

En la tabla siguiente se resumen los distintos puntos de conexión expuestos en el dispositivo, los protocolos admitidos y los puertos para acceder a esos puntos de conexión. En el artículo encontrará referencias a estos puntos de conexión.

# Punto de conexión Protocolos admitidos Puerto usado Se usa para
1. Azure Resource Manager https 443 Para conectarse a Azure Resource Manager para la automatización
2. Servicio de token de seguridad https 443 Para autenticarse mediante tokens de acceso y actualización
3. Blob* https 443 Para conectar con Blob Storage mediante REST

* La conexión al punto de conexión de Blob Storage no es necesaria para conectarse a Azure Resource Manager.

Conexión al flujo de trabajo de Azure Resource Manager

El proceso de conexión a las API locales del dispositivo mediante Azure Resource Manager requiere los pasos siguientes:

Núm. de paso Realice este paso ... .. en esta ubicación.
1. Configuración del dispositivo Azure Stack Edge Interfaz de usuario web local.
2. Creación e instalación de certificados Cliente de Windows/interfaz de usuario web local
3. Revisión y configuración de requisitos previos Cliente Windows
4. Configuración de Azure PowerShell en el cliente Cliente Windows
5. Modificación del archivo de host para la resolución de nombres de punto de conexión Cliente de Windows o servidor DNS
6. Comprobación de que se ha resuelto el nombre del punto de conexión Cliente Windows
7. Uso de cmdlets de Azure PowerShell para comprobar la conexión a Azure Resource Manager Cliente Windows

En las secciones siguientes se ofrece información detallada sobre cada uno de los pasos anteriores para conectarse a Azure Resource Manager.

Requisitos previos

Antes de empezar, asegúrese de que el cliente que usa para conectarse al dispositivo mediante Azure Resource Manager usa TLS 1.2. Para más información, vaya a Configuración TLS 1.2 en el cliente de Windows para acceder al dispositivo Azure Stack Edge.

Paso 1: Configuración del dispositivo Azure Stack Edge

Siga los pasos a continuación en la interfaz de usuario web local del dispositivo Azure Stack Edge.

  1. Complete la configuración de red para el dispositivo Azure Stack Edge.

    Página

    Tome nota de la dirección IP del dispositivo. Usará esta dirección IP más adelante.

  2. Configure el nombre del dispositivo y el dominio DNS en la página Dispositivo. Anote el nombre del dispositivo y el dominio DNS, ya que los necesitará más adelante.

    Página

    Importante

    El nombre del dispositivo, el dominio DNS se usará para crear los puntos de conexión que se exponen. Use los puntos de conexión de Azure Resource Manager y Blob de la página Dispositivo en la interfaz de usuario web local.

Paso 2: Creación e instalación de certificados

Los certificados aseguran que la comunicación sea de confianza. En el dispositivo Azure Stack Edge, se generan automáticamente los certificados de dispositivo, blob y Azure Resource Manager autofirmados. Opcionalmente, puede traer sus propios certificados blob y Azure Resource Manager firmado.

Cuando incorpore un certificado firmado de su propiedad, necesitará también la cadena de firma correspondiente. En el caso de la cadena de firma, Azure Resource Manager y los certificados de blob del dispositivo también se necesitan también los certificados correspondientes en la máquina cliente para autenticarse y comunicarse con el dispositivo.

Para conectarse a Azure Resource Manager, debe que crear u obtener los certificados de cadena y punto de conexión de firma, importar estos certificados en el cliente de Windows y, por último, cargar estos certificados en el dispositivo.

Creación de certificados

Solo para uso de prueba y desarrollo, puede usar Windows PowerShell para crear certificados en el sistema local. Al crear los certificados para el cliente, siga estas instrucciones:

  1. En primer lugar, tiene que crear un certificado raíz para la cadena de firma. Para más información, consulte los pasos para crear certificados de cadena de firma.

  2. A continuación, puede crear los certificados de punto de conexión para el blob y Azure Resource Manager (opcional). Puede obtener estos puntos de conexión de la página Dispositivo en la interfaz de usuario web local. Consulte los pasos para crear certificados de punto de conexión.

  3. Para todos estos certificados, asegúrese de que el nombre de sujeto y el nombre alternativo de sujeto cumplen las siguientes directrices:

    Tipo Nombre del firmante (SN) Nombre alternativo del firmante (SAN) Ejemplo de nombre de firmante
    Azure Resource Manager management.<Device name>.<Dns Domain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    management.mydevice1.microsoftdatabox.com
    Blob Storage* *.blob.<Device name>.<Dns Domain> *.blob.< Device name>.<Dns Domain> *.blob.mydevice1.microsoftdatabox.com
    Certificado único de varios SAN para ambos puntos de conexión <Device name>.<dnsdomain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    *.blob.<Device name>.<Dns Domain>
    mydevice1.microsoftdatabox.com

* Blob Storage no es necesario para conectarse a Azure Resource Manager. Se muestra aquí por si se crean cuentas de almacenamiento locales en el dispositivo.

Para más información sobre los certificados, vaya a Carga de certificados en el dispositivo e importación de certificados en los clientes que acceden al dispositivo.

Carga de certificados en el dispositivo

Los certificados creados en el paso anterior se encuentran en el almacén Personal de su cliente. Estos certificados tienen que exportarse en el cliente en archivos de formato adecuado que se puedan cargar en el dispositivo.

  1. El certificado raíz tiene que exportarse como un archivo de formato DER con la extensión de archivo .cer. Para obtener pasos detallados, consulte Exportación de certificados como un archivo de formato.cer.

  2. Los certificados de punto de conexión se tienen que exportar como archivos .pfx con claves privadas. Para obtener pasos detallados, consulte Exportación de certificados como un archivo .pfx con claves privadas.

  3. Los certificados raíz y de punto de conexión se cargan en el dispositivo con la opción + Agregar certificado de la página Certificados en la interfaz de usuario web local. Para cargar los certificados, siga los pasos descritos en Carga de certificados.

Importación de certificados en el cliente que ejecuta Azure PowerShell

El cliente de Windows en el que se invocan las API de Azure Resource Manager tiene que establecer confianza con el dispositivo. Para ello, los certificados creados en el paso anterior tienen que importarse en el cliente de Windows en el almacén de certificados adecuado.

  1. El certificado raíz que exportó como formato DER con extensión .cer debe importarse ahora en las entidades de certificación raíz de confianza en el sistema cliente. Para pasos detallados, consulte Importación de certificados en el almacén de entidades de certificación raíz de confianza.

  2. Los certificados de punto de conexión que exportó como .pfx tienen que exportarse como .cer. Este .cer se importa entonces en el almacén de certificados Personal en el sistema. Para obtener pasos detallados, consulte Importación de certificados en un almacén personal.

Paso 3: Instalación de PowerShell en el cliente

El cliente de Windows tiene que cumplir los siguientes requisitos previos:

  1. Ejecutar Windows PowerShell 5.1. Debe tener Windows PowerShell 5.1. Para comprobar la versión de PowerShell en el sistema, ejecute el siguiente cmdlet:

    $PSVersionTable.PSVersion
    

    Compare la versión principal y asegúrese de que sea 5.1 o posterior.

    Si tiene una versión obsoleta, consulte Actualizar la versión de Windows PowerShell existente.

    Si no tiene PowerShell 5.1, siga las instrucciones de Instalación de Windows PowerShell.

    A continuación, se muestra un ejemplo de salida:

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    Try the new cross-platform PowerShell https://aka.ms/pscore6
    PS C:\windows\system32> $PSVersionTable.PSVersion
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      19041  906
    
  2. Puede tener acceso a la Galería de PowerShell.

    Ejecute PowerShell como administrador. Compruebe que la versión de PowerShellGet es anterior a la 2.2.3. Además, confirme que PSGallery está registrado como repositorio.

    Install-Module PowerShellGet -MinimumVersion 2.2.3
    Import-Module -Name PackageManagement -ErrorAction Stop
    Get-PSRepository -Name "PSGallery"
    

    A continuación, se muestra un ejemplo de salida:

    PS C:\windows\system32> Install-Module PowerShellGet -MinimumVersion 2.2.3
    PS C:\windows\system32> Import-Module -Name PackageManagement -ErrorAction Stop
    PS C:\windows\system32> Get-PSRepository -Name "PSGallery"
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2
    

Si el repositorio no es de confianza o necesita más información, consulte Confirmación de la accesibilidad de la Galería de PowerShell.

Paso 4: Configuración de Azure PowerShell en el cliente

Instale los módulos de Azure PowerShell en el cliente que funcione con el dispositivo.

  1. Ejecute PowerShell como administrador. Debe tener acceso a la galería de PowerShell.

  2. En primer lugar, compruebe que no hay ninguna versión existente de los módulos AzureRM y Az en el cliente. Para comprobarlo, ejecute los siguientes comandos:

    # Check existing versions of AzureRM modules
    Get-InstalledModule -Name AzureRM -AllVersions
    
    # Check existing versions of Az modules
    Get-InstalledModule -Name Az -AllVersions
    

    Si hay versiones existentes, use el cmdlet Uninstall-Module para desinstalarlas. Para obtener más información, vea

  3. Para instalar los módulos Azure PowerShell necesarios desde el Galería de PowerShell, ejecute el siguiente comando:

    • Si el cliente usa PowerShell Core versión 7.0 y posteriores:

      # Install the Az.BootStrapper module. Select Yes when prompted to install NuGet.
      
      Install-Module -Name Az.BootStrapper
      
      # Install and import the API Version Profile into the current PowerShell session.
      
      Use-AzProfile -Profile 2020-09-01-hybrid -Force
      
      # Confirm the installation of PowerShell
      Get-Module -Name "Az*" -ListAvailable
      
    • Si el cliente usa PowerShell 5.1 o versiones posteriores:

      #Install the Az module version 1.10.0
      
      Install-Module -Name Az -RequiredVersion 1.10.0
      
  4. Asegúrese de que la versión correcta del módulo Az se ejecuta al final de la instalación.

    Si usó PowerShell 7 o posterior, la siguiente salida de ejemplo indica que los módulos Az versión 2.0.1 (o posterior) se instalaron correctamente.

    
    PS C:\windows\system32> Install-Module -Name Az.BootStrapper
    PS C:\windows\system32> Use-AzProfile -Profile 2020-09-01-hybrid -Force
    Loading Profile 2020-09-01-hybrid
    PS C:\windows\system32> Get-Module -Name "Az*" -ListAvailable
    

    Si usó PowerShell 5.1 o versiones posteriores, la salida de ejemplo siguiente indica que los módulos Az versión 1.10.0 se instalaron correctamente.

    PS C:\WINDOWS\system32> Get-InstalledModule -Name Az -AllVersions
    Version     Name     Repository     Description
    -------     ----     ----------     -----------
    1.10.0      Az       PSGallery      Mic...
    
    PS C:\WINDOWS\system32>
    

Paso 5: Modificación del archivo de host para la resolución de nombres de punto de conexión

Ahora agregará la dirección IP del dispositivo a:

  • El archivo de host en el cliente o
  • La configuración del servidor DNS

Importante

Se recomienda modificar la configuración del servidor DNS para la resolución de nombres del punto de conexión.

En el cliente de Windows que usa para conectarse al dispositivo, realice los pasos siguientes:

  1. Inicie el Bloc de notas como administrador y, a continuación, abra el archivo de hosts que se encuentra en C:\Windows\System32\Drivers\etc.

    Archivo hosts en el Explorador de Windows

  2. Agregue las entradas siguientes al archivo hosts reemplazando los valores por los adecuados para el dispositivo:

    <Device IP> login.<appliance name>.<DNS domain>
    <Device IP> management.<appliance name>.<DNS domain>
    <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
    

    Importante

    La entrada en el archivo de hosts debe coincidir exactamente con la proporcionada para conectarse a Azure Resource Manager en un paso posterior. Asegúrese de que la entrada de dominio DNS está en minúsculas. Para obtener los valores de <appliance name> y <DNS domain>, vaya a la página Dispositivo en la interfaz de usuario local del dispositivo.

    En un paso anterior, guardó la dirección IP del dispositivo desde la interfaz de usuario web local.

    La entrada login.<appliance name>.<DNS domain> es el punto de conexión del servicio de token de seguridad (STS). STS es el responsable de la creación, validación, renovación y cancelación de tokens de seguridad. El servicio de token de seguridad se usa para crear el token de acceso y el token de actualización que se usan para la comunicación continua entre el dispositivo y el cliente.

    El punto de conexión de Blob Storage es opcional al conectarse a Azure Resource Manager. Este punto de conexión es necesario al transferir datos a Azure a través de cuentas de almacenamiento.

  3. Como referencia, utilice la siguiente imagen. Guarde el archivo hosts.

    archivo hosts en el Bloc de notas

Paso 6: Comprobación de la resolución de nombres del punto de conexión en el cliente

Compruebe si el nombre del punto de conexión se resuelve en el cliente que está usando para conectarse al dispositivo.

  1. Puede usar la utilidad de línea de comandos ping.exe para comprobar que el nombre del punto de conexión está resuelto. Dada una dirección IP, el comando ping devuelve el nombre de host TCP/IP del equipo del que se realiza el seguimiento.

    Agregue el modificador -a a la línea de comandos como se muestra en el ejemplo siguiente. Si se devuelve el nombre de host, también se devolverá esta información potencialmente valiosa en la respuesta.

    Entrada de ping en el símbolo del sistema

Paso 7: Establecimiento del entorno de Azure Resource Manager

Establezca el entorno de Azure Resource Manager y compruebe que la comunicación de dispositivo a cliente mediante Azure Resource Manager funciona correctamente. Siga estos pasos para realizar esta comprobación:

  1. Use el cmdlet Add-AzEnvironment para asegurarse de que la comunicación a través de Azure Resource Manager funciona correctamente y de que las llamadas a la API pasan por el puerto dedicado para Azure Resource Manager: 443.

    El cmdlet Add-AzEnvironment agrega puntos de conexión y metadatos para permitir que los cmdlets de Azure Resource Manager se conecten con una nueva instancia de Azure Resource Manager.

    Importante

    La dirección URL del punto de conexión de Azure Resource Manager que proporcione en el siguiente cmdlet distingue mayúsculas de minúsculas. Asegúrese de que la dirección URL del punto de conexión está en minúsculas y coincide con lo que proporcionó en el archivo de hosts. Si el tipo mayúsculas y minúsculas no coincide, verá un error.

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>/"
    

    A continuación se muestra una salida de ejemplo:

    PS C:\WINDOWS\system32> Add-AzEnvironment -Name AzASE -ARMEndpoint "https://management.myasegpu.wdshcsso.com/"
    
    Name  Resource Manager Url                      ActiveDirectory Authority
    ----  --------------------                      -------------------------
    AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
    
  2. Establezca el entorno como Azure Stack Edge y el puerto que se usará para las llamadas de Azure Resource Manager como 443. El entorno se define de dos maneras:

    • Configure el entorno. Escriba el siguiente comando:

      Set-AzEnvironment -Name <Environment Name>
      

      Este es un ejemplo de salida.

      PS C:\WINDOWS\system32> Set-AzEnvironment -Name AzASE
      
      Name  Resource Manager Url                      ActiveDirectory Authority
      ----  --------------------                      -------------------------
      AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
      

      Para más información, vaya a Set-AzEnvironment.

    • Defina el entorno en línea para cada cmdlet que ejecute. Esto garantiza que todas las llamadas a la API pasan por el entorno correcto. De forma predeterminada, las llamadas pasarán por Azure público, pero quiere que pasen por el entorno que estableció para el dispositivo Azure Stack Edge.

    • Consulte más información sobre cómo cambiar los entornos Az.

  3. Llame a las API del dispositivo local para autenticar las conexiones a Azure Resource Manager.

    1. Estas credenciales son para una cuenta de máquina local y se usan únicamente para el acceso a la API.

    2. Puede conectarse mediante login-AzAccount o mediante el comando Connect-AzAccount.

      1. Para iniciar sesión, escriba el siguiente comando.

        $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        

        Use el identificador de inquilino c0257de7-538f-415c-993a-1b87a031879d, ya que en esta instancia está codificada de forma fija. Use el siguiente nombre de usuario y contraseña.

        Este es un ejemplo de salida de Connect-AzAccount:

        PS C:\windows\system32> $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        PS C:\windows\system32> $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        PS C:\windows\system32> Connect-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        
        Account       SubscriptionName   TenantId            Environment
        -------       ----------------   --------            -----------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzASE
        
        PS C:\windows\system32>
        

        Una manera alternativa de iniciar sesión es usar el cmdlet login-AzAccount.

        login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d

        Este es un ejemplo de salida.

        PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d
        
        Account               SubscriptionName              TenantId
        -------               ----------------              --------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a...
        
        PS C:\WINDOWS\system32>
        
  4. Para comprobar que la conexión al dispositivo funciona, use el comando Get-AzResource. Este comando debe devolver todos los recursos que existen localmente en el dispositivo.

    Este es un ejemplo de salida.

    PS C:\WINDOWS\system32> Get-AzResource
    
    Name              : aseimagestorageaccount
    ResourceGroupName : ase-image-resourcegroup
    ResourceType      : Microsoft.Storage/storageaccounts
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ase-image-resourcegroup/providers/Microsoft.Storage/storageac
                        counts/aseimagestorageaccount
    Tags              :
    
    Name              : myaselinuxvmimage1
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Compute/images
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Compute/images/myaselinuxvmimage1
    Tags              :
    
    Name              : ASEVNET
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Network/virtualNetworks
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET
    Tags              :
    
    PS C:\WINDOWS\system32>
    

Si le han surgido problemas con las conexiones de Azure Resource Manager, consulte Solución de problemas de Azure Resource Manager para obtener instrucciones.

Importante

La conexión a Azure Resource Manager expira cada 1,5 horas o si se reinicia el dispositivo Azure Stack Edge. Si esto ocurre, los cmdlets que ejecute, devolverán mensajes de error porque ya no está conectado a Azure. Tiene que volver a iniciar sesión.

Cambiar entornos

Es posible que tenga que cambiar entre dos entornos.

Ejecute el comando Disconnect-AzAccount para cambiar a otro AzEnvironment. Si usa Set-AzEnvironment y Login-AzAccount sin usar Disconnect-AzAccount, el entorno no se cambia.

En los siguientes ejemplos se muestra cómo cambiar entre dos entornos, AzASE1 y AzASE2.

En primer lugar, enumere todos los entornos existentes en el cliente.

PS C:\WINDOWS\system32> Get-AzEnvironment​
Name    Resource Manager Url     ActiveDirectory Authority​
----    --------------------      -------------------------​
AzureChinaCloud   https://management.chinacloudapi.cn/                 https://login.chinacloudapi.cn/​
AzureCloud        https://management.azure.com/                        https://login.microsoftonline.com/​
AzureGermanCloud  https://management.microsoftazure.de/                https://login.microsoftonline.de/​
AzDBE1            https://management.HVTG1T2-Test.microsoftdatabox.com https://login.hvtg1t2-test.microsoftdatabox.com/adfs/​
AzureUSGovernment https://management.usgovcloudapi.net/                https://login.microsoftonline.us/​
AzDBE2            https://management.CVV4PX2-Test.microsoftdatabox.com https://login.cvv4px2-test.microsoftdatabox.com/adfs/​

​ A continuación, obtenga el entorno al que está conectado actualmente mediante Azure Resource Manager.

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE2​
Subscription       : ...​
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}​

Antes de cambiar al otro entorno, debe desconectarse del actual.

PS C:\WINDOWS\system32> Disconnect-AzAccount​
​​
Id                    : EdgeArmUser@localhost​
Type                  : User​
Tenants               : {c0257de7-538f-415c-993a-1b87a031879d}​
AccessToken           :​
Credential            :​
TenantMap             : {}​
CertificateThumbprint :​
ExtendedProperties    : {[Subscriptions, ...], [Tenants, c0257de7-538f-415c-993a-1b87a031879d]}

Inicie sesión en el otro entorno. A continuación se muestra la salida de ejemplo.

PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId​
​
Account     SubscriptionName   TenantId        Environment​
-------     ----------------   --------        -----------​
EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzDBE1

​ Ejecute este cmdlet para confirmar el entorno al que está conectado.

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE1​
Subscription       : ...
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}

Ya ha cambiado al entorno deseado.