HDInsight는 클러스터 제품 내에서 SQL 데이터베이스를 인증하고 보다 안전한 인증 메커니즘을 제공하기 위한 MI(관리 ID) 옵션을 추가했습니다.
이 문서에서는 HDInsight 클러스터를 만들 때 SQL 데이터베이스 인증에 관리 ID 옵션을 사용하는 프로세스를 간략하게 설명합니다.
관리 ID 옵션은 다음 데이터베이스에 사용할 수 있습니다.
| 데이터베이스 | (HoBo) DB를 대신하여 호스트 | BYO(Bring Your Own) DB |
|---|---|---|
| Ambari | ✅ | ✅ |
| Hive | ✅ | ✅ |
| Oozie | ✅ | ✅ |
| Ranger(ESP) | ❌ | ❌ |
참고
관리 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에 대해 이 단계를 수행합니다.
참고
사용자 이름에는 사용자 정의 접미사로 확장된 원래 관리 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};참고
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};필요한 세부 정보를 입력한 후 포털에서 클러스터 만들기를 계속 진행합니다.