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


Настройка автоматической смены криптографических ключей в Azure Key Vault

Обзор

Автоматическая смена криптографических ключей в Key Vault позволяет пользователям настроить Key Vault для автоматического создания версии ключа с указанной частотой. Чтобы настроить смену, вы можете использовать политику смены ключей, которую можно определить для каждого отдельного ключа.

Мы рекомендуем менять ключи шифрования по меньшей мере каждые два года в соответствии с криптографическими передовыми практиками.

Дополнительные сведения об управлении версиями объектов в Key Vault см. в разделе Объекты, идентификаторы и управление версиями в Key Vault.

Интеграция со службами Azure

Эта функция обеспечивает полностью автоматическое управление ротацией ключей шифрования для данных в состоянии покоя для служб Azure с ключами, управляемыми клиентами (CMK), которые хранятся в Azure Key Vault. См. соответствующую документацию по службе Azure, чтобы узнать, поддерживает ли служба полную смену.

Дополнительные сведения о шифровании данных в Azure см. в следующих статьях:

Ценообразование

За запланированную смену ключей взимается дополнительная плата. Дополнительные сведения см. на странице ценообразования Azure Key Vault

Необходимые разрешения

Для использования функции смены ключей Key Vault необходимы права на управление ключами. Вы можете назначить роль "Key Vault Crypto Officer" (Специалист по шифрованию хранилища ключей), чтобы управлять политикой ротации и ротацией по запросу.

Дополнительные сведения об использовании модели разрешений RBAC Key Vault и назначении ролей Azure см. в статье "Использование Azure RBAC для управления доступом к ключам, сертификатам и секретам"

Примечание.

Если вы используете модель разрешений политик доступа, необходимо задать параметр "Поворот", "Задать политику поворота" и "Получить политику поворота" для управления политикой поворота ключей.

Политика смены ключей

Политика смены ключей позволяет пользователям настраивать смену и получать уведомления от Event Grid о приближении окончания срока действия ключа.

Параметры политики смены ключей:

  • Срок действия: интервал окончания срока действия для ключа. Используется, чтобы задать дату окончания срока действия для только что замененного ключа, Не влияет на текущий ключ.
  • Включено/отключено: флаг для включения или отключения ротации ключа.
  • Типы поворотов:
    • Автоматическое продление в указанное время после создания (по умолчанию).
    • Автоматическое продление в заданный момент времени перед окончанием срока действия. При этом для политики смены нужно задать значение "Срок действия", а для ключа — "Дата окончания срока действия".
  • Время смены: интервал смены ключа, минимальное значение — 7 дней от даты создания и 7 дней до окончания срока действия.
  • Время уведомления: интервал времени до события скорого истечения срока действия ключа для уведомления в Event Grid. Для политики смены требуется задать "Время истечения срока действия", а для ключа — "Дата окончания срока действия".

Это важно

Смена ключа позволяет создать новую версию существующего ключа с новыми ключевыми данными. Целевые службы должны использовать URI ключа без версии для автоматического обновления до самой последней версии ключа. Во избежание прерывания работы служб убедитесь, что решение для шифрования данных сохраняет URI с контролем версий с данными, ссылающимися на тот же материал ключа для операций шифрования и расшифровки, что и для упаковки и распаковки. В настоящее время все службы Azure используют этот шаблон для шифрования данных.

Конфигурация политики поворота

Настройка политики смены ключей

Настройте политику смены ключей во время их создания.

Настройка ротации во время создания ключа

Настройте политику ротации для существующих ключей.

Настройка ротации существующего ключа

Azure CLI (интерфейс командной строки Azure)

Сохраните политику смены ключей в файл. Пример политики смены ключей:

{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": "P18M",
        "timeBeforeExpiry": null
      },
      "action": {
        "type": "Rotate"
      }
    },
    {
      "trigger": {
        "timeBeforeExpiry": "P30D"
      },
      "action": {
        "type": "Notify"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P2Y"
  }
}

Настройте политику смены ключа, передав ранее сохраненный файл, с помощью команды az keyvault key rotation-policy update в Azure CLI.

az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>

Azure PowerShell

Установите политику ротации с помощью командлета Azure PowerShell Set-AzKeyVaultKeyRotationPolicy.

Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}

Вращение по запросу

Смену ключей можно выполнить вручную.

Портал

Щелкните "Сменить сейчас", чтобы запустить смену.

Поворот по запросу

Azure CLI (интерфейс командной строки Azure)

Для смены ключа используйте команду az keyvault key rotate в Azure CLI.

az keyvault key rotate --vault-name <vault-name> --name <key-name>

Azure PowerShell

Используйте командлет Invoke-AzKeyVaultKeyRotation в Azure PowerShell.

Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>

Настройка уведомления о скором окончании срока действия ключа

Настройка уведомления о скором истечении срока действия ключа в Event Grid. Если автоматическая смена не может использоваться, например при импорте ключа из локального устройства HSM, вы можете настроить уведомление о истечении срока действия в качестве напоминания о смене вручную или в качестве триггера для пользовательской автоматической смены с помощью интеграции с Сеткой событий. Вы можете настроить отправку оповещений за несколько дней, месяцев или лет до окончания срока, чтобы запустить событие окончания срока действия.

Настройка уведомления

Дополнительные сведения об уведомлениях Сетки событий в Key Vault см. в статье Azure Key Vault как источник Сетки событий.

Настройте ротацию ключей с помощью шаблона ARM

Также можно настроить политику смены ключей с помощью шаблонов ARM.

Примечание.

Для развертывания ключа через плоскость управления требуется роль "Key Vault Contributor" в Key Vault, настроенном с управлением доступом Azure RBAC.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaultName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key vault to be created."
            }
        },
        "keyName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key to be created."
            }
        },
        "rotatationTimeAfterCreate": {
            "defaultValue": "P18M",
            "type": "String",
            "metadata": {
                "description": "Time duration to trigger key rotation. i.e. P30D, P1M, P2Y"
            }
        },
        "expiryTime": {
            "defaultValue": "P2Y",
            "type": "String",
            "metadata": {
                "description": "The expiry time for new key version. i.e. P90D, P2M, P3Y"
            }
        },
        "notifyTime": {
            "defaultValue": "P30D",
            "type": "String",
            "metadata": {
                "description": "Near expiry Event Grid notification. i.e. P30D"
            }
        }

    },
    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults/keys",
            "apiVersion": "2021-06-01-preview",
            "name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
            "location": "[resourceGroup().location]",
            "properties": {
                "vaultName": "[parameters('vaultName')]",
                "kty": "RSA",
                "rotationPolicy": {
                    "lifetimeActions": [
                        {
                            "trigger": {
                                "timeAfterCreate": "[parameters('rotatationTimeAfterCreate')]",
                                "timeBeforeExpiry": ""
                            },
                            "action": {
                                "type": "Rotate"
                            }
                        },
                        {
                            "trigger": {
                                "timeBeforeExpiry": "[parameters('notifyTime')]"
                            },
                            "action": {
                                "type": "Notify"
                            }
                        }

                    ],
                    "attributes": {
                        "expiryTime": "[parameters('expiryTime')]"
                    }
                }
            }
        }
    ]
}

Настройка управления политикой смены ключей

Используя службу Политика Azure, вы можете управлять жизненным циклом ключей и убедиться, что все ключи настроены для смены в течение указанного количества дней.

Создание и назначение определения политики

  1. Перейдите к ресурсу политики.
  2. Выберите Назначения в разделе Создание на левой стороне страницы Политики Azure.
  3. Выберите " Назначить политику " в верхней части страницы. Эта кнопка откроется на странице назначения политики.
  4. Введите следующие данные:
  5. Заполните все дополнительные поля. Перейдите на вкладки, нажав кнопки "Назад " и "Далее " в нижней части страницы.
  6. Нажмите Проверить и создать.
  7. Нажмите кнопку Создать

После назначения встроенной политики может потребоваться до 24 часов для завершения проверки. После завершения сканирования вы сможете просмотреть результаты соответствия требованиям, как показано ниже.

Скриншот соблюдения политики ротации ключей.

Ресурсы