Cara membuat kebijakan akses vault dan brankas kunci Azure dengan menggunakan templat Manajer Sumber Daya

Azure Key Vault adalah layanan cloud yang menyediakan penyimpanan yang aman untuk rahasia seperti kunci, kata sandi, dan sertifikat. Artikel ini menjelaskan proses untuk menggunakan templat Azure Resource Manager (templat ARM) untuk membuat brankas kunci.

Template ARM adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Dalam sintaksis deklaratif, Anda menguraikan penyebaran yang Anda maksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran tersebut.

Prasyarat

Untuk menyelesaikan langkah berikut dalam artikel ini:

  • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda mulai.

Membuat templat Azure Resource Manager Key Vault

Templat berikut ini memperlihatkan cara dasar untuk membuat brankas kunci. Beberapa nilai ditentukan dalam templat.

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

Untuk informasi selengkapnya tentang pengaturan templat Key Vault, lihat Referensi templat Key Vault ARM.

Penting

Jika templat disebar ulang, semua kebijakan akses yang ada di brankas kunci akan tertimpa. Kami menyarankan agar Anda mengisi properti accessPolicies dengan kebijakan akses yang ada untuk menghindari kehilangan akses ke brankas kunci.

Menambahkan kebijakan akses ke templat Resource Manager Key Vault

Anda dapat menyebarkan kebijakan akses ke brankas kunci yang ada tanpa menyebar ulang seluruh templat brankas utama. Templat berikut memperlihatkan cara dasar untuk membuat brankas kunci:

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

Untuk informasi selengkapnya tentang pengaturan templat Key Vault, lihat Referensi templat ARM Key Vault.

Lebih banyak templat Resource Manager Key Vault

Ada templat Resource Manager lain yang tersedia untuk objek Key Vault:

Secret Key Sertifikat
T/A T/A

Anda dapat menemukan lebih banyak templat Key Vault di sini: Referensi Resource Manager Key Vault.

Menyebarkan templat

Anda dapat menggunakan portal Microsoft Azure untuk menyebarkan templat sebelumnya dengan menggunakan opsi Buat templat Anda sendiri di editor seperti yang dijelaskan di sini: Sebarkan sumber daya dari templat kustom.

Anda juga dapat menyimpan templat sebelumnya ke file dan menggunakan perintah ini: New-AzResourceGroupDeployment dan 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

Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini menetap. Saat Anda tidak memerlukan sumber daya itu lagi, hapus grup sumber daya. Jika Anda menghapus grup, brankas kunci dan sumber daya terkait juga akan dihapus. Untuk menghapus grup sumber daya dengan menggunakan Azure CLI atau Azure PowerShell, selesaikan langkah-langkah ini:

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

Sumber

Langkah berikutnya