Zelfstudie: Azure Database for MySQL - Flexibele serverreferenties beheren in Azure Key Vault
Artikel
VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server
U kunt de flexibele Azure Database for MySQL-server opslaan verbindingsreeks in Azure Key Vault om ervoor te zorgen dat gevoelige informatie veilig wordt beheerd en alleen toegankelijk is voor geautoriseerde gebruikers of toepassingen. Daarnaast kunnen eventuele wijzigingen in de verbindingsreeks eenvoudig worden bijgewerkt in Key Vault zonder de toepassingscode te wijzigen.
Vereisten
U hebt een Azure-abonnement nodig. Als u nog geen abonnement hebt, maakt u een gratis account voordat u begint.
Alle toegang tot geheimen vindt plaats via Azure Key Vault. Voor deze snelstart gaat u een sleutelkluis maken met de Azure Portal, Azure CLI of Azure PowerShell. Zorg ervoor dat u over de benodigde machtigingen beschikt om de Sleutelkluis te beheren en te openen.
Installeer .NET of Java of PHP of Python op basis van het framework dat u voor uw toepassing gebruikt.
Een geheim toevoegen aan Key Vault
Volg de stappen om een geheim toe te voegen aan de kluis:
Navigeer in het Azure Portal naar uw nieuwe sleutelkluis.
Selecteer op de Key Vault-instellingspagina Geheimen.
Selecteer Genereren/Importeren.
Geef op de pagina Een geheim maken de volgende informatie op:
Uploadopties: Handmatig.
Naam: Typ een naam voor het geheim. De geheime naam moet uniek zijn binnen een Key Vault. De naam moet een reeks van 1-127 tekens zijn die begint met een letter en alleen 0-9, a-z, A-Z en - bevat. Zie voor meer informatie over naamgeving Key Vault-objecten, -id's en -versiebeheer
Waarde: Typ een waarde voor het geheim. Key Vault-API's accepteert en retourneert waarden als tekenreeksen.
Houd voor de overige waarden de standaardwaarden aan. Selecteer Maken.
Zodra u het bericht ontvangt dat het geheim is gemaakt, kunt u dit selecteren in de lijst.
Configureer in de Key Vault-instellingen het juiste toegangsbeleid om toegang te verlenen aan de gebruikers of toepassingen die de flexibele Azure Database for MySQL-server moeten ophalen verbindingsreeks uit de Key Vault. Zorg ervoor dat de benodigde machtigingen worden verleend voor 'Get'-bewerkingen voor geheimen.
Navigeer in Azure Portal naar de Key Vault-resource.
Selecteer Toegangsbeleid en selecteer vervolgens Maken.
Selecteer de gewenste machtigingen onder Sleutelmachtigingen, Geheime machtigingen en Certificaatmachtigingen.
Voer in het selectiedeelvenster Principal de naam in van de gebruiker, app of service-principal in het zoekveld en selecteer het juiste resultaat. Als u een beheerde identiteit voor de app gebruikt, zoekt en selecteert u de naam van de app zelf.
Controleer de wijzigingen in het toegangsbeleid en selecteer Maken om het toegangsbeleid op te slaan.
Controleer op de pagina Toegangsbeleid of uw toegangsbeleid wordt vermeld.
De flexibele Azure Database for MySQL-server ophalen verbindingsreeks
Gebruik in uw toepassing of script de Azure Key Vault SDK of clientbibliotheken om de flexibele Azure Database for MySQL-server te verifiëren en op te halen verbindingsreeks uit Key Vault. U moet de juiste verificatiereferenties en toegangsmachtigingen opgeven voor toegang tot de Key Vault. Zodra u de flexibele Azure Database for MySQL-server hebt opgehaald verbindingsreeks uit Azure Key Vault, kunt u deze in uw toepassing gebruiken om een verbinding tot stand te brengen met de flexibele Azure Database for MySQL-serverdatabase. Geef de opgehaalde verbindingsreeks door als parameter aan uw databaseverbindingscode.
Codevoorbeelden voor het ophalen van verbindingsreeks
Hier volgen enkele codevoorbeelden om de verbindingsreeks op te halen uit het sleutelkluisgeheim.
In deze code gebruiken we Azure SDK voor .NET. We definiëren de URI van onze Sleutelkluis en de naam van het geheim (verbindingsreeks) die we willen ophalen. Vervolgens maken we een nieuw DefaultAzureCredential-object, dat de verificatiegegevens voor onze toepassing vertegenwoordigt voor toegang tot de Key Vault.
using System;
using System.Threading.Tasks;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
namespace KeyVaultDemo
{
class Program
{
static async Task Main(string[] args)
{
var kvUri = "https://my-key-vault.vault.azure.net/";
var secretName = "my-db-conn-string";
var credential = new DefaultAzureCredential();
var client = new SecretClient(new Uri(kvUri), credential);
var secret = await client.GetSecretAsync(secretName);
var connString = secret.Value;
Console.WriteLine($"Connection string retrieved: {connString}");
}
}
}
In deze Java-code gebruiken we de Azure SDK voor Java om te communiceren met Azure Key Vault. Eerst definiëren we de Key Vault-URL en de naam van het geheim (verbindingsreeks) die we willen ophalen. Vervolgens maken we een SecretClient-object met behulp van de klasse SecretClientBuilder. We stellen de Key Vault-URL in en geven de DefaultAzureCredential op om te verifiëren met Microsoft Entra-id. De DefaultAzureCredential verifieert automatisch met behulp van de beschikbare referenties, zoals omgevingsvariabelen, beheerde identiteiten of Visual Studio Code-verificatie.
Vervolgens gebruiken we de getSecret-methode op de SecretClient om het geheim op te halen. De methode retourneert een KeyVaultSecret-object waaruit we de geheime waarde kunnen verkrijgen met behulp van de methode getValue . Ten slotte drukken we de opgehaalde verbindingsreeks af naar de console. Zorg ervoor dat u de variabelen keyVaultUrl en secretName vervangt door uw eigen Key Vault-URL en geheime naam. Vervolgens maken we een nieuw SecretClient-object en geven we de Key Vault-URI en het referentieobject door. Vervolgens kunnen we de Methode GetSecretAsync aanroepen voor het clientobject, waarbij de naam van het geheim wordt doorgegeven dat we willen ophalen.
In deze PHP-code vereisen we eerst het benodigde bestand voor automatisch laden en importeren we de vereiste klassen uit de Azure SDK voor PHP. We definiëren de $keyVaultUrl variabele met de URL van uw Azure Key Vault en $secretName variabele met de naam van het geheim (verbindingsreeks) dat u wilt ophalen. Vervolgens maken we een DefaultAzureCredential-object om te verifiëren met Microsoft Entra ID, waarmee automatisch de beschikbare referenties uit uw omgeving worden opgehaald.
Vervolgens maken we een SecretClient-object , waarbij de Key Vault-URL en het referentieobject worden doorgegeven om te verifiëren met de Sleutelkluis. De getSecret-methode op de SecretClient kan het geheim ophalen door de $secretName door te geven. De methode retourneert een KeyVaultSecret-object waaruit we de geheime waarde kunnen verkrijgen met behulp van de methode getValue. Ten slotte drukken we de opgehaalde verbindingsreeks af naar de console. Zorg ervoor dat de benodigde Azure SDK-pakketten zijn geïnstalleerd en dat het bestand voor automatisch laden correct is opgenomen in uw PHP-project.
require_once 'vendor/autoload.php';
use Azure\Identity\DefaultAzureCredential;
use Azure\Security\KeyVault\Secrets\SecretClient;
$keyVaultUrl = 'https://my-key-vault.vault.azure.net/';
$secretName = 'my-db-conn-string';
$credential = new DefaultAzureCredential();
$client = new SecretClient($keyVaultUrl, $credential);
$secret = $client->getSecret($secretName);
$connString = $secret->getValue();
echo 'Connection string retrieved: ' . $connString;
In deze Python-code importeren we eerst de benodigde modules uit de Azure SDK voor Python. We definiëren de key_vault_url variabele met de URL van uw Azure Key Vault en secret_name variabele met de naam van het geheim (verbindingsreeks) dat u wilt ophalen. Vervolgens maken we een DefaultAzureCredential-object om te verifiëren met Microsoft Entra-id. De DefaultAzureCredential verifieert automatisch met behulp van de beschikbare referenties, zoals omgevingsvariabelen, beheerde identiteiten of Visual Studio Code-verificatie.
Vervolgens maken we een SecretClient-object , waarbij de Key Vault-URL en het referentieobject worden doorgegeven om te verifiëren met de Key Vault. De methode get_secret op de SecretClient kan het geheim ophalen door de secret_name door te geven. De methode retourneert een KeyVaultSecret-object waaruit we de geheime waarde kunnen verkrijgen met behulp van de waardeeigenschap. Ten slotte drukken we de opgehaalde verbindingsreeks af naar de console. Zorg ervoor dat u de variabelen key_vault_url en secret_name vervangt door uw eigen Key Vault-URL en geheime naam.