Condividi tramite


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. Usare il comando seguente:

        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": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "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 che mostra il riquadro per i criteri di accesso nella portale di Azure.

  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 che mostra un esempio di aggiunta di un'entità per un criterio di accesso.

    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 che mostra il pulsante per salvare un criterio di accesso.

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

    Screenshot che mostra il riquadro per la selezione di una chiave.

  7. Selezionare la versione corrente.

    Screenshot che mostra la casella per la selezione della versione corrente di una chiave.

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

    Screenshot che mostra la copia di un identificatore di chiave negli Appunti.

  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