Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
De forma predeterminada, Microsoft Azure usa claves generadas automáticamente para cifrar los discos del sistema operativo de las máquinas virtuales (VM) en un clúster de Red Hat OpenShift en Azure. Para mayor seguridad, puede cifrar los discos del sistema operativo mediante claves autoadministradas al implementar un clúster. Esta característica proporciona más control mediante el cifrado de datos confidenciales con claves administradas por el cliente.
Los clústeres con claves administradas por el cliente tienen habilitada una clase de almacenamiento predeterminada con sus claves. Por lo tanto, estas claves cifran los discos del sistema operativo y los discos de datos. Azure Key Vault almacena las claves administradas por el cliente. Para obtener más información sobre el uso de Key Vault para crear y mantener claves, consulte Azure Key Vault conceptos básicos.
Con el cifrado basado en host, los datos almacenados en el host de máquina virtual de las máquinas virtuales del nodo de Red Hat OpenShift en Azure se cifran en reposo. Estos datos fluyen cifrados a Azure Storage. El cifrado basado en host significa que los discos temporales se cifran en reposo mediante claves administradas por la plataforma.
La memoria caché de discos de datos y sistema operativo se cifra en reposo con claves administradas por la plataforma o claves administradas por el cliente. El tipo de claves depende del tipo de cifrado que establezca en esos discos. De forma predeterminada, cuando se usan Red Hat OpenShift en Azure, el sistema operativo y los discos de datos se cifran en reposo con claves administradas por la plataforma. Esta configuración predeterminada significa que las memorias caché de estos discos también se cifran de forma predeterminada en reposo con claves administradas por la plataforma.
Puede especificar sus propias claves administradas siguiendo los pasos de cifrado de la sección siguiente. Las claves que especifique en este paso también cifran la memoria caché de estos discos.
Limitación
Los clientes deben mantener el almacén de claves y el cifrado de disco establecidos en Azure. Si no se mantienen las claves, se interrumpen los clústeres de Red Hat OpenShift en Azure. Las máquinas virtuales dejan de funcionar y, como resultado, todo el clúster de Red Hat OpenShift en Azure deja de funcionar.
El equipo de ingeniería de Red Hat OpenShift en Azure no puede acceder a las claves. Por consiguiente, no pueden realizar copias de seguridad de las llaves, crear réplicas de ellas ni recuperarlas.
Para obtener más información sobre el uso de conjuntos de cifrado de disco para administrar las claves de cifrado, consulte Cifrado del lado servidor de Azure Disk Storage.
Prerrequisitos
Comprobación de los permisos. Debe tener permisos para crear un clúster de Red Hat OpenShift en Azure, un almacén de claves y un conjunto de cifrado de disco.
Confirme que tiene el rol de Key Vault Crypto Officer. Este rol tiene permisos para crear una clave.
Si tiene varias suscripciones a Azure, registre los proveedores de recursos. Para obtener más detalles sobre el registro, consulte Registro de los proveedores de recursos.
Confirme que tiene habilitada la función
EncryptionAtHosten su suscripción. Puede habilitarla ejecutando:az feature register --namespace Microsoft.Compute --name EncryptionAtHostPara comprobar el estado actual de la característica, ejecute lo siguiente:
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Creación de una instancia de Key Vault
Debe usar una instancia de Key Vault para almacenar las claves. Cree un nuevo almacén de claves con la protección contra purga habilitada. A continuación, cree una nueva clave en el almacén de claves para almacenar su propia clave personalizada.
Establecer variables de entorno:
export KEYVAULT_NAME=aro-enckv export KEYVAULT_KEY_NAME=aro-key export DISK_ENCRYPTION_SET_NAME=aro-des export LOCATION=<location-name> export RESOURCEGROUP=<resource-group-name>Cree una bóveda de claves
az keyvault create \ --name $KEYVAULT_NAME \ --resource-group $RESOURCEGROUP \ --location $LOCATION \ --enable-purge-protection trueNota:
Debe habilitar la protección contra la purga. Consulte Configurar el Azure Key Vault.
Opcional: dado que la protección de purga está habilitada, no puede volver a usar inmediatamente el nombre del almacén de claves después de la eliminación. Al añadir la especificación
--retention-days <NUMBER_OF_DAYS>, puede controlar durante cuánto tiempo el almacén permanece en estado de eliminación temporal. El valor predeterminado es 90 días, pero establecerlo en un valor inferior (mínimo 7 días) significa que puede reclamar el nombre más rápidamente.Cree una clave en el almacén de claves:
az keyvault key create \ --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --protection softwareEstablezca el ID del recurso del almacén de claves y las variables de la URL de la clave:
KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv) KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name $KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)
Creación de un conjunto de cifrado de disco
Use el conjunto de cifrado de disco Azure como punto de referencia para discos en clústeres de Red Hat OpenShift en Azure. Está conectado al almacén de claves que has creado en el paso anterior y obtiene las claves administradas por el cliente desde esa ubicación.
Cree el conjunto de cifrado de disco:
az disk-encryption-set create \ --name $DISK_ENCRYPTION_SET_NAME \ --location $LOCATION \ --resource-group $RESOURCEGROUP \ --source-vault $KEYVAULT_ID \ --key-url $KEYVAULT_KEY_URLEspecifique el identificador de recurso y las variables de identidad del conjunto de cifrado de disco:
DES_ID=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query 'id' -o tsv) DES_IDENTITY=$(az disk-encryption-set show --name $DISK_ENCRYPTION_SET_NAME --resource-group $RESOURCEGROUP --query "[identity.principalId]" -o tsv)
Concede permisos al conjunto de cifrado de disco para que pueda acceder al almacén de claves
Quiere que la identidad administrada del conjunto de cifrado de disco use la clave de cifrado. Asigne un rol integrado que proporcione los permisos de clave necesarios, como Key Vault usuario de cifrado de servicios criptográficos o Key Vault usuario criptográfico. Como alternativa, use un rol personalizado, siempre que incluya los permisos necesarios (wrapkey, unwrapkeyy get) para realizar operaciones de clave requeridas por conjuntos de cifrado de disco.
az role assignment create \
--assignee $DES_IDENTITY \
--role "Key Vault Crypto Service Encryption User" \
--scope $KEYVAULT_ID
Creación de un clúster de Red Hat OpenShift en Azure
Al crear un clúster, puede habilitar las claves administradas por el cliente especificando el conjunto de cifrado de disco. Utilice el parámetro --disk-encryption-set. Por ejemplo: --disk-encryption-set $DES_ID.
Para crear un clúster con una entidad de servicio, siga las instrucciones de Crear un clúster de Red Hat OpenShift en Azure.
Este es un ejemplo de creación de un clúster con el --disk-encryption-set parámetro :
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Nota:
Solo puede habilitar claves administradas por el cliente en clústeres existentes para nodos de trabajo, no nodos maestros. Es posible lograr esta configuración. Para obtener más información, consulte la documentación de Red Hat, incluida La habilitación de claves de cifrado administradas por el cliente para un conjunto de máquinas y la modificación de un conjunto de máquinas de proceso.
Para crear un clúster de Red Hat OpenShift en Azure con identidades administradas, antes de crear el clúster, debe conceder la machine-api identidad y la disk-csi-driver identidad. También debes conceder permisos al entidad de servicio propia de Red Hat OpenShift en Azure Microsoft.Compute/diskEncryptionSets/read para el conjunto de cifrado de disco.
Ejemplos de asignaciones de roles para la identidad machine-api, la identidad disk-csi-driver y la entidad de servicio propia de ARO:
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name disk-csi-driver --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID"
az role assignment create \
--assignee-object-id "$(az identity show --resource-group $RESOURCEGROUP --name machine-api --query principalId -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID
az role assignment create \
--assignee-object-id "$(az ad sp list --display-name "Azure Red Hat OpenShift RP" --query '[0].id' -o tsv)" \
--assignee-principal-type ServicePrincipal \
--role <ROLE> \
--scope $DES_ID
Después de crear el clúster de Red Hat OpenShift en Azure, todas las máquinas virtuales se cifran con las claves de cifrado administradas por el cliente.
Para comprobar que ha configurado las claves correctamente, ejecute los siguientes comandos:
Obtenga el nombre del grupo de recursos del clúster donde se encuentran las máquinas virtuales, los discos y otra infraestructura del clúster:
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)Compruebe que los discos tienen el conjunto de cifrado de disco correcto conectado:
az disk list --resource-group $CLUSTERRESOURCEGROUP --query '[].encryption'
El campo diskEncryptionSetId de la salida debe apuntar al conjunto de cifrado de disco que especificó al crear el clúster de Red Hat OpenShift en Azure.
Agregar compatibilidad con HSM administrado (mHSM) para claves administradas por el cliente y la aplicación de Azure Policy
También puede agregar compatibilidad con HSM administrado (mHSM) para claves administradas por el cliente y requerir y denegar determinados atributos de cifrado. Esta compatibilidad requiere cambios de API y Azure Policy.
Siga estos pasos para crear un clúster de Red Hat OpenShift en Azure con mHSM y claves administradas por el cliente:
Aprovisione y active un HSM administrado mediante el CLI de Azure.
Exportar variables de entorno desde el paso anterior:
export HSM_NAME=<hsm-name> export RESOURCE_GROUP=<resource-group>Habilite la protección de purga y la administración de claves a través de Azure Resource Manager:
az keyvault update-hsm \ --hsm-name $HSM_NAME \ --resource-group $RESOURCE_GROUP \ --enable-purge-protection true az keyvault setting update \ --hsm-name $HSM_NAME \ --name AllowKeyManagementOperationsThroughARM \ --value trueCompleta los pasos restantes para activar el mHSM: Activa tu HSM administrado.
Otorga a tu cuenta el rol
Managed HSM Crypto Userpara poder crear claves en el mHSM.oid=$(az ad signed-in-user show --query id -o tsv) az keyvault role assignment create \ --hsm-name $HSM_NAME \ --role "Managed HSM Crypto User" \ --assignee $oid \ --scope /keysCree una identidad administrada y concédale el
Managed HSM Crypto Service Encryption Userrol a través del mHSM.export UA_IDENTITY=<new-ua-identity>HSM_ID="https://${HSM_NAME}.managedhsm.azure.net" az identity create \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY IDENTITY_OBJECT_ID=$(az identity show \ --resource-group $RESOURCE_GROUP \ --name $UA_IDENTITY \ --query principalId -o tsv) az keyvault role assignment create \ --id "$HSM_ID" \ --role "Managed HSM Crypto Service Encryption User" \ --assignee-object-id "$IDENTITY_OBJECT_ID" \ --scope "/keys/byok-key"Cree un conjunto de cifrado de disco, teniendo en cuenta lo siguiente:
Establezca el tipo de cifrado en .
Encryption at-rest with a customer-managed key.Use la identidad asignada por el usuario que creó en el paso anterior.
Complete la asignación de roles antes de crear el conjunto de cifrado de disco.
Exportar variables de entorno desde el paso anterior:
export LOCATION=<yourLocation> export CLUSTER=<yourNewClusterName> export VIRTUAL_NETWORK=<yourVirtualNetwork> export KEYVAULT_NAME=<yourKeyvaultName> export KEYVAULT_KEY_NAME=byok-key export DISK_ENCRYPTION_SET_NAME=<yourDiskEncryptionSetName>Cree un clúster con el nuevo conjunto de cifrado de disco:
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCE_GROUP --query 'id' -o tsv) az aro create --resource-group $RESOURCE_GROUP \ --name $CLUSTER \ --vnet $VIRTUAL_NETWORK \ --master-subnet master-subnet \ --worker-subnet worker-subnet \ --disk-encryption-set $DES_IDUna vez que aparezca el clúster, confirme el cifrado:
az disk list -g $VIRTUAL_NETWORK --query "[].{DiskName:name, VM:managedBy, EncryptionType:encryption.type, DiskEncryptionSet:encryption.diskEncryptionSetId}" -o tablePara comprobar el cifrado, busque
EncryptionAtRestWithCustomerKeyen laEncryptionTypecolumna .