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

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>
  1. 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 $password
    
  2. Obtención de la información de identidad del clúster creado

    az managed-cassandra cluster show -c $cluster -g $group
    

    La salida incluirá una sección de identidad como la siguiente. Copie principalId para su uso posterior:

      "identity": {
        "principalId": "1aa51c7f-196a-4013-a656-1ccabfdc54e0",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
      }
    
  3. En Azure Key Vault, cree una directiva de acceso a las claves:

    Directiva de acceso 1 de Key Vault

  4. Asigne los permisos de clave get, wrap y unwrap del almacén de claves al valor principalId del 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:

    Directiva de acceso 2 de Key Vault

    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.

  5. Después de hacer clic en add para agregar la directiva de acceso, asegúrese de guardarla:

    Guarde la directiva de acceso.

  6. Para obtener el identificador de clave, seleccione la clave:

    Seleccione la clave.

  7. Haga clic en la versión actual:

    Seleccione la versión actual.

  8. Guarde el identificador de clave para su uso posterior:

    Paso 2 del identificador de clave.

  9. 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 para subnet que 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_v2
    
  10. Se 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

  1. 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