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


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

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

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

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

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

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

Примечание.

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

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

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

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

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

Для функции смены ключей Key Vault требуются разрешения на управление ключами. Назначьте роль Key Vault Crypto Officer для управления политикой ротации и вращением по запросу.

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

Примечание.

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

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

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

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

  • Срок действия: интервал окончания срока действия для ключа. Он задает дату окончания срока действия только что вращаемого ключа. Это не влияет на текущий ключ.
  • Включено или отключено: флаг для включения или отключения поворота ключа.
  • Типы поворотов:
    • Автоматическое продление в определенное время после создания (по умолчанию).
    • Автоматическое продление в заданный момент времени перед окончанием срока действия. При этом для политики смены нужно задать значение "Срок действия", а для ключа — "Дата окончания срока действия".
  • Время поворота: интервал поворота ключа. Минимальное значение — семь дней от создания и семи дней с момента истечения срока действия.
  • Время уведомления: интервал времени до события скорого истечения срока действия ключа для уведомления в 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)

Используйте команду Azure CLI az keyvault key rotate, чтобы произвести ротацию ключа.

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

Azure PowerShell

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

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

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

Вы можете настроить уведомление об истечении срока действия для ключа сетки событий почти на момент истечения срока действия. Если автоматическая смена не может использоваться, например при импорте ключа из локального устройства 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."
            }
        },
        "rotationTimeAfterCreate": {
            "defaultValue": "P18M",
            "type": "String",
            "metadata": {
                "description": "Time duration to trigger key rotation, for example, P30D, P1M, P2Y."
            }
        },
        "expiryTime": {
            "defaultValue": "P2Y",
            "type": "String",
            "metadata": {
                "description": "The expiry time for new key version, for example, P90D, P2M, P3Y."
            }
        },
        "notifyTime": {
            "defaultValue": "P30D",
            "type": "String",
            "metadata": {
                "description": "Near expiry Event Grid notification, for example, 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('rotationTimeAfterCreate')]",
                                "timeBeforeExpiry": ""
                            },
                            "action": {
                                "type": "Rotate"
                            }
                        },
                        {
                            "trigger": {
                                "timeBeforeExpiry": "[parameters('notifyTime')]"
                            },
                            "action": {
                                "type": "Notify"
                            }
                        }

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

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

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

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

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

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

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

Использование искусственного интеллекта для настройки политик смены ключей

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

I need to configure a key rotation policy for my Azure Key Vault key that's used for Azure Storage encryption. Help me create the rotation policy with these requirements:
- Key vault name: my-storage-kv
- Key name: storage-encryption-key
- Rotate the key every 180 days
- Send a notification 30 days before expiry
- Set key expiration to 2 years
Provide both Azure CLI commands and a JSON policy file I can use with the Azure CLI.

GitHub Copilot работает на ИИ, поэтому возможны неожиданности и ошибки. Дополнительные сведения см. в Часто задаваемые вопросы по Copilot.

Ресурсы