Conexión a Azure Resource Manager en el dispositivo Azure Stack Edge
SE APLICA A:Azure Stack Edge Pro con GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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.
Complete la configuración de red para el dispositivo Azure Stack Edge.
Tome nota de la dirección IP del dispositivo. Usará esta dirección IP más adelante.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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:
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
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.
Ejecute PowerShell como administrador. Debe tener acceso a la galería de PowerShell.
En primer lugar, compruebe que no hay ninguna versión existente de los módulos
AzureRM
yAz
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, veaPara 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
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:
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.
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.
Como referencia, utilice la siguiente imagen. Guarde el archivo hosts.
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.
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 comandoping
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.
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:
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...
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.
Llame a las API del dispositivo local para autenticar las conexiones a Azure Resource Manager.
Estas credenciales son para una cuenta de máquina local y se usan únicamente para el acceso a la API.
Puede conectarse mediante
login-AzAccount
o mediante el comandoConnect-AzAccount
.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.
Nombre de usuario - EdgeArmUser
Contraseña - establezca la contraseña para Azure Resource Manager y use esta contraseña para iniciar sesión.
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>
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.