다른 Microsoft Entra 디렉터리로 Azure 구독 이전을 참조하세요.

조직에는 여러 Azure 구독이 있을 수 있습니다. 각 구독은 특정 Microsoft Entra 디렉터리와 연결됩니다. 구독을 다른 Microsoft Entra 디렉터리로 이전하여 관리를 용이하게 할 수도 있습니다. 다른 Microsoft Entra 디렉터리로 구독을 전송하는 경우 일부 리소스는 대상 디렉터리에 전송되지 않습니다. 예를 들어 Azure RBAC(Azure 역할 기반 액세스 제어)의 모든 역할 할당 및 사용자 지정 역할은 소스 디렉터리에서 영구적으로 삭제되며 대상 디렉터리로 전송되지 않습니다.

이 문서에서는 다른 Microsoft Entra 디렉터리로 구독을 전송하고 전송 후 일부 리소스를 다시 만들기 위해 수행할 수 있는 기본 단계를 설명합니다.

조직의 여러 디렉터리에 대한 구독 전송을 대신 차단하려는 경우 구독 정책을 구성할 수 있습니다. 자세한 내용은 Azure 구독 정책 관리를 참조하세요.

참고 항목

Azure CSP(클라우드 솔루션 공급자) 구독의 경우, 해당 구독에 대한 Microsoft Entra 디렉터리를 변경하는 것은 지원되지 않습니다.

개요

다른 Microsoft Entra 디렉터리에 Azure 구독을 양도하는 것은 신중하게 계획하고 실행해야 하는 복잡한 프로세스입니다. 대부분의 Azure 서비스는 정상적으로 작동하거나 다른 Azure 리소스를 관리하기 위해 보안 주체(ID)가 필요합니다. 이 문서에서는 보안 주체에 크게 의존하지만 포괄적이지는 않은 대부분의 Azure 서비스를 다루어보려 합니다.

Important

일부 시나리오에서는 구독을 양도하는 동안 프로세스를 완료하기 위해 가동 중지 시간이 필요할 수 있습니다. 양도에 가동 중지 시간이 필요한지 여부를 평가하려면 신중한 계획이 필요합니다.

다음 다이어그램은 구독을 다른 디렉터리로 양도할 때 수행해야 하는 기본 단계를 보여줍니다.

  1. 양도 준비

  2. Azure 구독을 다른 디렉터리로 양도

  3. 역할 할당, 사용자 지정 역할 및 관리| ID와 같은 대상 디렉터리에 리소스를 다시 만듭니다.

    구독 다이어그램 양도

다른 디렉터리에 구독을 양도할지 여부 결정

다음은 구독을 양도할 수 있는 몇 가지 이유입니다.

  • 회사 합병 또는 인수로 인해 주 Microsoft Entra 디렉터리에서 획득한 구독을 관리하려고 합니다.
  • 조직의 누군가가 구독을 만들고 관리를 특정 Microsoft Entra 디렉터리에 통합하려고 합니다.
  • 특정 구독 ID 또는 URL에 종속된 애플리케이션이 있으며 애플리케이션 구성이나 코드를 수정하기가 쉽지 않습니다.
  • 비즈니스의 일부가 별도의 회사로 분할되었으며 일부 리소스를 다른 Microsoft Entra 디렉터리로 이동해야 합니다.
  • 보안 격리를 위해 다른 Microsoft Entra 디렉터리에서 일부 리소스를 관리하려고 합니다.

대체 접근 방식

구독을 양도하려면 프로세스가 완료될 때까지 가동 중지 시간이 필요합니다. 시나리오에 따라 다음과 같은 대체 방법을 고려할 수 있습니다.

  • 리소스를 다시 만들고 대상 디렉터리 및 구독에 데이터를 복사합니다.
  • 다중 디렉터리 아키텍처를 채택하고 소스 디렉터리에 구독을 유지합니다. 대상 디렉터리의 사용자가 소스 디렉터리의 구독에 액세스할 수 있도록 Azure Lighthouse를 사용하여 리소스를 위임합니다. 자세한 내용은 엔터프라이즈 시나리오의 Azure Lighthouse를 참조하세요.

구독 이전의 영향 이해

여러 Azure 리소스는 구독 또는 디렉터리에 대한 종속성이 있습니다. 다음 표는 상황에 따라 구독을 양도할 때의 알려진 영향을 보여 줍니다. 이 문서의 단계를 수행하여 구독 양도 이전에 존재했던 리소스 중 일부를 다시 만들 수 있습니다.

Important

이 섹션에서는 구독에 종속된 알려진 Azure 서비스 또는 리소스를 나열합니다. Azure의 리소스 종류가 지속적으로 진화하기 때문에 환경에 대한 호환성이 손상되는 변경을 일으킬 수 있는 추가 종속성이 여기에 나열되지 않을 수 있습니다.

서비스 또는 리소스 영향 받음 복구 가능 영향을 받습니까? 수행 가능한 작업
역할 할당 역할 할당 나열 모든 역할 할당이 영구적으로 삭제됩니다. 사용자, 그룹 및 서비스 주체를 대상 디렉터리의 해당 개체에 매핑해야 합니다. 역할 할당을 다시 만들어야 합니다.
사용자 지정 역할 사용자 지정 역할 나열 모든 사용자 지정 역할은 영구적으로 삭제됩니다. 사용자 지정 역할 및 역할 할당을 다시 만들어야 합니다.
시스템 할당 관리 ID 관리 ID 나열 관리 ID를 사용하지 않도록 설정했다가 다시 사용하도록 설정해야 합니다. 역할 할당을 다시 만들어야 합니다.
사용자 할당 관리 ID 관리 ID 나열 관리 ID를 삭제하고 다시 만든 다음 적절한 리소스에 연결해야 합니다. 역할 할당을 다시 만들어야 합니다.
Azure Key Vault Key Vault 액세스 정책 나열 키 자격 증명 모음과 연결된 테넌트 ID를 업데이트해야 합니다. 새 액세스 정책을 제거하고 추가해야 합니다.
Microsoft Entra 인증 통합이 사용하도록 설정된 Azure SQL 데이터베이스 아니요 Microsoft Entra 인증으로 Azure SQL 데이터베이스 확인 Microsoft Entra 인증이 사용하도록 설정된 Azure SQL 데이터베이스는 다른 디렉터리로 전송할 수 없습니다. 자세한 내용은 Microsoft Entra 인증 사용을 참조하세요.
Microsoft Entra 인증 통합을 사용하도록 설정된 Azure Database for MySQL 아니요 Microsoft Entra 인증을 사용하도록 설정된 Azure Database for MySQL(단일 및 유연한 서버)은 다른 디렉터리로 전송할 수 없습니다.
Azure Storage 및 Azure Data Lake Storage Gen2 ACL을 다시 만들어야 합니다.
Azure Data Lake Storage Gen1 ACL을 다시 만들어야 합니다.
Azure 파일 ACL을 다시 만들어야 합니다.
Azure 파일 동기화 저장소 동기화 서비스 및/또는 저장소 계정은 다른 리소스 그룹 또는 구독으로 이동할 수 있습니다. 자세한 내용은 Azure Files FAQ(질문과 대답)를 참조하세요.
Azure Managed Disks 디스크 암호화 집합을 사용하여 고객 관리형 키로 Managed Disks를 암호화하는 경우, 디스크 암호화 집합과 연결된 시스템 할당 ID를 사용하지 않도록 설정하고 다시 사용하도록 설정해야 합니다. 그리고 역할 할당을 다시 만들어야 합니다. 즉, Key Vault에서 디스크 암호화 집합에 필요한 사용 권한을 다시 부여합니다.
Azure Kubernetes Service 아니요 AKS 클러스터 및 연결된 해당 리소스는 다른 디렉터리로 전송할 수 없습니다. 자세한 내용은 AKS(Azure Kubernetes Service)에 대한 질문과 대답을 참조하세요.
Azure Policy 아니요 사용자 지정 정의, 할당, 예외 및 규정 준수 데이터를 비롯한 모든 Azure Policy 개체입니다. 정의를 내보내고, 가져오고, 다시 할당해야 합니다. 그런 다음 새 정책 할당과 필요한 정책 예외를 만듭니다.
Microsoft Entra Domain Services 아니요 Microsoft Entra Domain Services 관리형 도메인은 다른 디렉터리로 전송할 수 없습니다. 자세한 내용은 Microsoft Entra Domain Services에 대한 FAQ(자주 묻는 질문)를 참조하세요.
앱 등록
Microsoft Dev Box 아니요 개발 상자 및 연결된 해당 리소스는 다른 디렉터리로 전송할 수 없습니다. 구독이 다른 테넌트로 이동하면 개발 상자에서 작업을 수행할 수 없습니다.
Azure 배포 환경 아니요 환경 및 연결된 해당 리소스는 다른 디렉터리로 전송할 수 없습니다. 구독이 다른 테넌트로 이동하면 환경에서 작업을 수행할 수 없습니다.
Azure Service Fabric 아니요 클러스터를 다시 만들어야 합니다. 자세한 내용은 SF 클러스터 FAQ 또는 SF 관리형 클러스터 FAQ를 참조하세요.
Azure Service Bus 관리 ID를 삭제하고 다시 만든 다음 적절한 리소스에 연결해야 합니다. 역할 할당을 다시 만들어야 합니다.
Azure Synapse Analytics 작업 영역 Synapse Analytics 작업 영역과 연결된 테넌트 ID를 업데이트해야 합니다. 작업 영역이 Git 리포지토리와 연결된 경우 작업 영역의 Git 구성을 업데이트해야 합니다. 자세한 내용은 구독을 다른 Microsoft Entra 디렉터리(테넌트)로 전송한 후 Synapse Analytics 작업 영역 복구를 참조하세요.
Azure Databricks 아니요 현재 Azure Databricks는 작업 영역을 새 테넌트로 이동하는 기능을 지원하지 않습니다. 자세한 내용은 Azure Databricks 계정 관리를 참조하세요.

Warning

양도 중인 키 자격 증명 모음에 대한 종속성이 있는 리소스(예: 스토리지 계정 또는 SQL 데이터베이스)에 미사용 암호화를 사용하는 경우 복구할 수 없는 시나리오가 발생할 수 있습니다. 이러한 상황이 발생하는 경우 다른 키 자격 증명 모음을 사용하거나 고객 관리형 키를 일시적으로 사용하지 않도록 설정하여 이 복구할 수 없는 시나리오를 방지해야 합니다.

구독을 양도할 때 영향을 받는 일부 Azure 리소스 목록을 얻으려면 Azure Resource Graph에서 쿼리를 실행할 수도 있습니다. 샘플 쿼리의 경우 Azure 구독을 전송할 때 영향을 받는 리소스 나열을 참조하세요.

필수 조건

이러한 단계를 완료하려면 다음이 필요합니다.

  • Azure Cloud Shell의 Bash 또는 Azure CLI
  • 원본 디렉터리에서 전송하려는 구독의 청구 계정 소유자
  • 디렉터리를 변경하는 사용자의 원본 및 대상 디렉터리 모두에 있는 사용자 계정

1단계: 양도 준비

소스 디렉터리에 로그인

  1. 관리자 권한으로 Azure AD에 로그인합니다.

  2. az account list 명령을 사용하여 구독 목록을 가져옵니다.

    az account list --output table
    
  3. az account set를 사용하여 양도하려는 활성 구독을 설정합니다.

    az account set --subscription "Marketing"
    

Azure Resource Graph 확장을 설치합니다.

Azure Resource Graph의 Azure CLI 확장인 resource-graph를 사용하면 az graph 명령을 사용하여 Azure Resource Manager에서 관리하는 리소스를 쿼리할 수 있습니다. 이후 단계에서 이 명령을 사용합니다.

  1. az extension list를 사용하여 resource-graph 확장이 설치되어 있는지 확인합니다.

    az extension list
    
  2. 미리 보기 버전 또는 이전 버전의 resource-graph 확장을 사용하는 경우 az extension update를 사용하여 확장을 업데이트합니다.

    az extension update --name resource-graph
    
  3. resource-graph 확장이 설치되지 않은 경우 az extension add를 사용하여 확장을 설치합니다.

    az extension add --name resource-graph
    

모든 역할 할당 저장

  1. az role assignment list를 사용하여 모든 역할 할당(상속된 역할 할당 포함)을 나열합니다.

    목록을 보다 쉽게 검토할 수 있도록 출력을 JSON, TSV 또는 표로 내보낼 수 있습니다. 자세한 내용은 Azure RBAC 및 Azure CLI를 사용하여 역할 할당 나열을 참조하세요.

    az role assignment list --all --include-inherited --output json > roleassignments.json
    az role assignment list --all --include-inherited --output tsv > roleassignments.tsv
    az role assignment list --all --include-inherited --output table > roleassignments.txt
    
  2. 역할 할당 목록을 저장합니다.

    구독을 양도할 때 모든 역할 할당이 영구적으로 삭제되므로 복사본을 저장하는 것이 중요합니다.

  3. 역할 할당의 목록을 검토합니다. 대상 디렉터리에는 역할 할당이 필요하지 않을 수 있습니다.

사용자 지정 역할 저장

  1. az role definition list를 사용하여 사용자 지정 역할을 나열합니다. 자세한 내용은 Azure CLI를 사용하여 사용자 지정 역할 만들기 또는 업데이트를 참조하세요.

    az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
    
  2. 대상 디렉터리에 필요한 각 사용자 지정 역할을 별도의 JSON 파일로 저장합니다.

    az role definition list --name <custom_role_name> > customrolename.json
    
  3. 사용자 지정 역할 파일의 복사본을 만듭니다.

  4. 다음 형식을 사용하도록 각 복사본을 수정합니다.

    나중에 이러한 파일을 사용하여 대상 디렉터리에 사용자 지정 역할을 다시 만듭니다.

    {
      "Name": "",
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": []
    }
    

사용자, 그룹 및 서비스 주체 매핑 결정

  1. 역할 할당 목록에 따라 대상 디렉터리에서 매핑할 사용자, 그룹 및 서비스 주체를 결정합니다.

    각 역할 할당의 principalType 속성을 살펴보면 보안 주체의 유형을 식별할 수 있습니다.

  2. 필요한 경우 대상 디렉터리에서 필요한 모든 사용자, 그룹 또는 서비스 주체를 만듭니다.

관리 ID에 대한 역할 할당 나열

구독이 다른 디렉터리로 양도되면 관리 ID는 업데이트되지 않습니다. 결과적으로, 기존의 시스템에서 할당하거나 사용자가 할당한 관리 ID가 모두 손상됩니다. 양도 후 시스템 할당 관리 ID를 다시 사용하도록 설정할 수 있습니다. 사용자 할당 관리 ID의 경우 대상 디렉터리에서 다시 만들고 연결해야 합니다.

  1. 관리 ID를 지원하는 Azure 서비스 목록을 검토하여 관리 ID를 사용할 수 있는 위치를 확인합니다.

  2. az ad sp list를 사용하여 시스템 할당 및 사용자 할당 관리 ID를 나열합니다.

    az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'"
    
  3. 관리 ID 목록에서 시스템이 할당한 ID 및 사용자가 할당한 ID를 확인합니다. 다음 조건을 사용하여 형식을 결정할 수 있습니다.

    기준 관리 ID 유형
    alternativeNames 속성에는 isExplicit=False가 포함됩니다. 시스템 할당
    alternativeNames 속성에는 isExplicit가 포함되지 않습니다. 시스템 할당
    alternativeNames 속성에는 isExplicit=True가 포함됩니다. 사용자 할당

    az identity list를 사용하여 사용자 할당 관리 ID만 나열할 수도 있습니다. 자세한 내용은 Azure CLI를 사용하여 사용자 할당 관리 ID 만들기, 나열 또는 삭제를 참조하세요.

    az identity list
    
  4. 관리 ID의 objectId 값 목록을 가져옵니다.

  5. 역할 할당 목록을 검색하여 관리 ID에 대한 역할 할당이 있는지 확인합니다.

주요 자격 증명 모음 나열

키 자격 증명 모음을 만들 때 생성된 해당 구독에 대한 기본 Microsoft Entra 테넌트 ID에 자동으로 연결됩니다. 모든 액세스 정책 항목은 이 테넌트 ID에 연결됩니다. 자세한 내용은 Azure Key Vault를 다른 구독으로 이동을 참조하세요.

Warning

양도 중인 키 자격 증명 모음에 대한 종속성이 있는 리소스(예: 스토리지 계정 또는 SQL 데이터베이스)에 미사용 암호화를 사용하는 경우 복구할 수 없는 시나리오가 발생할 수 있습니다. 이러한 상황이 발생하는 경우 다른 키 자격 증명 모음을 사용하거나 고객 관리형 키를 일시적으로 사용하지 않도록 설정하여 이 복구할 수 없는 시나리오를 방지해야 합니다.

Microsoft Entra 인증으로 Azure SQL 데이터베이스 나열

ACL 나열

  1. Azure Data Lake Storage Gen1을 사용하는 경우 Azure Portal 또는 PowerShell을 사용하여 모든 파일에 적용되는 ACL을 나열합니다.

  2. Azure Data Lake Storage Gen2를 사용하는 경우 Azure Portal 또는 PowerShell을 사용하여 모든 파일에 적용되는 ACL을 나열합니다.

  3. Azure Files를 사용하는 경우 모든 파일에 적용되는 ACL을 나열합니다.

기타 알려진 리소스 나열

  1. az account show를 사용하여 구독 ID를 가져옵니다(bash에서).

    subscriptionId=$(az account show --output tsv --query id)
    
  2. az graph 확장을 사용하여 알려진 Microsoft Entra 디렉터리 종속성이 있는 다른 Azure 리소스를 나열합니다(bash에서).

    az graph query -q 'resources 
        | where type != "microsoft.azureactivedirectory/b2cdirectories" 
        | where  identity <> "" or properties.tenantId <> "" or properties.encryptionSettingsCollection.enabled == true 
        | project name, type, kind, identity, tenantId, properties.tenantId' --subscriptions $subscriptionId --output yaml
    

2단계: 구독 양도

이 단계에서는 구독을 소스 디렉터리에서 대상 디렉터리로 양도합니다. 이러한 단계는 청구 소유권 또한 양도할지 여부에 따라 달라집니다.

Warning

구독을 양도하면 소스 디렉터리의 모든 역할 할당이 영구적으로 삭제되며 복원할 수 없습니다. 구독을 양도한 후에는 다시 되돌릴 수 없습니다. 이 단계를 수행하기 전에 이전 단계를 완료해야 합니다.

  1. 또한 청구 소유권 또한 다른 계정으로 이전할지 여부를 결정합니다.

  2. 다른 디렉터리로 구독을 이전합니다.

  3. 구독 양도가 완료되면 이 문서로 돌아와서 대상 디렉터리에 리소스를 다시 만듭니다.

3단계: 리소스 다시 만들기

대상 디렉터리에 로그인

  1. 대상 디렉터리에서 이전 요청을 수락한 사용자로 로그인합니다.

    이전 요청을 수락한 새 계정의 사용자에게만 리소스를 관리할 수 있는 액세스 권한이 제공됩니다.

  2. az account list 명령을 사용하여 구독 목록을 가져옵니다.

    az account list --output table
    
  3. az account set으로 사용하려는 활성 구독을 설정합니다.

    az account set --subscription "Contoso"
    

사용자 지정 역할 만들기

역할 할당

  • az role assign create을 사용하여 사용자, 그룹 및 서비스 주체에게 역할을 할당합니다. 자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.

    az role assignment create --role <role_name_or_id> --assignee <assignee> --scope "/subscriptions/<subscriptionId>/resourceGroups/<resource_group>"
    

시스템 할당 관리 ID 업데이트

  1. 시스템 할당 관리 ID를 사용하지 않도록 설정하고 다시 사용하도록 설정합니다.

    Azure 서비스 자세한 정보
    가상 머신 Azure CLI를 사용하여 Azure VM에서 Azure 리소스에 대한 관리 ID 구성
    가상 머신 크기 집합 Azure CLI를 사용하여 가상 머신 확장 집합에서 Azure 리소스에 대한 관리 ID 구성
    기타 서비스 Azure 리소스에 대한 관리 ID를 지원하는 서비스
  2. az role assign create를 사용하여 시스템 할당 관리 ID에 역할을 할당합니다. 자세한 내용은 Azure CLI를 사용하여 리소스에 대한 관리 ID 액세스 할당을 참조하세요.

    az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope "/subscriptions/<subscriptionId>/resourceGroups/<resource_group>"
    

사용자 할당 관리 ID 업데이트

  1. 사용자 할당 관리 ID를 삭제하고, 다시 만들고, 연결합니다.

    Azure 서비스 자세한 정보
    가상 머신 Azure CLI를 사용하여 Azure VM에서 Azure 리소스에 대한 관리 ID 구성
    가상 머신 크기 집합 Azure CLI를 사용하여 가상 머신 확장 집합에서 Azure 리소스에 대한 관리 ID 구성
    기타 서비스 Azure 리소스에 대한 관리 ID를 지원하는 서비스
    Azure CLI를 사용하여 사용자 할당 관리 ID 생성, 나열 또는 삭제
  2. az role assign create를 사용하여 사용자 할당 관리 ID에 역할을 할당합니다. 자세한 내용은 Azure CLI를 사용하여 리소스에 대한 관리 ID 액세스 할당을 참조하세요.

    az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope "/subscriptions/<subscriptionId>/resourceGroups/<resource_group>"
    

키 자격 증명 모음 업데이트

이 섹션에서는 키 자격 증명 모음을 업데이트하는 기본 단계에 대해 설명합니다. 자세한 내용은 Azure Key Vault를 다른 구독으로 이동을 참조하세요.

  1. 이 구독에 있는 모든 기존 키 자격 증명 모음과 연결된 테넌트 ID를 대상 디렉터리로 업데이트합니다.

  2. 모든 기존 액세스 정책 항목을 제거합니다.

  3. 대상 디렉터리와 연결된 새 액세스 정책 항목을 추가합니다.

ACL 업데이트

  1. Azure Data Lake Storage Gen1을 사용하는 경우 적절한 ACL을 할당합니다. 자세한 내용은 Azure Data Lake Storage Gen1에 저장된 데이터 보안을 참조하세요.

  2. Azure Data Lake Storage Gen2를 사용하는 경우 적절한 ACL을 할당합니다. 자세한 내용은 Azure Data Lake Storage Gen2의 액세스 제어를 참조하세요.

  3. Azure Files를 사용하는 경우 적절한 ACL을 할당합니다.

기타 보안 방법 검토

양도 과정에서 역할 할당이 제거되더라도 원래 소유자 계정에 속한 사용자는 다음을 비롯한 다른 보안 방법을 통해 구독에 계속 액세스할 수 있습니다.

  • 스토리지와 같은 서비스에 대한 액세스 키.
  • 구독 리소스에 대한 관리자 액세스를 사용자에게 부여하는 관리 인증서.
  • Azure Virtual Machines 같은 서비스에 대한 원격 액세스 자격 증명.

대상 디렉터리에서 액세스할 수 없도록 소스 디렉터리의 사용자에 대한 액세스 권한을 제거하려면 자격 증명을 회전하는 것을 고려해야 합니다. 자격 증명을 업데이트하기 전까지는 사용자가 양도한 후에도 계속 액세스할 수 있습니다.

  1. 스토리지 계정 액세스 키 회전 자세한 내용은 스토리지 계정 액세스 키 관리를 참조하세요.

  2. Azure SQL Database 또는 Azure Service Bus Messaging과 같은 다른 서비스에 대한 액세스 키를 사용하는 경우 액세스 키를 회전합니다.

  3. 비밀을 사용하는 리소스의 경우 리소스에 대한 설정을 열고 암호를 업데이트합니다.

  4. 인증서를 사용하는 리소스의 경우 인증서를 업데이트합니다.

다음 단계