Información general de las claves administradas por el cliente
Azure Managed Instance for Apache Cassandra proporciona la funcionalidad de cifrar datos en el disco mediante su propia clave. En este artículo se describe cómo implementar claves administradas por el cliente con Azure Key Vault.
Requisitos previos
- Configure un secreto mediante Azure Key Vault. Obtenga más información sobre Azure Key Vault aquí.
- Implemente una red virtual en el grupo de recursos y aplique el rol de colaborador de red con la entidad de servicio de Azure Cosmos DB como miembro. Consulte Creación de un clúster de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure para obtener más información.
Importante
Este artículo requiere la CLI de Azure 2.30.0 o una versión posterior. Si usa Azure Cloud Shell, la versión más reciente ya está instalada.
Creación de un clúster con una identidad asignada por el sistema
Nota
Como se indicó en los requisitos previos, para evitar errores de implementación, asegúrese de que ha aplicado el rol adecuado a la red virtual antes de intentar implementar un clúster de instancia administrada:
az role assignment create \
--assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
--role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
--scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
Cree un clúster en el que especifique el tipo de identidad como SystemAssigned y reemplace
<subscriptionID>,<resourceGroupName>,<vnetName>y<subnetName>por los valores adecuados:subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" cluster="thvankra-cmk-test-wcus" group="thvankra-nova-cmk-test" region="westcentralus" password="PlaceholderPassword" az managed-cassandra cluster create \ --identity-type SystemAssigned \ --resource-group $group \ --location $region \ --cluster-name $cluster \ --delegated-management-subnet-id $subnet \ --initial-cassandra-admin-password $passwordObtención de la información de identidad del clúster creado
az managed-cassandra cluster show -c $cluster -g $groupLa salida incluirá una sección de identidad como la siguiente. Copie
principalIdpara su uso posterior:"identity": { "principalId": "1aa51c7f-196a-4013-a656-1ccabfdc54e0", "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", "type": "SystemAssigned" }En Azure Key Vault, cree una directiva de acceso a las claves:
Asigne los permisos de clave
get,wrapyunwrapdel almacén de claves al valorprincipalIddel clúster recuperado anteriormente. En el portal, también puede buscar el identificador de la entidad de seguridad del clúster por el nombre del clúster:Advertencia
Asegúrese de que el almacén de claves tiene habilitada la protección de purga. Se producirá un error en las implementaciones del centro de datos si no la tienen.
Después de hacer clic en
addpara agregar la directiva de acceso, asegúrese de guardarla:Para obtener el identificador de clave, seleccione la clave:
Haga clic en la versión actual:
Guarde el identificador de clave para su uso posterior:
Cree el centro de datos. Para ello, reemplace
<key identifier>por la misma clave (el URI que copió en el paso anterior) para el cifrado del disco administrado (managed-disk-customer-key-uri) y del almacenamiento de copia de seguridad (backup-storage-customer-key-uri), como se muestra a continuación (use el mismo valor parasubnetque usó anteriormente):managedDiskKeyUri = "<key identifier>" backupStorageKeyUri = "<key identifier>" group="thvankra-nova-cmk-test" region="westcentralus" cluster="thvankra-cmk-test-2" dc="dc1" nodecount=3 subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" az managed-cassandra datacenter create \ --resource-group $group \ --cluster-name $cluster \ --data-center-name $dc \ --managed-disk-customer-key-uri $managedDiskKeyUri \ --backup-storage-customer-key-uri $backupStorageKeyUri \ --node-count $nodecount \ --delegated-subnet-id $subnet \ --data-center-location $region \ --sku Standard_DS14_v2Se puede asignar una identidad a un clúster existente sin información de identidad, como se muestra a continuación:
az managed-cassandra cluster update --identity-type SystemAssigned -g $group -c $cluster
Rotación de la clave
A continuación se muestra el comando para actualizar la clave:
managedDiskKeyUri = "<key identifier>" backupStorageKeyUri = "<key identifier>" az managed-cassandra datacenter update \ --resource-group $group \ --cluster-name $cluster \ --data-center-name $dc \ --managed-disk-customer-key-uri $managedDiskKeyUri \ --backup-storage-customer-key-uri $backupStorageKeyUri