次の方法で共有


Azure HDInsight での SQL データベース認証にマネージド ID を使用する

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

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

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

データベース Host on Behalf of (HoBo) DB あなた自身のデータベースを持ち込む (BYO: Bring Your Own)
Ambari
Hive
Oozie
Ranger (ESP)

Note

マネージド ID の変更は、パブリック リージョンで使用できます。 他のリージョン (連邦および中国リージョン) で使用する場合は、 サポート にお問い合わせください。

重要

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

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

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

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

  2. SQL データベースで認証するマネージド ID を選択します。

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

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

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

    Note

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

    次に例を示します。

    • MI 名: contosoMSI
    • オブジェクト ID: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    • user_name は contosoMSI_aaaaaaaa
    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. 必要な詳細を入力したら、ポータルでクラスターの作成に進みます。