Udostępnij przez


Jak utworzyć magazyn kluczy Azure i zasady dostępu do niego za pomocą szablonu Menedżera Zasobów

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 Azure Resource Manager (szablonu ARM) aby utworzyć magazyn kluczy.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Szablon używa składni deklaratywnej. 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 Menedżera Zasobów dla 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 Referencję szablonu ARM usługi Key Vault.

Więcej szablonów Resource Manager dla Key Vault

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

Tajemnice Klucze Certyfikaty
N/A N/A

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

Uprzątnij zasoby

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

Dalsze kroki