Versleuteling van beveiligde activa in Azure Automation

Azure Automation beveiligt assets zoals referenties, certificaten, verbindingen en versleutelde variabelen met verschillende versleutelingsniveaus. Dit helpt de beveiliging van deze assets te verbeteren. Bovendien worden ook versleuteld om meer beveiliging en privacy te garanderen voor de code van de klant, runbooks en DSC-scripts. Versleuteling in Azure Automation volgt twee modellen, afhankelijk van de sleutel op het hoogste niveau die wordt gebruikt voor versleuteling:

  • Door Microsoft beheerde sleutels gebruiken
  • Sleutels gebruiken die u beheert

Door Microsoft beheerde sleutels

Uw Azure Automation-account maakt standaard gebruik van door Microsoft beheerde sleutels.

Elke beveiligde asset wordt versleuteld en opgeslagen in Azure Automation met behulp van een unieke sleutel (gegevensversleutelingssleutel) die wordt gegenereerd voor elk Automation-account. Deze sleutels zelf worden versleuteld en opgeslagen in Azure Automation met behulp van nog een unieke sleutel die wordt gegenereerd voor elk account, een accountversleutelingssleutel (AEK) genoemd. Deze accountversleutelingssleutels zijn versleuteld en opgeslagen in Azure Automation met behulp van door Microsoft beheerde sleutels.

Sleutels die u beheert met Key Vault

U kunt versleuteling van beveiligde assets voor uw Automation-account beheren met uw eigen sleutels. Wanneer u een door de klant beheerde sleutel opgeeft op het niveau van het Automation-account, wordt die sleutel gebruikt om de toegang tot de accountversleutelingssleutel voor het Automation-account te beveiligen en te beheren. Deze sleutel wordt weer gebruikt om alle beveiligde assets te versleutelen en te ontsleutelen. Door de klant beheerde sleutels bieden meer flexibiliteit voor het maken, draaien, uitschakelen en intrekken van toegangsbeheer. U kunt ook de versleutelingssleutels controleren die worden gebruikt voor het beveiligen van uw beveiligde assets.

Gebruik Azure Key Vault om door de klant beheerde sleutels op te slaan. U kunt uw eigen sleutels maken en deze opslaan in een sleutelkluis of u kunt de Azure Key Vault API's gebruiken om sleutels te genereren.

Als u De Azure Firewall in Azure Key Vault inschakelt, blokkeert u de toegang vanuit Azure Automation-runbooks voor die service. Toegang wordt geblokkeerd, zelfs wanneer de firewall-uitzondering voor het toestaan van vertrouwde Microsoft-services is ingeschakeld, omdat Automation geen deel uitmaakt van de lijst met vertrouwde services. Met een ingeschakelde firewall kan alleen toegang worden gemaakt met behulp van een Hybrid Runbook Worker en een service-eindpunt voor een virtueel netwerk. Wanneer u echter de privékoppeling voor Key Vault inschakelt, verliest Azure Automation de toegang tot de Sleutelkluis. Zelfs als u een private link inschakelt voor Hybrid Runbook Worker, wordt alleen toegang tot de Azure Automation-service en niet tot de Key Vault toegestaan.

Zie Wat is Azure Key Vault? voor meer informatie over Azure Key Vault.

Gebruik van door de klant beheerde sleutels voor een Automation-account

Wanneer u versleuteling gebruikt met door de klant beheerde sleutels voor een Automation-account, verpakt Azure Automation de accountversleutelingssleutel met de door de klant beheerde sleutel in de bijbehorende sleutelkluis. Het inschakelen van door de klant beheerde sleutels heeft geen invloed op de prestaties en het account wordt onmiddellijk versleuteld met de nieuwe sleutel, zonder enige vertraging.

Een nieuw Automation-account wordt altijd versleuteld met door Microsoft beheerde sleutels. Het is niet mogelijk om door de klant beheerde sleutels in te schakelen op het moment dat het account wordt gemaakt. Door de klant beheerde sleutels worden opgeslagen in Azure Key Vault en de sleutelkluis moet worden ingericht met toegangsbeleid dat sleutelmachtigingen verleent aan de beheerde identiteit die is gekoppeld aan het Automation-account. De beheerde identiteit is alleen beschikbaar nadat het Automation-account is gemaakt.

Wanneer u de sleutel wijzigt die wordt gebruikt voor versleuteling van beveiligde azure Automation-assets, door door de klant beheerde sleutels in of uit te schakelen, de sleutelversie bij te werken of een andere sleutel op te geven, verandert de versleuteling van de accountversleutelingssleutel, maar hoeven de beveiligde assets in uw Azure Automation-account niet opnieuw te worden versleuteld.

Notitie

Als u door de klant beheerde sleutel wilt inschakelen met azure Automation REST API-aanroepen, moet u api-versie 2020-01-13-preview gebruiken.

Vereisten voor het gebruik van door de klant beheerde sleutels in Azure Automation

Voordat u door de klant beheerde sleutels voor een Automation-account inschakelt, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan:

  • Een Azure Key Vault waarvoor de eigenschappen Voorlopig verwijderen en Niet leegmaken zijn ingeschakeld. Deze eigenschappen zijn vereist om het herstel van sleutels mogelijk te maken als er onbedoelde verwijdering is.
  • Alleen RSA-sleutels worden ondersteund met Azure Automation-versleuteling. Zie Over Azure Key Vault-sleutels, -geheimen en -certificaten voor meer informatie over sleutels.
  • Het Automation-account en de sleutelkluis kunnen zich in verschillende abonnementen bevinden, maar moeten zich in dezelfde Microsoft Entra-tenant bevinden.
  • Wanneer u PowerShell gebruikt, controleert u of de Azure Az PowerShell-module is geïnstalleerd. Zie De Azure Az PowerShell-module installeren als u deze wilt installeren of upgraden.

Een nieuwe door het systeem toegewezen identiteit genereren en toewijzen voor een Automation-account

Als u door de klant beheerde sleutels wilt gebruiken met een Automation-account, moet uw Automation-account worden geverifieerd bij de sleutelkluis die door de klant beheerde sleutels opslaat. Azure Automation maakt gebruik van door het systeem toegewezen beheerde identiteiten om het account te verifiëren met Azure Key Vault. Zie Wat zijn beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten ?

PowerShell gebruiken

Gebruik de PowerShell-cmdlet Set-AzAutomationAccount om een bestaand Azure Automation-account te wijzigen. Met -AssignSystemIdentity de parameter wordt een nieuwe door het systeem toegewezen identiteit voor het Automation-account gegenereerd en toegewezen voor gebruik met andere services, zoals Azure Key Vault. Zie Wat zijn beheerde identiteiten voor Azure-resources enOver Azure Key Vault voor meer informatie. Voer de volgende code uit:

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

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

De uitvoer moet er als volgt uitzien:

Output from Set-AzAutomationAccount cmdlet.

Verkrijg het PrincipalId voor later gebruik. Voer de volgende code uit:

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

$principalID

REST gebruiken

Configureer een door het systeem toegewezen beheerde identiteit aan het Automation-account met behulp van de volgende REST API-aanroep:

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

Aanvraagtekst:

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

Door het systeem toegewezen identiteit voor het Automation-account wordt geretourneerd in een antwoord dat vergelijkbaar is met de volgende:

{
 "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"
 },
..
}

Configuratie van het Key Vault-toegangsbeleid

Zodra een door het systeem toegewezen beheerde identiteit is toegewezen aan het Automation-account, configureert u de toegang tot de sleutelkluis die door de klant beheerde sleutels opslaat. Voor Azure Automation zijn de bewerkingsmachtigingen Get, Recover, WrapKey en UnwrapKey vereist voor de identiteit om toegang te krijgen tot de door de klant beheerde sleutels.

PowerShell gebruiken

Gebruik de PowerShell-cmdlet Set-AzKeyVaultAccessPolicy om de benodigde machtigingen te verlenen. Gebruik vervolgens Add-AzKeyVaultKey om een sleutel in de sleutelkluis te maken. Voer de volgende code uit:

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

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

De uitvoer moet er als volgt uitzien:

Output from Add-AzKeyVaultKey cmdlet.

REST gebruiken

Het toegangsbeleid kan worden ingesteld met behulp van de volgende REST API-aanroep:

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

Aanvraagtekst:

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

Notitie

De tenantId - en objectId-velden moeten respectievelijk worden geleverd met waarden van identity.tenantId en identity.principalId uit het antwoord van de beheerde identiteit voor het Automation-account.

Automation-account opnieuw configureren voor het gebruik van door de klant beheerde sleutel

Als u uw Automation-account wilt overzetten van door Microsoft beheerde sleutels naar door de klant beheerde sleutels, kunt u deze wijziging uitvoeren met behulp van Azure PowerShell of met een Azure Resource Manager-sjabloon.

PowerShell gebruiken

Gebruik De PowerShell-cmdlet Set-AzAutomationAccount om het Automation-account opnieuw te configureren voor het gebruik van door de klant beheerde sleutels.

$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 

U kunt de wijziging controleren door de volgende opdracht uit te voeren:

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

De uitvoer moet er als volgt uitzien:

Output from Get-AzAutomationAccount cmdlet.

REST gebruiken

Gebruik de volgende REST API-aanroep:

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

Aanvraagtekst:

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

Voorbeeldrespons

{
  "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"
    },
    ..
  }
}

Rotatie van een door de klant beheerde sleutel

U kunt een door de klant beheerde sleutel in Azure Key Vault roteren volgens uw nalevingsbeleid. Wanneer de sleutel wordt gedraaid, moet u het Automation-account bijwerken om de nieuwe sleutel-URI te gebruiken.

Als u de sleutel roteert, wordt herversleuteling van beveiligde assets in het Automation-account niet geactiveerd. Er is geen verdere actie vereist.

Intrekking van toegang tot een door de klant beheerde sleutel

Als u de toegang tot door de klant beheerde sleutels wilt intrekken, gebruikt u PowerShell of de Azure CLI. Zie Azure Key Vault PowerShell of Azure Key Vault CLI voor meer informatie. Het intrekken van toegang blokkeert de toegang tot alle beveiligde assets in het Automation-account, omdat de versleutelingssleutel niet toegankelijk is door Azure Automation.

Volgende stappen