次の方法で共有


Azure HDInsight での SQL Database 認証にマネージド ID を使用する

HDInsight では、クラスター オファリング内で SQL データベースを認証し、より安全な認証メカニズムを提供するためのマネージド ID オプションが追加されました。

この記事では、HDInsight クラスターの作成時に SQL Database 認証にマネージド ID (MSI) オプションを使用するプロセスについて説明します。

マネージド ID (MI) オプションは、次のデータベースで使用できます。

データベース Host on Behalf of (HoBo) DB Bring Your Own (BYO) DB
Ambari
Hive
Oozie
Ranger (ESP)

Note

  • マネージド ID (MI) は現在、パブリック リージョンでのみ利用可能です。
  • MI オプションは、既定では有効になっていません。 有効にするには、サブスクリプションとリージョンの詳細を記載したサポート チケットを送信します。

重要

  • クラスターの操作が中断される可能性があるため、クラスターの再作成後にマネージド ID を更新しないことをお勧めします。
  • 同じ名前で MSI を再作成する場合、名前が変更されていない場合でも新しい MSI には異なるオブジェクト ID とクライアント ID が割り当てられるため、ユーザーは包含ユーザーを再作成し、ロールを再割り当てする必要があります。

Azure portal でクラスターを作成するときにマネージド ID を使用する手順

  1. クラスターの作成時に、ストレージ セクションに移動し、Ambari/Hive/Oozie 用の SQL データベースを選択します。 認証方法としてマネージド ID を選択します。

    [基本] タブを示すスクリーンショット。

  2. SQL Database で認証するためにマネージド ID を選択します。

    ストレージ タブを示すスクリーンショット。

  3. 対応する SQL データベースにマネージド ID を持つ包含ユーザーを作成します。

    Azure SQL データベース クエリ エディターで次の手順に従って、データベース ユーザーを作成し、読み取り/書き込みアクセス許可を付与します。 Ambari、Hive、Oozie などのさまざまなサービスで使用する各 SQL Database に対して、次の手順を実行します。

    Note

    ユーザー名には、ユーザー定義のサフィックスによって拡張された元の MSI 名が含まれている必要があります。 ベスト プラクティスとして、サフィックスにはオブジェクト ID の最初の部分を含めることができます。 マネージド ID のオブジェクト ID は、マネージド ID ポータル ページのポータルから取得できます。

    次に例を示します。

    • MSI 名: contosoMSI
    • オブジェクト ID: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    • user_name は contosoMSI-2ba6c
    CREATE USER {user_name} FROM EXTERNAL PROVIDER WITH OBJECT_ID={object id of cluster managed identity};   
    
    ALTER ROLE db_datareader ADD MEMBER {user_name};   
    ALTER ROLE db_ddladmin ADD MEMBER {user_name};   
    ALTER ROLE db_datawriter ADD MEMBER {user_name};   
    

    Note

    ロール db_executordb_view_def、および db_view_state がデータベースに既に定義されている場合は、後続の手順に進む必要はありません。

    CREATE ROLE db_executor;   
    GRANT EXECUTE TO db_executor;   
    ALTER ROLE db_executor ADD MEMBER {user_name};   
    
    CREATE ROLE db_view_def;   
    GRANT VIEW DEFINITION TO db_view_def;   
    ALTER ROLE db_view_def ADD MEMBER {user_name};   
    CREATE ROLE db_view_db_state;  
    
    GRANT VIEW DATABASE STATE TO db_view_db_state;   
    
    ALTER ROLE db_view_def ADD MEMBER {user_name};  
    
  4. 必要な詳細を入力したら、ポータルでのクラスターの作成に進みます。