تشفير الأصول الآمنة في Azure Automation

يؤمن Azure Automation الأصول مثل بيانات الاعتماد والشهادات والاتصالات والمتغيرات المشفرة التي تستخدم مستويات مختلفة من التشفير. وهذا يساعد على تعزيز أمن هذه الأصول. بالإضافة إلى ذلك، لضمان المزيد من الأمان والخصوصية لرمز العميل، يتم أيضا تشفير دفاتر التشغيل والبرامج النصية DSC. يتبع التشفير في Azure Automation نموذجين، اعتمادا على مفتاح المستوى الأعلى المستخدم للتشفير:

  • استخدام المفاتيح التي تديرها Microsoft
  • استخدام المفاتيح التي تديرها

المفاتيح التي تديرها Microsoft

بشكل افتراضي، يستخدم حساب Azure Automation المفاتيح المُدارة من Microsoft.

يتم تشفير كل أصل آمن وتخزينه في Azure Automation باستخدام مفتاح فريد (مفتاح تشفير البيانات) يتم إنشاؤه لكل حساب التنفيذ التلقائي. يتم تشفير هذه المفاتيح نفسها وتخزينها في Azure Automation باستخدام مفتاح فريد آخر يتم إنشاؤه لكل حساب يسمى مفتاح تشفير الحساب (AEK). يتم تشفير مفاتيح تشفير الحساب هذه وتخزينها في Azure Automation باستخدام مفاتيح مدارة من Microsoft.

المفاتيح التي تديرها باستخدام Key Vault

يمكنك إدارة تشفير الأصول الآمنة لحساب التنفيذ التلقائي باستخدام المفاتيح. عندما تحدد مفتاحًا يديره العميل على مستوى حساب التنفيذ التلقائي، يتم استخدام هذا المفتاح للحماية والتحكم في الوصول إلى مفتاح تشفير الحساب لحساب التنفيذ التلقائي. يستخدم هذا بدوره لتشفير وفك تشفير جميع الأصول الآمنة. توفر المفاتيح التي يديرها العميل قدرًا أكبر من المرونة لإنشاء عناصر التحكم في الوصول وتدويرها وتعطيلها وإبطالها. يمكنك أيضًا تدقيق مفاتيح التشفير المستخدمة لحماية أصولك الآمنة.

استخدم Azure Key Vault لتخزين المفاتيح التي يديرها العميل. يمكنك إما إنشاء المفاتيح الخاصة بك وتخزينها في قبو المفاتيح، أو يمكنك استخدام واجهات برمجة تطبيقات Azure Key Vault لإنشاء المفاتيح.

يؤدي تمكين جدار حماية Azure في Azure Key Vault إلى حظر الوصول من دفاتر تشغيل Azure Automation لتلك الخدمة. سيتم حظر الوصول حتى في حالة تمكين استثناء جدار الحماية للسماح بخدمات Microsoft الموثوق بها، لأن التنفيذ التلقائي ليس جزءًا من قائمة الخدمات الموثوق بها. بتمكين جدار الحماية، يمكن الوصول فقط باستخدام Hybrid Runbook Worker ونقطة نهاية خدمة الشبكة الظاهرية. ومع ذلك، عند تمكين الارتباط الخاص ل Key Vault، يفقد Azure Automation الوصول إلى Key Vault. حتى إذا قمت بتمكين ارتباط خاص ل Hybrid Runbook Worker، فإنه سيسمح بالوصول فقط إلى خدمة Azure Automation وليس إلى Key Vault.

لمزيد من المعلومات حول Azure Key Vault، راجع ما هو Azure Key Vault؟

استخدام مفاتيح يديرها العميل لحساب التنفيذ التلقائي

عند استخدام التشفير باستخدام المفاتيح المُدارة بواسطة العميل لحساب التنفيذ التلقائي، يقوم Azure Automation بتضمين مفتاح تشفير الحساب بالمفتاح المُدار بواسطة العميل في مخزن المفاتيح المرتبط. لا يؤثر تمكين المفاتيح المُدارة بواسطة العميل على الأداء، ويتم تشفير الحساب بالمفتاح الجديد على الفور، دون أي تأخير.

يتم دائمًا تشفير حساب Automation جديد باستخدام مفاتيح مدارة من Microsoft. لا يمكن تمكين المفاتيح المُدارة بواسطة العميل وقت إنشاء الحساب. يتم تخزين المفاتيح التي يديرها العميل في Azure Key Vault، ويجب تزويد مخزن المفاتيح بسياسات الوصول التي تمنح أذونات المفاتيح للهوية المدارة المقترنة بحساب التنفيذ التلقائي. تتوفر الهوية المدارة فقط بعد إنشاء حساب التنفيذ التلقائي.

عند تعديل المفتاح المستخدم لتشفير الأصول الآمنة في Azure Automation، عن طريق تمكين أو تعطيل المفاتيح المُدارة بواسطة العميل أو تحديث إصدار المفتاح أو تحديد مفتاح مختلف، يتغير تشفير مفتاح تشفير الحساب ولكن الأصول الآمنة في Azure Automation الحساب لا يحتاج إلى إعادة تشفير.

إشعار

لتمكين المفتاح المُدار بواسطة العميل باستخدام استدعاءات Azure Automation REST API، تحتاج إلى استخدام واجهة برمجة تطبيقات 2020-01-13-preview.

المتطلبات الأساسية لاستخدام المفاتيح التي يديرها العملاء في Azure Automation

قبل تمكين المفاتيح المُدارة بواسطة العميل لحساب التنفيذ التلقائي، يجب عليك التأكد من تلبية المتطلبات الأساسية التالية:

قم بإنشاء وتعيين هوية جديدة مخصصة من قبل النظام لحساب التنفيذ التلقائي

لاستخدام المفاتيح التي يديرها العميل مع حساب التنفيذ التلقائي، يحتاج حساب التنفيذ التلقائي إلى المصادقة مقابل خزنة المفاتيح التي تخزن المفاتيح التي يديرها العميل. يستخدم Azure Automation الهويات المُدارة المعينة من قبل النظام لمصادقة الحساب باستخدام Azure Key Vault. لمزيد من المعلومات حول الهويات المدارة، راجع ما هي الهويات المدارة لموارد Azure؟.

استخدام PowerShell

استخدام الأمر PowerShell cmdlet Set-AzAutomationAccount لتعديل حساب Azure Automation موجودة. تقوم المعلمة -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

تكوين هوية مُدارة من قبل النظام لحساب Automation باستخدام استدعاء 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 Automation أذونات عملية Get، وRecover وWrapKey وUnwrapKey للحصول على الهوية للوصول إلى مفاتيح مدارة من قبل العميل.

استخدام 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 على التوالي من استجابة الهوية المدارة لحساب التنفيذ التلقائي.

أعد تكوين حساب التنفيذ التلقائي لاستخدام المفتاح المُدار بواسطة العميل

إذا كنت تريد تبديل حساب التنفيذ التلقائي من المفاتيح المُدارة من Microsoft إلى المفاتيح المُدارة بواسطة العميل، فإنه يمكنك إجراء هذا التغيير باستخدام Azure PowerShell أو باستخدام قالب Azure Resource Manager.

استخدام PowerShell

استخدم أمر Set-AzAutomationAccount لـPowerShell cmdlet لإعادة تكوين حساب التنفيذ التلقائي لاستخدام المفاتيح التي يديرها العميل.

$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

استخدم استدعاء API REST التالي:

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 وفقًا لسياسات الامتثال الخاصة بك. عندما يتم تدوير المفتاح، يجب عليك تحديث حساب التنفيذ التلقائي لاستخدام مفتاح URI الجديد.

لا يؤدي تدوير المفتاح إلى إعادة تشفير الأصول الآمنة في حساب التنفيذ التلقائي. ليس هناك أي إجراء آخر مطلوب.

إلغاء الوصول إلى مفتاح مدار من قبل العميل

لإبطال الوصول إلى المفاتيح التي يديرها العميل، استخدم PowerShell أو Azure CLI. لمزيد من المعلومات، راجع Azure Key Vault PowerShell أو Azure Key Vault CLI. يؤدي إبطال الوصول إلى حظر الوصول بشكل فعال إلى جميع الأصول الآمنة في حساب الأتمتة، حيث يتعذر الوصول إلى مفتاح التشفير بواسطة Azure Automation.

الخطوات التالية