كيفية إنشاء مخزن مفاتيح Azure ونهج الوصول إلى المخزن باستخدام قالب Resource Manager

Azure Key Vault عبارة عن خدمة سحابية توفر مخزناً آمناً للأسرار مثل المفاتيح وكلمات المرور والشهادات. توضح هذه المقالة عملية نشر قالب Azure Resource Manager (قالب ARM) لإنشاء مخزن مفاتيح.

قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.

المتطلبات الأساسية

لإكمال الخطوات في هذه المقالة:

إنشاء قالب Key Vault Resource Manager

يوضح النموذج التالي طريقة أساسية لإنشاء خزنة مفاتيح. تم تحديد بعض القيم في القالب.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "Standard",
      "allowedValues": [
        "Standard",
        "Premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    }
   },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2019-09-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "enabledForDeployment": "false",
        "enabledForDiskEncryption": "false",
        "enabledForTemplateDeployment": "false",
        "tenantId": "[subscription().tenantId]",
        "accessPolicies": [],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    }
  ]
}

لمزيد من المعلومات حول إعدادات نموذج Key Vault؛ راجع مرجع نموذج Key Vault ARM.

هام

إذا تمت إعادة نشر أحد النماذج فسيتم تجاوز أي نُهج وصول موجودة في خزنة المفاتيح. نوصي بملء خاصية accessPoliciesبنُهج الوصول الحالية لتجنب فقدان الوصول إلى خزينة المفاتيح.

أضف نهج وصول إلى نموذج Key Vault Resource Manager

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

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "objectId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
      }
    },
    "keysPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
      }
    },
    "secretsPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
      }
    },
    "certificatePermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to certificates in the vault. Valid values are: all,  create, delete, update, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers,  recover, backup, restore, setissuers, and purge."
      }
    }
  },
  "resources": [
     {
      "type": "Microsoft.KeyVault/vaults/accessPolicies",
      "name": "[concat(parameters('keyVaultName'), '/add')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "accessPolicies": [
          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[parameters('objectId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]",
              "certificates": "[parameters('certificatePermissions')]"
            }
          }
        ]
      }
    }
  ]
}

لمزيد من المعلومات حول إعدادات نموذج Key Vault؛ راجع مرجع نموذج Key Vault ARM.

المزيد من قوالب Key Vault Resource Manager

تتوفر قوالب Resource Manager أخرى لكائنات Key Vault:

الأسرار المفاتيح الشهادات
‏‫غير متوفر‬ ‏‫غير متوفر‬

يمكنك العثور على المزيد من قوالب Key Vault هنا: مرجع Key Vault Resource Manager.

انشر القوالب

يمكنك استخدام مدخل Microsoft Azure لنشر القوالب السابقة باستخدام الخيار إنشاء القالب الخاص بك في المحرر كما هو موضح هنا: نشر الموارد من قالب مخصص.

يمكنك أيضاً حفظ القوالب السابقة في الملفات واستخدام هذه الأوامر: New-AzResourceGroupDeployment وaz deployment group create:

New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
az deployment group create --resource-group ExampleGroup --template-file key-vault-template.json

تنظيف الموارد

إذا كنت تخطط للمتابعة مع الخطوات الأولية السريعة والبرامج التعليمية اللاحقة، فيمكنك ترك هذه الموارد في مكانها. عندما لا تحتاج إلى الموارد بعد الآن؛ احذف مجموعة الموارد. إذا قمت بحذف المجموعة فسيتم أيضاً حذف مخزن المفاتيح والموارد ذات الصلة. لحذف مجموعة الموارد باستخدام Azure CLI أو Azure PowerShell، أكمل الخطوات التالية:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

الموارد

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