Настройка автоматической смены криптографических ключей в 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 для управления доступом к ключам, сертификатам и секретам.

Примечание

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

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

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

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

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

Важно!

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

Конфигурация политики смены

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

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

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

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

Настройка смены для имеющегося ключа

Azure CLI

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

{
  "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

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

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

Смена по запросу

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

Портал

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

Смена по запросу

Azure CLI

Для смены ключа используйте команду 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>

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

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

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

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

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

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

Примечание

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

{
    "$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 часов. После завершения сканирования вы сможете просмотреть результаты соответствия требованиям, как показано ниже.

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

Ресурсы