Jak utworzyć zasady dostępu do usługi Azure Key Vault i magazynu przy użyciu szablonu usługi Resource Manager

Azure Key Vault to usługa w chmurze, która zapewnia bezpieczny magazyn wpisów tajnych, takich jak klucze, hasła i certyfikaty. W tym artykule opisano proces wdrażania szablonu usługi Azure Resource Manager (szablonu usługi ARM) w celu utworzenia magazynu kluczy.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule:

Tworzenie szablonu usługi Resource Manager usługi Key Vault

Poniższy szablon przedstawia podstawowy sposób tworzenia magazynu kluczy. Niektóre wartości są określone w szablonie.

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

Aby uzyskać więcej informacji na temat ustawień szablonu usługi Key Vault, zobacz Dokumentacja szablonu usługi ARM usługi Key Vault.

Ważne

Jeśli szablon zostanie wdrożony ponownie, wszystkie istniejące zasady dostępu w magazynie kluczy zostaną zastąpione. Zalecamy wypełnienie accessPolicies właściwości istniejącymi zasadami dostępu, aby uniknąć utraty dostępu do magazynu kluczy.

Dodawanie zasad dostępu do szablonu usługi Resource Manager usługi Key Vault

Zasady dostępu można wdrożyć w istniejącym magazynie kluczy bez ponownego wdrażania całego szablonu magazynu kluczy. Poniższy szablon przedstawia podstawowy sposób tworzenia zasad dostępu:

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

Aby uzyskać więcej informacji na temat ustawień szablonu usługi Key Vault, zobacz Dokumentacja szablonu usługi ARM usługi Key Vault.

Więcej szablonów usługi Resource Manager usługi Key Vault

Istnieją inne szablony usługi Resource Manager dostępne dla obiektów usługi Key Vault:

Wpisy tajne Klucze Certyfikaty
Brak Brak

Więcej szablonów usługi Key Vault można znaleźć tutaj: Dokumentacja usługi Resource Manager usługi Key Vault.

Wdrażanie szablonów

Przy użyciu witryny Azure Portal można wdrożyć powyższe szablony przy użyciu opcji Utwórz własny szablon w edytorze , jak opisano tutaj: Wdrażanie zasobów z szablonu niestandardowego.

Możesz również zapisać powyższe szablony w plikach i użyć następujących poleceń: New-AzResourceGroupDeployment i 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

Czyszczenie zasobów

Jeśli planujesz kontynuować kolejne przewodniki Szybki start i samouczki, możesz pozostawić te zasoby na miejscu. Jeśli zasoby nie są już potrzebne, usuń grupę zasobów. Jeśli usuniesz grupę, magazyn kluczy i powiązane zasoby zostaną również usunięte. Aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, wykonaj następujące kroki:

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

Zasoby

Następne kroki