Vytvoření trezoru klíčů Azure a zásad přístupu k trezoru pomocí šablony Resource Manageru

Azure Key Vault je cloudová služba, která poskytuje zabezpečené úložiště tajných kódů, jako jsou klíče, hesla a certifikáty. Tento článek popisuje proces nasazení šablony Azure Resource Manageru (šablony ARM) pro vytvoření trezoru klíčů.

Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.

Požadavky

Postup v tomto článku:

  • Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatný účet .

Vytvoření šablony Resource Manageru služby Key Vault

Následující šablona ukazuje základní způsob vytvoření trezoru klíčů. Některé hodnoty jsou zadané v šabloně.

{
  "$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"
        }
      }
    }
  ]
}

Další informace o nastavení šablony služby Key Vault najdete v referenčních informacích k šabloně ARM služby Key Vault.

Důležité

Pokud se šablona znovu nasadí, přepíše se všechny existující zásady přístupu v trezoru klíčů. Doporučujeme, abyste vlastnost naplnili accessPolicies existujícími zásadami přístupu, abyste zabránili ztrátě přístupu k trezoru klíčů.

Přidání zásad přístupu do šablony Resource Manageru služby Key Vault

Zásady přístupu můžete nasadit do existujícího trezoru klíčů bez opětovného nasazení celé šablony trezoru klíčů. Následující šablona ukazuje základní způsob vytváření zásad přístupu:

{
  "$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')]"
            }
          }
        ]
      }
    }
  ]
}

Další informace o nastavení šablony služby Key Vault najdete v referenčních informacích k šabloně ARM služby Key Vault.

Další šablony Resource Manageru ve službě Key Vault

Pro objekty služby Key Vault jsou k dispozici další šablony Resource Manageru:

Tajné kódy Klávesy Certifikáty
N/A

Další šablony služby Key Vault najdete tady: Referenční informace k Resource Manageru služby Key Vault.

Nasazení šablon

Pomocí webu Azure Portal můžete nasadit předchozí šablony pomocí možnosti Sestavit vlastní šablonu v editoru , jak je popsáno zde: Nasazení prostředků z vlastní šablony.

Předchozí šablony můžete také uložit do souborů a použít tyto příkazy: New-AzResourceGroupDeployment a 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

Vyčištění prostředků

Pokud máte v plánu pokračovat v dalších rychlých startech a kurzech, můžete tyto prostředky ponechat na místě. Pokud už prostředky nepotřebujete, odstraňte skupinu prostředků. Pokud odstraníte skupinu, odstraní se také trezor klíčů a související prostředky. Pokud chcete odstranit skupinu prostředků pomocí Azure CLI nebo Azure PowerShellu, postupujte takto:

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

Zdroje informací

Další kroky