Бөлісу құралы:


Шифрование защищенных ресурсов в Службе автоматизации Azure

служба автоматизации Azure защищает ресурсы, такие как учетные данные, сертификаты, подключения и зашифрованные переменные, используют различные уровни шифрования. Это помогает повысить безопасность этих активов. Кроме того, чтобы обеспечить более высокую безопасность и конфиденциальность кода клиента, модулей Runbook и скриптов DSC, также шифруются. Шифрование в служба автоматизации Azure следует двум моделям в зависимости от ключа верхнего уровня, используемого для шифрования:

  • С помощью ключей, управляемых Майкрософт
  • С помощью ключей, управляемых вами

Ключи, управляемые Майкрософт

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

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

Ключи, которыми управляете вы с помощью Key Vault

Для управления шифрованием защищенных ресурсов для учетной записи службы автоматизации можно использовать собственные ключи. Если ключ, управляемый клиентом, указан на уровне учетной записи службы автоматизации, он используется для защиты и контроля доступа к ключу шифрования учетной записи службы автоматизации. Последний, в свою очередь, используется для шифрования и расшифровки всех защищенных ресурсов. Ключи, управляемые клиентом, обеспечивают большую гибкость при создании, смене, отключении и отзыве контроля доступа, а также позволяют выполнять аудит ключей шифрования, используемых для защиты ресурсов.

Для хранения управляемых клиентом ключей используйте Azure Key Vault. Можно либо создать собственные ключи и хранить их в хранилище ключей, либо использовать API-интерфейсы Azure Key Vault для их генерации.

Включение Брандмауэра Azure для Azure Key Vault блокирует для этой службы доступ из модулей runbook службы автоматизации Azure. Доступ будет заблокирован даже в том случае, если задано исключение брандмауэра, разрешающее доверенные службы Майкрософт, так как служба автоматизации не входит в список таких служб. С включенным брандмауэром доступ возможен только с помощью гибридной рабочей роли Runbook и конечной точки службы для виртуальной сети. Однако при включении приватного канала для Key Vault служба автоматизации Azure теряет доступ к Key Vault. Даже если вы включите приватную ссылку для гибридной рабочей роли Runbook, она разрешает доступ только к службе служба автоматизации Azure, а не к Key Vault.

Дополнительные сведения об Azure Key Vault см. в статье Что такое Azure Key Vault?

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

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

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

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

Примечание.

Чтобы включить управляемые клиентом ключи, необходимо выполнить вызовы REST API службы автоматизации Azure с помощью API версии 2020-01-13-preview.

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

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

  • Хранилище Azure Key Vault, в котором включены свойства Обратимое удаление и Не очищать. Эти свойства необходимы для восстановления ключей в результате случайного удаления.
  • Для шифрования служба автоматизации Azure поддерживает только ключи RSA. Дополнительные сведения о ключах см. в статье Сведения о ключах Azure Key Vault, секретах и сертификатах.
  • Учетная запись службы автоматизации и хранилище ключей могут находиться в разных подписках, но должны находиться в одном клиенте Microsoft Entra.
  • При использовании PowerShell убедитесь, что установлен модуль Azure Az PowerShell. Сведения об установке или обновлении см. в разделе Установка модуля Azure Az PowerShell.

Создание и назначение нового назначаемого системой удостоверения для учетной записи службы автоматизации

Чтобы использовать управляемые клиентом ключи с учетной записью службы автоматизации Azure, последней необходимо пройти проверку подлинности в хранилище ключей, в котором хранятся управляемые клиентом ключи. Служба автоматизации Azure использует управляемые удостоверения, назначенные системой, для проверки подлинности учетной записи в Azure Key Vault. Дополнительные сведения об управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?

Использование PowerShell

Для изменения существующей учетной записи службы автоматизации Azure используйте командлет PowerShell Set-AzAutomationAccount. Параметр -AssignSystemIdentity создает и назначает новое назначаемое системой удостоверение для учетной записи службы автоматизации для использования с другими службами, такими как Azure Key Vault. Дополнительные сведения см. в разделах Что представляют собой управляемые удостоверения для ресурсов Azure и Об Azure Key Vault. Выполните следующий код.

# Revise variables with your actual values.
$resourceGroup = "ResourceGroupName"
$automationAccount = "AutomationAccountName"
$vaultName = "KeyVaultName"
$keyName = "KeyName"

Set-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount `
    -AssignSystemIdentity

Результат должен выглядеть следующим образом:

Output from Set-AzAutomationAccount cmdlet.

Получите PrincipalId для последующего использования. Выполните следующий код.

$principalID = (Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Identity.PrincipalId

$principalID

Использование REST

Настройте назначаемое системой управляемое удостоверение для учетной записи службы автоматизации Azure, используя следующий вызов REST API:

PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Текст запроса:

{ 
 "identity": 
 { 
  "type": "SystemAssigned" 
  } 
}

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

{
 "name": "automation-account-name",
 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
 ..
 "identity": {
    "type": "SystemAssigned",
    "principalId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
 },
..
}

Настройка политики доступа к Key Vault

После назначения учетной записи службы автоматизации Azure управляемого удостоверения, назначаемого системой, необходимо настроить доступ к хранилищу ключей, в котором хранятся управляемые клиентом ключи. Для доступа к управляемым клиентом ключам службе автоматизации Azure требуются разрешения на выполнение операций Get, Recover, WrapKey и UnwrapKey для удостоверения.

Использование PowerShell

Чтобы предоставить необходимые разрешения, используйте командлет PowerShell Set-AzKeyVaultAccessPolicy. Затем используйте командлет Add-AzKeyVaultKey, чтобы создать ключ в хранилище ключей. Выполните следующий код.

Set-AzKeyVaultAccessPolicy `
    -VaultName $vaultName `
    -ObjectId $principalID `
    -PermissionsToKeys Get, Recover, UnwrapKey, WrapKey

Add-AzKeyVaultKey `
    -VaultName $vaultName `
    -Name $keyName `
    -Destination 'Software'

Результат должен выглядеть следующим образом:

Output from Add-AzKeyVaultKey cmdlet.

Использование REST

Политику доступа можно задать с помощью следующего вызова REST API:

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/add?api-version=2018-02-14

Текст запроса:

{
  "properties": {
    "accessPolicies": [
      {
        "tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
        "objectId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "permissions": {
          "keys": [
            "get",
            "recover",
            "wrapKey",
            "unwrapKey"
          ],
          "secrets": [],
          "certificates": []
        }
      }
    ]
  }
}

Примечание.

В полях tenantId и objectId должны быть указаны значения identity.tenantId и identity.principalId соответственно, из ответа управляемого удостоверения для учетной записи службы автоматизации.

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

Если вы хотите настроить учетную запись службы автоматизации для использования управляемых клиентом ключей вместо ключей, управляемых корпорацией Майкрософт, выполните это изменение с помощью Azure PowerShell или шаблона Azure Resource Manager.

Использование PowerShell

Чтобы изменить конфигурацию учетной записи службы автоматизации для использования управляемых клиентом ключей, воспользуйтесь командлетом PowerShell Set-AzAutomationAccount.

$vaultURI = (Get-AzKeyVault -VaultName $vaultName).VaultUri
$keyVersion = (Get-AzKeyVaultKey -VaultName $vaultName -KeyName $keyName).Version

Set-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount `
    -AssignSystemIdentity `
    -KeyName $keyName `
    -KeyVaultUri $vaultURI `
    -KeyVersion $keyVersion `
    -KeyVaultEncryption 

Проверьте изменения, выполнив следующую команду:

(Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Encryption `
    |  ConvertTo-Json 

Результат должен выглядеть следующим образом:

Output from Get-AzAutomationAccount cmdlet.

Использование REST

Используйте следующий вызов REST API:

PATCH https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Текст запроса:

{
	"identity": {
	"type": "SystemAssigned"
	},
	"properties": {
		"encryption": {
			"keySource": "Microsoft.Keyvault",
			"keyvaultProperties": {
				"keyName": "sample-vault-key",
				"keyvaultUri": "https://sample-vault-key12.vault.azure.net",
				"keyVersion": "7c73556c521340209371eaf623cc099d"
			}
		}
	}
}

Пример ответа

{
  "name": "automation-account-name",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
  ..
  "properties": {
    ..
    "encryption": {
      "keyvaultProperties": {
         "keyName": "sample-vault-key",
          "keyvaultUri": "https://sample-vault-key12.vault.azure.net",
          "keyVersion": "7c73556c521340209371eaf623cc099d"
      },
      "keySource": "Microsoft.Keyvault"
    },
    ..
  }
}

Смена управляемого клиентом ключа

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

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

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

Чтобы отозвать доступ к управляемым клиентом ключам, используйте PowerShell или Azure CLI. Дополнительные сведения см. в разделе Azure Key Vault PowerShell или Azure Key Vault CLI. Отзыв доступа фактически блокирует доступ ко всем данным в учетной записи хранения, поскольку ключ шифрования становится недоступен для службы хранилища Azure.

Следующие шаги