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 を使用する手順
クラスターの作成時に、ストレージ セクションに移動し、Ambari/Hive/Oozie 用の SQL データベースを選択します。 認証方法としてマネージド ID を選択します。
SQL データベースで認証するマネージド ID を選択します。
対応する 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_executor、db_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};必要な詳細を入力したら、ポータルでクラスターの作成に進みます。