Configuración de claves administradas por el cliente para la cuenta de Azure Batch con Azure Key Vault e Identidad administrada
De forma predeterminada, Azure Batch usa claves administradas por la plataforma para cifrar todos los datos del cliente almacenados en el servicio Azure Batch, como certificados y metadatos de trabajos o tareas. Opcionalmente, puede usar sus propias claves, es decir, claves administradas por el cliente, para cifrar los datos almacenados en Azure Batch.
Las claves que proporcione deben generarse en Azure Key Vaulty se debe tener acceso a ellas con identidades administradas para recursos de Azure.
Hay dos tipos de identidades administradas: asignadas por el sistema y asignadas por el usuario.
Puede crear la cuenta de Batch con una identidad administrada asignada por el sistema o crear una identidad administrada asignada por el usuario independiente que tiene acceso a las claves administradas por el cliente. Revise la tabla de comparación para comprender las diferencias y considerar qué opción funciona mejor para su solución. Por ejemplo, si quiere usar la misma identidad administrada para tener acceso a varios recursos de Azure, se necesita una identidad administrada asignada por el usuario. Si no es así, es posible que una identidad administrada asignada por el sistema asociada a su cuenta de Batch sea suficiente. El uso de una identidad administrada asignada por el usuario también le ofrece la opción de aplicar claves administradas por el cliente en la creación de la cuenta de Batch, como se muestra a continuación.
Creación de una cuenta de Batch con la identidad administrada asignada por el sistema
Si no necesita una identidad administrada asignada por el usuario independiente, puede habilitar la identidad administrada asignada por el sistema al crear la cuenta de Batch.
Importante
Una identidad administrada asignada por el sistema creada para una cuenta de Batch para el cifrado de datos de cliente, tal y como se describe en este documento, no se puede usar como una identidad administrada asignada por el usuario en un grupo de Batch. Si desea usar la misma identidad administrada tanto en la cuenta de Batch como en el grupo de Batch, use en su lugar una identidad administrada asignada por el usuario común.
Azure portal
En Azure Portal, al crear cuentas de Batch, seleccione Asignado por el sistema en el tipo de identidad en la pestaña Opciones avanzadas.
Una vez creada la cuenta, puede encontrar un GUID único en el campo "Identity principal id" (Id. de entidad de seguridad de identidad") en la sección Propiedades. En Tipo de identidad se mostrará System assigned
.
Necesita este valor con el fin de conceder acceso a esta cuenta de Batch para Key Vault.
Azure CLI
Al crear una nueva cuenta de Batch, especifique SystemAssigned
para el parámetro --identity
.
resourceGroupName='myResourceGroup'
accountName='mybatchaccount'
az batch account create \
--name $accountName \
--resource-group $resourceGroupName \
--locations regionName='West US 2' \
--identity 'SystemAssigned'
Una vez creada la cuenta, puede comprobar que se ha habilitado la identidad administrada asignada por el sistema en esta cuenta. Asegúrese de anotar el valor PrincipalId
, ya que es necesario para conceder acceso a esta cuenta de Batch para Key Vault.
az batch account show \
--name $accountName \
--resource-group $resourceGroupName \
--query identity
Nota
La identidad administrada asignada por el sistema creada en una cuenta de Batch solo se usa para recuperar las claves administradas por el cliente desde Key Vault. Esta identidad no está disponible en grupos de Batch. Para usar una identidad administrada asignada por el usuario en un grupo, consulte Configuración de identidades administradas en grupos de Batch.
Crear una identidad administrada asignada por el usuario
Si lo prefiere, puede crear una identidad administrada asignada por el usuario que se puede usar para tener acceso a las claves administradas por el cliente.
Necesita el valor de Id. de cliente de esta identidad para tener acceso a Key Vault.
Configuración de la instancia de Azure Key Vault
La instancia de Azure Key Vault en la que se generan las claves debe crearse en el mismo inquilino que la cuenta de Batch. No es necesario que esté en el mismo grupo de recursos ni en la misma suscripción.
Crear una instancia de Azure Key Vault
Al crear una instancia de Azure Key Vault con claves administradas por el cliente para Azure Batch, asegúrese de que las opciones Eliminación temporal y Protección de purga están habilitadas.
Adición de una directiva de acceso a la instancia de Azure Key Vault
En Azure Portal, una vez creada la instancia de Key Vault, en Directiva de acceso bajo Configuración, agregue el acceso a la cuenta de Batch mediante la identidad administrada. En Permisos de clave, seleccione Obtener, Encapsular clave y Desencapsular clave.
En el campo Seleccionar, en Entidad de seguridad, rellene uno de los siguientes elementos:
- Para la identidad administrada asignada por el sistema: Escriba el valor de
principalId
que recuperó anteriormente o el nombre de la cuenta de Batch. - Para la identidad administrada asignada por el usuario: Escriba el id. de cliente que recuperó anteriormente o el nombre de la identidad administrada asignada por el usuario.
Generación de una clave en Azure Key Vault
En Azure Portal, vaya a la instancia de Key Vault en la sección clave y seleccione Generar/Importar. En Tipo de clave seleccione RSA
y en Tamaño de la clave RSA elija al menos 2048
bits. Los tipos de clave EC
no se admiten actualmente como una clave administrada por el cliente en una cuenta de Batch.
Una vez creada la clave, haga clic en la clave y la versión actual recién creadas, y copie el Identificador de clave en la sección Propiedades. Asegúrese de que en Operaciones permitidas, Encapsular clave y Desencapsular clave están marcadas.
Habilitación de claves administradas por el cliente en una cuenta de Batch
Ahora que ya se cumplen los requisitos previos, puede habilitar las claves administradas por el cliente en la cuenta de Batch.
Azure portal
En Azure Portal, vaya a la página de la cuenta de Batch. En la sección Cifrado, habilite Clave administrada por el cliente. Puede usar directamente el identificador de clave, o bien seleccionar el almacén de claves y, a continuación, hacer clic en Seleccione un almacén de claves y una clave.
Azure CLI
Una vez que se haya creado la cuenta de Batch con la identidad administrada asignada por el sistema y se haya concedido el acceso a Key Vault, actualice la cuenta de Batch con la dirección URL {Key Identifier}
bajo el parámetro keyVaultProperties
. Además, establezca --encryption-key-source
en Microsoft.KeyVault
.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-source Microsoft.KeyVault \
--encryption-key-identifier {YourKeyIdentifier}
Creación de una cuenta de Batch con identidad administrada asignada por el usuario y claves administradas por el cliente
Como ejemplo de uso del cliente .NET de administración de Batch, puede crear una cuenta de Batch que tiene una identidad administrada asignada por el usuario y claves administradas por el cliente.
string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";
var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);
var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS)
{
Encryption = new BatchAccountEncryptionConfiguration()
{
KeySource = BatchAccountKeySource.MicrosoftKeyVault,
KeyIdentifier = new Uri("Your Key Azure Resource Manager Resource ID"),
},
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = {
[new ResourceIdentifier("Your Identity Azure Resource Manager ResourceId")] = new UserAssignedIdentity(),
},
}
};
var lro = resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
BatchAccountResource batchAccount = lro.Value;
Actualización de la versión de la clave administrada por el cliente
Al crear una nueva versión de una clave, actualice la cuenta de Batch para que utilice la versión nueva. Siga estos pasos:
- Vaya a la cuenta de Batch en Azure Portal y muestre las opciones de Configuración de cifrado.
- Escriba el identificador URI de la nueva versión de la clave. Como alternativa, puede volver a seleccionar Key Vault y la clave para actualizar la versión.
- Guarde los cambios.
También puede usar la CLI de Azure para actualizar la versión.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourKeyIdentifierWithNewVersion}
Sugerencia
Puede hacer que las claves giren automáticamente mediante la creación de una directiva de giro de claves dentro de Key Vault. Al especificar un identificador de clave para la cuenta de Batch, use el identificador de clave sin versión para habilitar el giro automático con una directiva de giro válida. Para obtener más información, consulte Cómo configurar el giro automático de claves en Key Vault.
Uso de una clave diferente para el cifrado de Batch
Para cambiar la clave que se usa para el cifrado de Batch, siga estos pasos:
- Vaya a la cuenta de Batch y muestre las opciones de Configuración de cifrado.
- Escriba el identificador URI de la nueva clave. Otra opción es seleccionar Key Vault y elegir una clave nueva.
- Guarde los cambios.
También puede emplear la CLI de Azure para usar una clave diferente.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourNewKeyIdentifier}
Preguntas más frecuentes
- ¿Son compatibles las claves administradas por el cliente con las cuentas existentes de Batch? No. Las claves administradas por el cliente solo se admiten para las nuevas cuentas de Batch.
- ¿Puedo seleccionar tamaños de clave RSA mayores de 2048 bits? Sí, también se admiten los tamaños de clave RSA de
3072
y4096
bits. - ¿Qué operaciones hay disponibles después de la revocación de una clave administrada por el cliente? La única operación permitida es la eliminación de la cuenta si Batch pierde el acceso a la clave administrada por el cliente.
- ¿Cómo se debe restaurar el acceso a la cuenta de Batch si se elimina accidentalmente la clave Key Vault? Dado que la protección de purga y la eliminación temporal están habilitadas, puede restaurar las claves existentes. Para más información, consulte Recuperación de una instancia de Azure Key Vault.
- ¿Puedo deshabilitar claves administradas por el cliente? Puede volver a establecer el tipo de cifrado de la cuenta de Batch en "Clave administrada por Microsoft" en cualquier momento. Después, podrá eliminar o cambiar la clave.
- ¿Cómo puedo girar mis claves? Las claves administradas por el cliente no se giran automáticamente a menos que la clave no tenga versión con una directiva de giro de claves adecuada establecida en Key Vault. Para girar la clave de forma manual, actualice el identificador de clave con el que está asociada la cuenta.
- Después de restaurar el acceso, ¿cuánto tiempo tardará la cuenta de Batch en volver a funcionar? La cuenta puede tardar hasta 10 minutos en ser accesible después de restaurar el acceso.
- Mientras la cuenta de Batch no está disponible ¿qué sucede con mis recursos? Los grupos que estén activos cuando se pierda el acceso de Batch a la clave administrada por el cliente seguirán ejecutándose. Sin embargo, los nodos de estos grupos pasarán a un estado no disponible y las tareas dejarán de ejecutarse (y se volverán a poner en cola). Una vez restaurado el acceso, los nodos vuelven a estar disponibles y se reinician las tareas.
- ¿Este mecanismo de cifrado se aplica a los discos de VM de un grupo de Batch? No. En el caso de los grupos de configuración de Cloud Services (que están en desuso), no se aplica ningún cifrado para el sistema operativo y el disco temporal. En el caso de los grupos de configuración de máquina virtual, el sistema operativo y los discos de datos especificados se cifran con una clave administrada de la plataforma Microsoft de forma predeterminada. Actualmente, no puede especificar su propia clave para estos discos. Para cifrar el disco temporal de las VM de un grupo de Batch con una clave administrada de la plataforma Microsoft, debe habilitar la propiedad diskEncryptionConfiguration en el grupo de configuración de máquina virtual. En entornos altamente confidenciales, se recomienda habilitar el cifrado de disco temporal y evitar el almacenamiento de datos confidenciales en discos de datos y del sistema operativo. Para más información, consulte Creación de un grupo con el cifrado de disco habilitado.
- ¿Está disponible en los nodos de proceso la identidad administrada asignada por el sistema de la cuenta de Batch? No. La identidad administrada asignada por el sistema se usa actualmente solo para acceder a la clave administrada por el cliente en Azure Key Vault. Para usar una identidad administrada asignada por el usuario en nodos de proceso, consulte Configuración de identidades administradas en grupos de Batch.
Pasos siguientes
- Más información sobre los procedimientos recomendados de seguridad de Azure Batch.
- Obtenga más información sobre Azure Key Vault.