서비스 주체를 관리하기 위한 역할

이 문서에서는 Azure Databricks 계정의 서비스 주체에 대한 역할을 관리하는 방법을 설명합니다.

서비스 주체는 자동화된 도구, 작업 및 애플리케이션에 사용하기 위해 Azure Databricks에서 만드는 ID입니다. 서비스 주체는 Azure Databricks 리소스에 대한 자동화된 도구와 스크립트 API 전용 액세스를 제공하여 사용자 또는 그룹을 사용하는 것보다 강력한 보안을 제공합니다.

서비스 주체를 사용하도록 Azure Databricks 사용자, 서비스 주체 및 계정 그룹에 액세스 권한을 부여할 수 있습니다. 이를 통해 사용자는 ID 대신 서비스 주체로 작업을 실행할 수 있습니다. 이렇게 하면 사용자가 조직을 떠나거나 그룹을 수정하는 경우 작업이 실패하지 않습니다.

서비스 주체에 대한 개요는 서비스 주체 관리를 참조 하세요.

서비스 주체 역할

서비스 주체 역할은 계정 수준 역할입니다. 즉, 계정에서 한 번만 정의하고 모든 작업 영역에 적용해야 합니다. 서비스 주체에 부여할 수 있는 두 가지 역할인 서비스 주체 관리자서비스 주체 사용자가 있습니다.

  • 서비스 주체 관리자 를 사용하면 서비스 주체의 역할을 관리할 수 있습니다. 서비스 주체 의 작성자는 서비스 주체에 대한 서비스 주체 관리자 역할을 맡습니다. 계정 관리자는 계정의 모든 서비스 주체에 대해 서비스 주체 관리자 역할을 합니다.

참고 항목

2023년 6월 13일 이전에 서비스 주체를 만든 경우 서비스 주체의 작성자는 기본적으로 서비스 주체 관리자 역할이 없습니다. 관리자여야 하는 경우 계정 관리자에게 서비스 주체 관리자 역할을 부여하도록 요청합니다.

  • 서비스 주체 사용자는 작업 영역 사용자가 작업을 서비스 주체로 실행할 수 있도록 허용합니다. 작업은 작업 소유자의 ID 대신 서비스 주체의 ID로 실행됩니다.

서비스 주체 관리자 역할이 있는 사용자는 서비스 주체 사용자 역할을 상속하지 않습니다. 서비스 주체를 사용하여 작업을 실행하려면 서비스 주체를 만든 후에도 서비스 주체 사용자 역할을 명시적으로 할당해야 합니다.

참고 항목

Azure Databricks 서비스 주체 역할은 Azure 역할 또는 Microsoft Entra ID(이전의 Azure Active Directory) 역할과 겹치지 않습니다. 이러한 역할은 Azure Databricks 계정에만 걸쳐 있습니다.

계정 콘솔을 사용하여 서비스 주체 역할 관리

계정 관리자는 계정 콘솔을 사용하여 서비스 주체 역할을 관리할 수 있습니다.

서비스 주체에서 역할 보기

  1. 계정 관리자 권한으로 계정 콘솔에 로그인합니다.
  2. 사이드바에서 사용자 관리를 클릭합니다.
  3. 서비스 주체 탭에서 이름을 찾아 클릭합니다.
  4. 권한 탭을 클릭합니다.

서비스 주체에 부여된 보안 주체 및 역할 목록을 볼 수 있습니다. 검색 창을 사용하여 특정 보안 주체 또는 역할을 검색할 수도 있습니다.

서비스 주체에 역할 부여

  1. 계정 관리자 권한으로 계정 콘솔에 로그인합니다.

  2. 사이드바에서 사용자 관리를 클릭합니다.

  3. 서비스 주체 탭에서 이름을 찾아 클릭합니다.

  4. 권한 탭을 클릭합니다.

  5. 액세스 허용을 클릭합니다.

  6. 사용자, 서비스 주체 또는 그룹을 검색하여 선택하고 할당할 역할 또는 역할(서비스 주체: 관리자 또는 서비스 주체: 사용자)을 선택합니다.

    참고 항목

    서비스 주체 관리자 역할이 있는 사용자는 서비스 주체 사용자 역할을 상속하지 않습니다. 사용자가 서비스 주체를 사용하여 작업을 실행하도록 하려면 서비스 주체 사용자 역할을 명시적으로 할당해야 합니다.

  7. 저장을 클릭합니다.

서비스 주체에 대한 역할 취소

  1. 계정 관리자 권한으로 계정 콘솔에 로그인합니다.
  2. 사이드바에서 사용자 관리를 클릭합니다.
  3. 서비스 주체 탭에서 이름을 찾아 클릭합니다.
  4. 권한 탭을 클릭합니다.
  5. 사용자, 서비스 주체 또는 그룹을 검색하여 역할을 편집합니다.
  6. 보안 주체가 있는 행에서 케밥 메뉴를 세로 줄임표 클릭한 다음 편집을 선택합니다. 또는 삭제를 선택하여 보안 주체에 대한 모든 역할을 취소합니다.
  7. 편집을 클릭합니다.
  8. 해지 할 역할 옆에 있는 X 를 클릭합니다.
  9. 저장을 클릭합니다.

작업 영역 관리자 설정 페이지를 사용하여 서비스 주체 역할 관리

작업 영역 관리자는 관리자 설정 페이지를 사용할 때 서비스 주체 관리자 역할이 있는 서비스 주체에 대한 서비스 주체 역할을 관리할 수 있습니다.

서비스 주체에서 역할 보기

  1. 작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
  2. Azure Databricks 작업 영역의 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 선택합니다.
  3. ID 및 액세스 탭을 클릭합니다.
  4. 서비스 주체 옆에 있는 관리를 클릭합니다.
  5. 이름을 찾아 클릭합니다.
  6. 권한 탭을 클릭합니다.

서비스 주체에 부여된 보안 주체 및 역할 목록을 볼 수 있습니다. 검색 창을 사용하여 특정 보안 주체 또는 역할을 검색할 수도 있습니다.

서비스 주체에 역할 부여

역할을 부여하려면 서비스 주체에 대한 서비스 주체 관리자 역할이 있어야 합니다.

  1. 작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.

  2. Azure Databricks 작업 영역의 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 선택합니다.

  3. ID 및 액세스 탭을 클릭합니다.

  4. 서비스 주체 옆에 있는 관리를 클릭합니다.

  5. 이름을 찾아 클릭합니다.

  6. 권한 탭을 클릭합니다.

  7. 액세스 허용을 클릭합니다.

  8. 사용자, 서비스 주체 또는 그룹을 검색하여 선택하고 할당할 역할 또는 역할(서비스 주체: 관리자 또는 서비스 주체: 사용자)을 선택합니다.

    참고 항목

    역할은 작업 영역의 구성원이 아니더라도 모든 계정 수준 사용자, 서비스 주체 또는 그룹에 부여할 수 있습니다. 작업 영역-로컬 그룹에 역할을 부여할 수 없습니다.

    서비스 주체 관리자 역할이 있는 사용자는 서비스 주체 사용자 역할을 상속하지 않습니다. 사용자가 서비스 주체를 사용하여 작업을 실행하도록 하려면 서비스 주체 사용자 역할을 명시적으로 할당해야 합니다.

  9. 저장을 클릭합니다.

서비스 주체에 대한 역할 취소

역할을 해지하려면 서비스 주체에 대한 서비스 주체 관리자 역할이 있어야 합니다.

  1. 작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
  2. Azure Databricks 작업 영역의 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 선택합니다.
  3. ID 및 액세스 탭을 클릭합니다.
  4. 서비스 주체 옆에 있는 관리를 클릭합니다.
  5. 이름을 찾아 클릭합니다.
  6. 권한 탭을 클릭합니다.
  7. 사용자, 서비스 주체 또는 그룹을 검색하여 역할을 편집합니다.
  8. 보안 주체가 있는 행에서 케밥 메뉴를 세로 줄임표 클릭한 다음 편집을 선택합니다. 또는 삭제를 선택하여 보안 주체에 대한 모든 역할을 취소합니다.
  9. 편집을 클릭합니다.
  10. 해지 할 역할 옆에 있는 X 를 클릭합니다.
  11. 저장을 클릭합니다.

Databricks CLI를 사용하여 서비스 주체 역할 관리

서비스 주체의 역할을 관리하려면 서비스 주체 관리자 역할이 있어야 합니다. Databricks CLI를 사용하여 역할을 관리할 수 있습니다. Databricks CLI 설치 및 인증에 대한 자세한 내용은 Databricks CLI란?을 참조하세요.

계정 액세스 제어 API사용하여 서비스 주체 역할을 관리할 수도 있습니다. 계정 액세스 제어 API는 Azure Databricks 계정 및 작업 영역을 통해 지원됩니다.

계정 관리자는 accounts.azuredatabricks.net API({account-domain}/api/2.0/preview/accounts/{account_id}/access-control)를 호출합니다.

계정 관리자가 아닌 서비스 주체 관리자 역할이 있는 사용자는 작업 영역에서 API를 호출합니다기본({workspace-domain}/api/2.0/preview/accounts/access-control/).

Databricks CLI를 사용하여 서비스 주체에 역할 부여

계정 액세스 제어 API는 일관성을 etag 보장하기 위해 필드를 사용합니다. API를 통해 서비스 주체 역할을 부여하거나 취소하려면 먼저 규칙 집합 명령을 실행하고 GET 응답을 받 etag 습니다. 그런 다음, 변경 내용을 로컬로 적용하고 마지막으로 을 사용하여 규칙 집합을 PUT 발급할 etag수 있습니다.

예를 들어 다음 명령을 실행하여 액세스 권한을 부여하려는 서비스 주체에 대한 규칙 집합을 실행 GET 합니다.

databricks account access-control get-rule-set accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default <etag>

다음을

  • <account-id> 계정 ID를 사용합니다.
  • <application-id> 서비스 주체 애플리케이션 ID를 사용합니다.
  • <etag> with ""

예제 응답:

{
  "etag":"<etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.manager"
    },
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"<name>"
}

etag 나중에 사용하기 위해 응답 본문에서 필드를 복사합니다.

그런 다음 규칙의 최종 상태를 결정할 때 로컬로 업데이트한 다음 etag를 사용하여 규칙 집합을 업데이트할 수 있습니다. 서비스 주체에게 사용자 역할을 user2@example.com부여하려면 다음을 실행합니다.

databricks account access-control update-rule-set --json '{
  "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
  "rule_set": {
      "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
      "grant_rules": [
        {
            "role": "roles/servicePrincipal.user",
            "principals": ["users/user2@example.com"]
        }
      ],
      "etag": "<etag>"
  }
}'

다음을

  • <account-id> 계정 ID를 사용합니다.
  • <application-id> 서비스 주체 애플리케이션 ID를 사용합니다.
  • <etag> 마지막 응답에서 복사한 etag를 사용하여

예제 응답:

{
  "etag":"<new-etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user2@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default"
}

Important

이는 메서드이므로 PUT 모든 기존 역할을 덮어씁니다. 기존 역할을 유지하려면 배열에 grant_roles 추가해야 합니다.

사용할 수 있는 서비스 주체 나열

작업 영역 서비스 주체 API를 사용하여 필터링하여 사용자 역할이 있는 서비스 주체를 servicePrincipal/use나열할 수 있습니다.

서비스 주체 사용자 역할이 있는 서비스 주체를 나열하려면 다음 명령을 실행합니다.

databricks service-principals list -p WORKSPACE --filter "permission eq 'servicePrincipal/use'"

작업 영역 서비스 주체 API를 사용하여 서비스 주체를 나열할 수도 있습니다.