Chiavi gestite dal cliente in Azure Istanza gestita per Apache Cassandra

In Azure Istanza gestita per Apache Cassandra è possibile usare la propria chiave per crittografare i dati su disco. Questo articolo descrive come implementare chiavi gestite dal cliente usando Azure Key Vault.

Prerequisiti

  • Configurare un segreto usando Azure Key Vault. Per altre informazioni, vedere Informazioni sui segreti di Azure Key Vault.

  • Distribuire una rete virtuale nel gruppo di risorse.

  • Applicare il ruolo Collaboratore rete all'entità servizio di Azure Cosmos DB come membro. Utilizza il seguente comando:

        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>
    

    L'applicazione del ruolo appropriato alla rete virtuale consente di evitare errori quando si distribuisce un Istanza gestita di Azure per il cluster Apache Cassandra. Per altre informazioni, vedere Creare un Istanza gestita di Azure per il cluster Apache Cassandra usando l'interfaccia della riga di comando di Azure.

Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.30.0 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare un cluster con un'identità assegnata dal sistema

  1. Creare un cluster usando il comando seguente. Sostituire <subscriptionID>, <resourceGroupName><vnetName>, e <subnetName> con i valori appropriati.

    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. Ottenere le informazioni sull'identità del cluster creato:

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

    L'output include una sezione Identity simile all'esempio seguente. Copiare il principalId valore per usarlo in un secondo momento.

      "identity": {
        "principalId": "1aa51c7f-196a-4013-a656-1ccabfdc54e0",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
      }
    
  3. Nella portale di Azure passare all'insieme di credenziali delle chiavi e selezionare Criteri di accesso. Selezionare quindi Aggiungi criteri di accesso per creare un criterio di accesso per le chiavi.

    Screenshot that shows the pane for access policies in the Azure portal.

  4. In Autorizzazioni chiave selezionare get, wrap e unwrap. Selezionare la casella Seleziona entità per aprire il riquadro Entità . Immettere il valore del principalId cluster recuperato in precedenza e quindi selezionare il pulsante Seleziona . Nel portale è anche possibile cercare l'ID entità del cluster in base al nome del cluster.

    Screenshot that shows an example of adding a principal for an access policy.

    Avviso

    Assicurarsi che l'insieme di credenziali delle chiavi abbia la protezione di ripulitura attivata. Le distribuzioni dei data center avranno esito negativo senza di esso.

  5. Selezionare Aggiungi per aggiungere i criteri di accesso e quindi selezionare Salva.

    Screenshot that shows the button for saving an access policy.

  6. Per ottenere l'identificatore di chiave, selezionare Chiavi e quindi selezionare la chiave.

    Screenshot that shows the pane for selecting a key.

  7. Selezionare la versione corrente.

    Screenshot that shows the box for selecting the current version of a key.

  8. Salvare l'identificatore della chiave per usarlo in un secondo momento.

    Screenshot that shows copying a key identifier to the clipboard.

  9. Creare il data center sostituendo <key identifier> con la stessa chiave (l'URI copiato nel passaggio precedente) per la crittografia del disco gestito (managed-disk-customer-key-uri) e dell'archiviazione di backup (backup-storage-customer-key-uri). Usare lo stesso valore usato subnet in precedenza.

    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
    

È anche possibile assegnare un'identità a un cluster esistente senza informazioni sull'identità:

az managed-cassandra cluster update --identity-type SystemAssigned -g $group -c $cluster

Ruotare la chiave

Per aggiornare la chiave, usare questo comando:

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