Udostępnij za pośrednictwem


Szyfrowanie zabezpieczonych zasobów w usłudze Azure Automation

Usługa Azure Automation zabezpiecza zasoby, takie jak poświadczenia, certyfikaty, połączenia i zaszyfrowane zmienne, korzystają z różnych poziomów szyfrowania. Pomaga to zwiększyć bezpieczeństwo tych zasobów. Ponadto w celu zapewnienia większego bezpieczeństwa i prywatności kodu klienta, elementów Runbook i skryptów DSC są również szyfrowane. Szyfrowanie w usłudze Azure Automation jest zgodne z dwoma modelami, w zależności od klucza najwyższego poziomu używanego do szyfrowania:

  • Korzystanie z kluczy zarządzanych przez firmę Microsoft
  • Używanie zarządzanych kluczy

Klucze zarządzane przez firmę Microsoft

Domyślnie konto usługi Azure Automation używa kluczy zarządzanych przez firmę Microsoft.

Każdy bezpieczny zasób jest szyfrowany i przechowywany w usłudze Azure Automation przy użyciu unikatowego klucza (klucza szyfrowania danych), który jest generowany dla każdego konta usługi Automation. Te klucze są szyfrowane i przechowywane w usłudze Azure Automation przy użyciu jeszcze innego unikatowego klucza generowanego dla każdego konta nazywanego kluczem szyfrowania konta (AEK). Te klucze szyfrowania konta są szyfrowane i przechowywane w usłudze Azure Automation przy użyciu kluczy zarządzanych przez firmę Microsoft.

Klucze zarządzane za pomocą usługi Key Vault

Szyfrowanie bezpiecznych zasobów dla konta usługi Automation można zarządzać własnymi kluczami. Po określeniu klucza zarządzanego przez klienta na poziomie konta usługi Automation jest on używany do ochrony i kontrolowania dostępu do klucza szyfrowania konta usługi Automation. Ten z kolei służy do szyfrowania i odszyfrowywania wszystkich zabezpieczonych zasobów. Klucze zarządzane przez klienta zapewniają większą elastyczność tworzenia, obracania, wyłączania i odwoływanie kontroli dostępu. Możesz również przeprowadzać inspekcję kluczy szyfrowania używanych do ochrony zasobów zabezpieczonych.

Użyj usługi Azure Key Vault do przechowywania kluczy zarządzanych przez klienta. Możesz utworzyć własne klucze i przechowywać je w magazynie kluczy lub użyć interfejsów API usługi Azure Key Vault do generowania kluczy.

Włączenie usługi Azure Firewall w usłudze Azure Key Vault blokuje dostęp z elementów Runbook usługi Azure Automation dla tej usługi. Dostęp zostanie zablokowany nawet, gdy wyjątek zapory umożliwiający zezwolenie na zaufane usługi firmy Microsoft jest włączony, ponieważ usługa Automation nie jest częścią listy zaufanych usług. W przypadku włączonej zapory dostęp można uzyskać tylko przy użyciu hybrydowego procesu roboczego elementu Runbook i punktu końcowego usługi sieci wirtualnej. Jednak po włączeniu usługi Private Link dla usługi Key Vault usługa Azure Automation utraci dostęp do usługi Key Vault. Nawet jeśli włączysz link prywatny dla hybrydowego procesu roboczego elementu Runbook, będzie zezwalać na dostęp tylko do usługi Azure Automation, a nie do usługi Key Vault.

Aby uzyskać więcej informacji na temat usługi Azure Key Vault, zobacz Co to jest usługa Azure Key Vault?

Używanie kluczy zarządzanych przez klienta dla konta usługi Automation

Jeśli używasz szyfrowania z kluczami zarządzanymi przez klienta dla konta usługi Automation, usługa Azure Automation opakowuje klucz szyfrowania konta za pomocą klucza zarządzanego przez klienta w skojarzonym magazynie kluczy. Włączenie kluczy zarządzanych przez klienta nie ma wpływu na wydajność, a konto jest natychmiast szyfrowane przy użyciu nowego klucza bez żadnych opóźnień.

Nowe konto usługi Automation jest zawsze szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft. Nie można włączyć kluczy zarządzanych przez klienta w momencie utworzenia konta. Klucze zarządzane przez klienta są przechowywane w usłudze Azure Key Vault, a magazyn kluczy musi być aprowizowany przy użyciu zasad dostępu, które udzielają uprawnień klucza do tożsamości zarządzanej skojarzonej z kontem usługi Automation. Tożsamość zarządzana jest dostępna tylko po utworzeniu konta usługi Automation.

Podczas modyfikowania klucza używanego do bezpiecznego szyfrowania zasobów usługi Azure Automation przez włączenie lub wyłączenie kluczy zarządzanych przez klienta, zaktualizowanie wersji klucza lub określenie innego klucza szyfrowanie klucza konta zmienia się, ale bezpieczne zasoby na koncie usługi Azure Automation nie muszą być ponownie szyfrowane.

Uwaga

Aby włączyć klucz zarządzany przez klienta przy użyciu wywołań interfejsu API REST usługi Azure Automation, musisz użyć interfejsu API w wersji 2020-01-13-preview.

Wymagania wstępne dotyczące używania kluczy zarządzanych przez klienta w usłudze Azure Automation

Przed włączeniem kluczy zarządzanych przez klienta dla konta usługi Automation należy upewnić się, że spełnione są następujące wymagania wstępne:

  • Usługa Azure Key Vault z włączonymi właściwościami Usuwania nietrwałego i Nie przeczyszczaj . Te właściwości są wymagane do umożliwienia odzyskiwania kluczy w przypadku przypadkowego usunięcia.
  • Tylko klucze RSA są obsługiwane w przypadku szyfrowania usługi Azure Automation. Aby uzyskać więcej informacji na temat kluczy, zobacz Informacje o kluczach, wpisach tajnych i certyfikatach usługi Azure Key Vault.
  • Konto usługi Automation i magazyn kluczy mogą znajdować się w różnych subskrypcjach, ale muszą znajdować się w tej samej dzierżawie firmy Microsoft Entra.
  • W przypadku korzystania z programu PowerShell sprawdź, czy moduł Azure Az programu PowerShell jest zainstalowany. Aby zainstalować lub uaktualnić, zobacz Jak zainstalować moduł Azure Az programu PowerShell.

Generowanie i przypisywanie nowej tożsamości przypisanej przez system dla konta usługi Automation

Aby używać kluczy zarządzanych przez klienta z kontem usługi Automation, twoje konto usługi Automation musi uwierzytelniać się w magazynie kluczy przechowującą klucze zarządzane przez klienta. Usługa Azure Automation używa tożsamości zarządzanych przypisanych przez system do uwierzytelniania konta w usłudze Azure Key Vault. Aby uzyskać więcej informacji na temat tożsamości zarządzanych, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure?

Korzystanie z programu PowerShell

Użyj polecenia cmdlet programu PowerShell Set-AzAutomationAccount , aby zmodyfikować istniejące konto usługi Azure Automation. Parametr -AssignSystemIdentity generuje i przypisuje nową tożsamość przypisaną przez system dla konta usługi Automation do użycia z innymi usługami, takimi jak Azure Key Vault. Aby uzyskać więcej informacji, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure? i Informacje o usłudze Azure Key Vault. Wykonaj następujący kod:

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

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

Dane wyjściowe powinny wyglądać mniej więcej tak:

Dane wyjściowe polecenia cmdlet Set-AzAutomationAccount.

Uzyskaj element do późniejszego PrincipalId użycia. Wykonaj następujący kod:

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

$principalID

Korzystanie z interfejsu REST

Skonfiguruj tożsamość zarządzaną przypisaną przez system do konta usługi Automation przy użyciu następującego wywołania interfejsu API REST:

PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Treść żądania:

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

Tożsamość przypisana przez system dla konta usługi Automation jest zwracana w odpowiedzi podobnej do następującej:

{
 "name": "automation-account-name",
 "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
 },
..
}

Konfiguracja zasad dostępu usługi Key Vault

Po przypisaniu tożsamości zarządzanej przypisanej przez system do konta usługi Automation można skonfigurować dostęp do magazynu kluczy przechowującego klucze zarządzane przez klienta. Usługa Azure Automation wymaga uprawnień operacji Get, Recover, WrapKey i UnwrapKey dla tożsamości w celu uzyskania dostępu do kluczy zarządzanych przez klienta.

Korzystanie z programu PowerShell

Użyj polecenia cmdlet programu PowerShell Set-AzKeyVaultAccessPolicy , aby udzielić niezbędnych uprawnień. Następnie użyj polecenia Add-AzKeyVaultKey , aby utworzyć klucz w magazynie kluczy. Wykonaj następujący kod:

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

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

Dane wyjściowe powinny wyglądać mniej więcej tak:

Dane wyjściowe polecenia cmdlet Add-AzKeyVaultKey.

Korzystanie z interfejsu REST

Zasady dostępu można ustawić przy użyciu następującego wywołania interfejsu API REST:

PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/add?api-version=2018-02-14

Treść żądania:

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

Uwaga

Pola tenantId i objectId muszą być dostarczane z wartościami identity.tenantId i identity.principalId odpowiednio z odpowiedzi tożsamości zarządzanej dla konta usługi Automation.

Ponowne konfigurowanie konta usługi Automation w celu używania klucza zarządzanego przez klienta

Jeśli chcesz przełączyć konto usługi Automation z kluczy zarządzanych przez firmę Microsoft na klucze zarządzane przez klienta, możesz wykonać tę zmianę przy użyciu programu Azure PowerShell lub szablonu usługi Azure Resource Manager.

Korzystanie z programu PowerShell

Użyj polecenia cmdlet programu PowerShell Set-AzAutomationAccount , aby ponownie skonfigurować konto usługi Automation do używania kluczy zarządzanych przez klienta.

$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 

Możesz zweryfikować zmianę, uruchamiając następujące polecenie:

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

Dane wyjściowe powinny wyglądać mniej więcej tak:

Dane wyjściowe polecenia cmdlet Get-AzAutomationAccount.

Korzystanie z interfejsu REST

Użyj następującego wywołania interfejsu API REST:

PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Treść żądania:

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

Przykładowa odpowiedź

{
  "name": "automation-account-name",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
    },
    ..
  }
}

Rotacja klucza zarządzanego przez klienta

Klucz zarządzany przez klienta można obrócić w usłudze Azure Key Vault zgodnie z zasadami zgodności. Po obróceniu klucza należy zaktualizować konto usługi Automation, aby używało nowego identyfikatora URI klucza.

Obracanie klucza nie powoduje ponownego szyfrowania bezpiecznych zasobów na koncie usługi Automation. Nie jest wymagana żadna dalsza akcja.

Odwołanie dostępu do klucza zarządzanego przez klienta

Aby odwołać dostęp do kluczy zarządzanych przez klienta, użyj programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz Program PowerShell usługi Azure Key Vault lub interfejs wiersza polecenia usługi Azure Key Vault. Cofanie dostępu skutecznie blokuje dostęp do wszystkich bezpiecznych zasobów na koncie usługi Automation, ponieważ klucz szyfrowania jest niedostępny przez usługę Azure Automation.

Następne kroki