次の方法で共有


チュートリアル: Azure Database for MySQL - フレキシブル サーバーの資格情報を Azure Key Vault で管理する

適用対象: Azure Database for MySQL - フレキシブル サーバー

Azure Database for MySQL フレキシブル サーバーの接続文字列を Azure Key Vault に格納して、機密情報が安全に管理され、許可されているユーザーまたはアプリケーションのみがアクセスできるようにします。 さらに、接続文字列に対する変更は、アプリケーション コードを変更することなく、Key Vault 内で簡単に反映させることができます。

前提条件

  • Azure サブスクリプションが必要です。 まだサブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • シークレットへのアクセスはすべて、Azure Key Vault 経由で行われます。 このクイックスタートでは、Azure portalAzure CLI、または Azure PowerShell を使用してキー コンテナーを作成します。 Key Vault の管理とアクセスに必要なアクセス許可があることを確認します。
  • アプリケーションに使用しているフレームワークに基づいて、.NET、Java、PHP、Python のどれかをインストールします。

Key Vault にシークレットを追加する

コンテナーにシークレットを追加するには、次の手順に従います。

  1. Azure portal で、新しいキー コンテナーに移動します。
  2. Key Vault の設定ページで、 [シークレット] を選択します。
  3. [生成/インポート] を選択します。
  4. [シークレットの作成] ページで、次の情報を指定します。
    • [アップロード オプション] :手動。
    • [名前] : シークレットの名前を入力します。 シークレットの名前は、キー コンテナー内で一意である必要があります。 名前は、文字で始まり、0 から 9、a から z、A から Z、および - のみを使った 1 から 127 文字の文字列である必要があります。 名前付けの詳細については、Key Vault のオブジェクト、識別子、バージョン管理に関するセクションを参照してください。
    • : シークレットの値を入力します。 Key Vault API はシークレット値を文字列として受け取って返します。
    • 他の値は既定値のままにしておきます。 [作成] を選択します

シークレットが正常に作成されたことを示すメッセージが表示されたら、一覧でそのシークレットを選択できます。

詳細については、「Azure Key Vault の概要」を参照してください

アクセス ポリシーを構成します。

Key Vault 設定で、適切なアクセス ポリシーを構成して、Key Vault から Azure Database for MySQL フレキシブル サーバーの接続文字列を取得する必要があるユーザーまたはアプリケーションにアクセス権を付与します。 シークレットに対する "Get" 操作に必要なアクセス許可が付与されていることを確認します。

  1. Azure portal で、Key Vault リソースに移動します。
  2. [アクセス ポリシー][作成] の順に選択します。
  3. [キーのアクセス許可][シークレットのアクセス許可]、および [証明書のアクセス許可] でアクセス許可を選択します。
  4. [プリンシパル] 選択ウィンドウで検索フィールドにユーザー、アプリ、またはサービス プリンシパルの名前を入力し、適切な結果を選択します。 アプリにマネージド ID を使用している場合は、アプリ自体の名前を検索して選択します。
  5. アクセス ポリシーの変更を確認し、[作成] を選択してアクセス ポリシーを保存します。
  6. [アクセス ポリシー] ページに戻り、アクセス ポリシーが表示されていることを確認します。

Azure Database for MySQL フレキシブル サーバーの接続文字列を取得する

アプリケーションまたはスクリプトで、Azure Key Vault SDK またはクライアント ライブラリを使用して認証し、Key Vault から Azure Database for MySQL フレキシブル サーバーの接続文字列を取得します。 Key Vault にアクセスするには、適切な認証資格情報とアクセス許可を指定する必要があります。 Azure Key Vault から Azure Database for MySQL フレキシブル サーバーの接続文字列を取得したら、それをアプリケーションで使用して Azure Database for MySQL フレキシブル サーバーのデータベースへの接続を確立できます。 取得した接続文字列をパラメーターとしてデータベース接続のコードに渡します。

接続文字列を取得するコード サンプル

Key Vault シークレットから接続文字列を取得するコード サンプルをいくつか次に示します。

このコードでは、Azure SDK for .NET を使用しています。 Key Vault の URI と、取得したいシークレット (接続文字列) の名前を定義します。 次に、アプリケーションが Key Vault にアクセスするための認証情報を表す新しい DefaultAzureCredential オブジェクトを作成します。

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}");
        }
    }
}

次のステップ

Azure Key Vault クライアント ライブラリ