Chaves gerenciadas pelo cliente na Instância Gerenciada do Azure para Apache Cassandra

Na Instância Gerenciada do Azure para Apache Cassandra, você pode usar uma chave própria para criptografar os dados em disco. Este artigo descreve como implementar chaves gerenciadas pelo cliente com o Azure Key Vault.

Pré-requisitos

  • Configure um segredo usando o Azure Key Vault. Para obter mais informações, confira Sobre os segredos do Azure Key Vault.

  • Implante uma rede virtual no seu grupo de recursos.

  • Aplique a função Colaborador de Rede com a entidade de serviço do Azure Cosmos DB como membro. Use o seguinte 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>
    

    Aplicar a função apropriada à sua rede virtual ajuda você a evitar falhas ao implantar um cluster da Instância Gerenciada do Azure para Apache Cassandra. Para obter mais informações, confira Criar um cluster da Instância Gerenciada do Azure para Apache Cassandra usando a CLI do Azure.

Este artigo exige a CLI do Azure versão 2.30.0 ou posterior. Se você está usando o Azure Cloud Shell, a última versão já está instalada.

Criar um cluster com uma identidade atribuída pelo sistema

  1. Crie um cluster usando o comando a seguir. Substitua <subscriptionID>, <resourceGroupName>, <vnetName> e <subnetName> pelos valores apropriados.

    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. Obtenha as informações de identidade do cluster criado:

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

    A saída inclui uma seção de identidade como o exemplo a seguir. Copie o valor principalId para uso posterior.

      "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
      }
    
  3. No portal do Azure, navegue até o cofre de chaves e selecione Políticas de acesso. Em seguida, escolha Adicionar Política de Acesso para criar uma política de acesso para suas chaves.

    Captura de tela mostrando o painel das políticas de acesso no portal do Azure.

  4. Em Permissões de chave, selecione obter, encapsular e desencapsular. Marque a caixa Selecionar entidade de segurança para abrir o painel Entidade de segurança. Insira o valor principalId do cluster que você recuperou anteriormente e selecione o botão Selecionar. (No portal, você também pode procurar a ID da entidade de segurança do cluster pelo nome do cluster.)

    Captura de tela mostrando um exemplo de adição de uma entidade de segurança para uma política de acesso.

    Aviso

    Confirme se o cofre de chaves tem a proteção contra limpeza ativada. As implantações do datacenter falharão sem ela.

  5. Selecione Adicionar para adicionar a política de acesso e escolha Salvar.

    Captura de tela mostrando o botão para salvar uma política de acesso.

  6. Para obter o identificador de chave, selecione Chaves e escolha sua chave.

    Captura de tela mostrando o painel para selecionar uma chave.

  7. Selecione a versão atual.

    Captura de tela mostrando a caixa para selecionar a versão atual de uma chave.

  8. Salve o identificador de chave para uso posterior.

    Captura de tela mostrando a cópia de um identificador de chave para a área de transferência.

  9. Crie o datacenter substituindo <key identifier> pela mesma chave (o URI que você copiou na etapa anterior) para a criptografia de disco gerenciado (managed-disk-customer-key-uri) e armazenamento de backup (backup-storage-customer-key-uri). Use o mesmo valor para subnet que você usou 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
    

Você também pode atribuir uma identidade a um cluster existente sem informações de identidade:

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

Girar a chave

Para atualizar a chave, use este 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