Поделиться через


Управляемые клиентом ключи в Azure Управляемый экземпляр для Apache Cassandra

В Azure Управляемый экземпляр для Apache Cassandra можно использовать собственный ключ для шифрования данных на диске. В этой статье описывается, как реализовать ключи, управляемые клиентом, с помощью Azure Key Vault.

Необходимые компоненты

  • Настройте секрет с помощью Azure Key Vault. Дополнительные сведения см. в разделе "Сведения о секретах Azure Key Vault".

  • Разверните виртуальную сеть в группе ресурсов.

  • Примените роль участника сети к субъекту-службе Azure Cosmos DB в качестве члена. Используйте следующую команду:

        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>
    

    Применение соответствующей роли к виртуальной сети помогает избежать сбоев при развертывании Управляемый экземпляр Azure для кластера Apache Cassandra. Дополнительные сведения см. в статье "Создание azure Управляемый экземпляр для кластера Apache Cassandra с помощью Azure CLI".

Для этой статьи требуется Azure CLI версии 2.30.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Создание кластера с удостоверением, назначаемого системой

  1. Создайте кластер с помощью следующей команды. Замените <subscriptionID>, <resourceGroupName>, <vnetName> и <subnetName> соответствующими значениями.

    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. Получите сведения об удостоверениях созданного кластера:

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

    Выходные данные включают раздел удостоверений, как показано в следующем примере. principalId Скопируйте значение для последующего использования.

      "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
      }
    
  3. В портал Azure перейдите в хранилище ключей и выберите политики доступа. Затем выберите "Добавить политику доступа", чтобы создать политику доступа для ключей.

    Снимок экрана: панель политик доступа в портал Azure.

  4. Для разрешений ключей выберите get, wrap и unwrap. Выберите поле "Выбор субъекта", чтобы открыть область "Субъект". Введите значение кластера principalId , полученное ранее, и нажмите кнопку "Выбрать ". (На портале можно также найти идентификатор субъекта кластера по имени кластера.)

    Снимок экрана: пример добавления субъекта для политики доступа.

    Предупреждение

    Убедитесь, что в хранилище ключей включена защита от очистки. Развертывания центра обработки данных завершаются сбоем без него.

  5. Нажмите кнопку "Добавить", чтобы добавить политику доступа, а затем нажмите кнопку "Сохранить".

    Снимок экрана: кнопка для сохранения политики доступа.

  6. Чтобы получить идентификатор ключа, выберите "Ключи" и выберите ключ.

    Снимок экрана, на котором показана область выбора ключа.

  7. Выберите текущую версию.

    Снимок экрана: поле для выбора текущей версии ключа.

  8. Сохраните идентификатор ключа для последующего использования.

    Снимок экрана: копирование идентификатора ключа в буфер обмена.

  9. Создайте центр обработки данных, заменив <key identifier> один и тот же ключ (URI, скопированный на предыдущем шаге) для шифрования управляемого диска (managed-disk-customer-key-uri) и хранилища резервных копий.backup-storage-customer-key-uri Используйте то же значение, subnet которое использовалось ранее.

    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
    

Вы также можете назначить удостоверение существующему кластеру без сведений об удостоверениях:

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

Смена ключа

Чтобы обновить ключ, используйте следующую команду:

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