Udostępnij za pośrednictwem


Uzyskiwanie dostępu do wpisu tajnego usługi Key Vault podczas wdrażania aplikacji zarządzanych platformy Azure

Jeśli podczas wdrażania musisz przekazać bezpieczną wartość (np. hasło) jako parametr, możesz pobrać wartość z usługi Azure Key Vault. Aby uzyskać dostęp do usługi Key Vault podczas wdrażania aplikacji zarządzanych, musisz udzielić dostępu do jednostki usługi dostawcy zasobów urządzenia. Usługa Aplikacje zarządzane używa tej tożsamości do uruchamiania operacji. Aby pomyślnie pobrać wartość z usługi Key Vault podczas wdrażania, jednostka usługi musi mieć dostęp do usługi Key Vault.

W tym artykule opisano sposób konfigurowania usługi Key Vault do pracy z aplikacjami zarządzanymi.

Włączanie wdrażania szablonu

  1. Zaloguj się w witrynie Azure Portal.

  2. Otwórz magazyn kluczy. Wprowadź magazyny kluczy w polu wyszukiwania lub wybierz pozycję Magazyny kluczy.

    Zrzut ekranu przedstawiający stronę główną platformy Azure, aby otworzyć magazyn kluczy przy użyciu wyszukiwania lub wybierając magazyn kluczy.

  3. Wybierz pozycję Konfiguracja dostępu.

    Zrzut ekranu przedstawiający ustawienie magazynu kluczy w celu wybrania konfiguracji dostępu.

  4. Wybierz pozycję Azure Resource Manager w celu wdrożenia szablonu. Następnie wybierz pozycję Zastosuj.

    Zrzut ekranu przedstawiający konfigurację dostępu magazynu kluczy, która umożliwia wdrożenie szablonu w usłudze Azure Resource Manager.

Dodawanie usługi jako współautora

Przypisz rolę Współautor do użytkownika dostawcy zasobów urządzenia w zakresie magazynu kluczy. Rola Współautor jest rolą administratora uprzywilejowanego dla przypisania roli. Aby uzyskać szczegółowe instrukcje, przejdź do tematu Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

Dostawca zasobów urządzenia jest jednostką usługi w dzierżawie firmy Microsoft Entra. W witrynie Azure Portal możesz zweryfikować jego rejestrację w aplikacjach microsoft Entra ID>Dla przedsiębiorstw i zmienić filtr wyszukiwania na Aplikacje firmy Microsoft. Wyszukaj dostawcę zasobów urządzenia. Jeśli jednostka usługi nie zostanie znaleziona, zarejestruj dostawcę Microsoft.Solutions zasobów.

Odwołanie do wpisu tajnego usługi Key Vault

Aby przekazać wpis tajny z usługi Key Vault do szablonu w aplikacji zarządzanej, należy użyć połączonego lub zagnieżdżonego szablonu i odwołać się do usługi Key Vault w parametrach połączonego lub zagnieżdżonego szablonu. Podaj identyfikator zasobu usługi Key Vault i nazwę wpisu tajnego.

{
  "$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": "2022-09-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-05-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": {
  }
}

Następne kroki

Usługa Key Vault została skonfigurowana tak, aby była dostępna podczas wdrażania aplikacji zarządzanej.