Управляемые клиентом ключи в 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, последняя версия уже установлена.
Создание кластера с удостоверением, назначаемого системой
Создайте кластер с помощью следующей команды. Замените
<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
Получите сведения об удостоверениях созданного кластера:
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" }
В портал Azure перейдите в хранилище ключей и выберите политики доступа. Затем выберите "Добавить политику доступа", чтобы создать политику доступа для ключей.
Для разрешений ключей выберите get, wrap и unwrap. Выберите поле "Выбор субъекта", чтобы открыть область "Субъект". Введите значение кластера
principalId
, полученное ранее, и нажмите кнопку "Выбрать ". (На портале можно также найти идентификатор субъекта кластера по имени кластера.)Предупреждение
Убедитесь, что в хранилище ключей включена защита от очистки. Развертывания центра обработки данных завершаются сбоем без него.
Нажмите кнопку "Добавить", чтобы добавить политику доступа, а затем нажмите кнопку "Сохранить".
Чтобы получить идентификатор ключа, выберите "Ключи" и выберите ключ.
Выберите текущую версию.
Сохраните идентификатор ключа для последующего использования.
Создайте центр обработки данных, заменив
<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