Procedimiento para implementar una plantilla de ARM privada con un token de SAS

Cuando la plantilla de Azure Resource Manager (ARM) se encuentra en una cuenta de almacenamiento, puede restringir el acceso a la plantilla para evitar que se exponga públicamente. Para acceder a una plantilla protegida, cree un token de firma de acceso compartido (SAS) para la plantilla y proporcione ese token durante la implementación. En este artículo se explica cómo usar Azure PowerShell o la CLI de Azure para implementar de forma segura una plantilla de ARM con un token de SAS.

Encontrará información sobre cómo proteger y administrar el acceso a las plantillas de ARM privadas con instrucciones sobre cómo hacer lo siguiente:

  • Creación de una cuenta de almacenamiento con un contenedor protegido
  • Carga de una plantilla en la cuenta de almacenamiento
  • Provisión del token de SAS durante la implementación

Importante

En lugar de proteger la plantilla privada con un token de SAS, considere la posibilidad de usar especificaciones de plantilla. Con las especificaciones de plantilla, puede compartir sus plantillas con otros usuarios de su organización y administrar el acceso a las plantillas a través de RBAC de Azure.

Creación de una cuenta de almacenamiento con un contenedor protegido

El script siguiente crea una cuenta de almacenamiento y un contenedor con acceso público desactivado para la seguridad de la plantilla.

New-AzResourceGroup `
  -Name ExampleGroup `
  -Location "Central US"
New-AzStorageAccount `
  -ResourceGroupName ExampleGroup `
  -Name {your-unique-name} `
  -Type Standard_LRS `
  -Location "Central US"
Set-AzCurrentStorageAccount `
  -ResourceGroupName ExampleGroup `
  -Name {your-unique-name}
New-AzStorageContainer `
  -Name templates `
  -Permission Off

Carga de la plantilla privada a la cuenta de almacenamiento

Ahora puede cargar la plantilla en la cuenta de almacenamiento. Proporcione la ruta de acceso a la plantilla que quiere usar.

Set-AzStorageBlobContent `
  -Container templates `
  -File c:\Templates\azuredeploy.json

Provisión del token de SAS durante la implementación

Para implementar una plantilla privada en una cuenta de almacenamiento, genere un token de SAS e inclúyalo en el identificador URI de la plantilla. Establezca el tiempo de expiración con un margen suficiente para completar la implementación.

Importante

El blob que contiene la plantilla privada solo es accesible para el propietario de la cuenta. Sin embargo, cuando se crea un token de SAS para el blob, el blob es accesible para cualquier persona con ese URI. Si otro usuario intercepta el URI, ese usuario podrá tener acceso a la plantilla. Un token de SAS es una buena forma de limitar el acceso a las plantillas, pero no debe incluir datos confidenciales, como contraseñas, directamente en la plantilla.

# get the URI with the SAS token
$templateuri = New-AzStorageBlobSASToken `
  -Container templates `
  -Blob azuredeploy.json `
  -Permission r `
  -ExpiryTime (Get-Date).AddHours(2.0) -FullUri

# provide URI with SAS token during deployment
New-AzResourceGroupDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateUri $templateuri

Para obtener un ejemplo del uso de un token de SAS con plantillas vinculadas, consulte Uso de plantillas vinculadas con Azure Resource Manager.

Pasos siguientes