Access Key Vault secret when deploying Azure Managed Applications

Ha a telepítés során paraméterként egy biztonságos értéket (például jelszót) kell átadnia, lekérheti az értéket egy Azure-kulcstárból. A Felügyelt alkalmazások telepítésekor a kulcstár eléréséhez hozzáférést kell a készülék erőforrás-szolgáltatójának egyszerű szolgáltatása számára. A Felügyelt alkalmazások szolgáltatás ezt az identitást használja műveletek futtatásához. Ahhoz, hogy sikeres legyen egy érték lekérése egy kulcstárból a telepítés során, az egyszerű szolgáltatásnak hozzá kell férnie a kulcstárhoz.

Ez a cikk ismerteti, hogy miként konfigurálhatja a kulcstárat a Felügyelt alkalmazásokkal való munkához.

A sablonok telepítésének engedélyezése

  1. A portálon válassza ki a kulcstárat.

  2. Válassza az Access-házirendek lehetőséget.

    Select access policies

  3. Válassza a Speciális hozzáférési házirendek megjelenítése elemre kattintva.

    Show advanced access policies

  4. Válassza a Hozzáférés engedélyezése az Azure Resource Managerhez sablontelepítéshez lehetőséget. Ezután válassza a Mentés lehetőséget.

    Enable template deployment

Szolgáltatás hozzáadása közreműködőként

Rendelje hozzá a közreműködői szerepkört a készülék erőforrás-szolgáltatójának felhasználójához a kulcstár hatókörében.

A részletes lépésekhez lásd: Azure-szerepkörök hozzárendelése az Azure Portal használatával.

Reference Key Vault secret

Ha egy kulcstárból át akar adni egy kulcsot a Felügyelt alkalmazás egy sablonjának, egy csatolt vagy beágyazott sablont kell használnia, és a kulcstárra kell hivatkozni a csatolt vagy beágyazott sablon paramétereiben. Adja meg a kulcstár erőforrás-azonosítóját és a titkos kód nevét.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location where the resources will be deployed."
      }
    },
    "vaultName": {
      "type": "string",
      "metadata": {
        "description": "The name of the keyvault that contains the secret."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "The name of the secret."
      }
    },
    "vaultResourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "The name of the resource group that contains the keyvault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the keyvault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2018-05-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "adminLogin": {
              "type": "string"
            },
            "adminPassword": {
              "type": "securestring"
            },
            "location": {
              "type": "string"
            }
          },
          "variables": {
            "sqlServerName": "[concat('sql-', uniqueString(resourceGroup().id, 'sql'))]"
          },
          "resources": [
            {
              "type": "Microsoft.Sql/servers",
              "apiVersion": "2018-06-01-preview",
              "name": "[variables('sqlServerName')]",
              "location": "[parameters('location')]",
              "properties": {
                "administratorLogin": "[parameters('adminLogin')]",
                "administratorLoginPassword": "[parameters('adminPassword')]"
              }
            }
          ],
          "outputs": {
            "sqlFQDN": {
              "type": "string",
              "value": "[reference(variables('sqlServerName')).fullyQualifiedDomainName]"
            }
          }
        },
        "parameters": {
          "location": {
            "value": "[parameters('location')]"
          },
          "adminLogin": {
            "value": "ghuser"
          },
          "adminPassword": {
            "reference": {
              "keyVault": {
                "id": "[resourceId(parameters('vaultSubscription'), parameters('vaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
              },
              "secretName": "[parameters('secretName')]"
            }
          }
        }
      }
    }
  ],
  "outputs": {
  }
}

További lépések

Úgy állította be a kulcstárat, hogy elérhető legyen a felügyelt alkalmazások telepítése során.