Zugreifen auf das Geheimnis im Schlüsseltresor bei der Bereitstellung von Azure Managed Applications

Wenn Sie einen zu schützenden Wert (z.B. ein Kennwort) während der Bereitstellung als Parameter übergeben müssen, können Sie den Wert aus einer Instanz von Azure Key Vault abrufen. Um bei der Bereitstellung verwalteter Anwendungen auf den Schlüsseltresor zuzugreifen, müssen Sie Zugriff auf den Dienstprinzipal des Applianceressourcenanbieters gewähren. Der Managed Applications-Dienst verwendet diese Identität, um Vorgänge auszuführen. Um einen Wert während der Bereitstellung erfolgreich aus einem Schlüsseltresor abzurufen, muss der Dienstprinzipal auf den Schlüsseltresor zugreifen können.

Dieser Artikel beschreibt, wie Sie den Schlüsseltresor zum Arbeiten mit verwalteten Anwendungen konfigurieren.

Aktivieren der Vorlagenbereitstellung

  1. Melden Sie sich beim Azure-Portal an.

  2. Öffnen Sie Ihren Schlüsseltresor. Geben Sie Schlüsseltresore in das Suchfeld ein, oder wählen Sie Schlüsseltresore aus.

    Screenshot: Azure-Homepage zum Öffnen eines Schlüsseltresors über die Suche oder durch Auswählen eines Tresors

  3. Klicken Sie auf Zugriffsrichtlinien.

    Screenshot: Schlüsseltresoreinstellungen zum Auswählen von Zugriffsrichtlinien

  4. Wählen Sie Azure Resource Manager für Vorlagenbereitstellung. Wählen Sie anschließend Speichern aus.

    Screenshot: Zugriffsrichtlinien des Schlüsseltresors zur Aktivierung von Azure Resource Manager für die Vorlagenbereitstellung

Hinzufügen des Diensts als Mitwirkender

Weisen Sie die Rolle Mitwirkender dem Benutzer Applianceressourcenanbieter im Schlüsseltresorbereich zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.

Der Applianceressourcenanbieter ist ein Dienstprinzipal im Mandanten Ihrer Azure Active Directory-Instanz. Im Azure-Portal können Sie feststellen, ob er registriert ist, indem Sie zu Azure Active Directory>Unternehmensanwendungen navigieren und den Suchfilter zu Microsoft-Anwendungen ändern. Suchen Sie nach Appliance-Ressourcenanbieter. Wenn sie nicht gefunden wird, registrieren Sie den Microsoft.Solutions Ressourcenanbieter.

Verweisen auf Schlüsseltresorgeheimnis

Um ein Geheimnis aus einem Schlüsseltresor an eine Vorlage in Ihrer verwalteten Anwendung zu übergeben, müssen Sie eine verknüpfte oder geschachtelte Vorlage verwenden und in den Parametern für die verknüpfte oder geschachtelte Vorlage auf den Schlüsseltresor verweisen. Geben Sie die Ressourcen-ID des Schlüsseltresors und den Namen des Geheimnisses an.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-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 key vault 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 key vault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the key vault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-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": "2022-02-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": {
  }
}

Nächste Schritte

Sie haben Ihren Schlüsseltresor so konfiguriert, dass während der Bereitstellung einer verwalteten Anwendung darauf zugegriffen werden kann.