Azure 엔터프라이즈 구독을 만들기 위한 액세스 권한 부여(레거시)

EA(기업계약)이 있는 Azure 고객은 고객의 계정으로 청구되는 구독을 만들 수 있는 권한을 다른 사용자 또는 서비스 주체에게 부여할 수 있습니다. 이 문서에서는 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 구독을 만드는 기능을 공유하는 방법 및 구독 만들기를 감사하는 방법에 대해 알아봅니다. 공유하려는 계정에 대해 소유자 역할이 있어야 합니다.

참고 항목

  • 이 API는 구독 생성에 대한 레거시 API에서만 작동합니다.
  • 레거시 API를 사용해야 하는 특정 이유가 없는 한, 최신 API 버전에 대해 최신 GA 버전 관련 정보를 사용해야 합니다. 등록 계정 역할 할당 - Put을 참조하여 최신 API를 사용하여 EA 구독을 만들 수 있는 권한을 부여합니다.
  • 최신 API를 사용하도록 마이그레이션하는 경우 2019-10-01-preview를 사용하여 소유자 권한을 다시 부여해야 합니다. 다음 API를 사용하는 이전 구성은 최신 API에서 사용하도록 자동으로 변환되지 않습니다.

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

액세스 허가

등록 계정에서 구독을 만들려면 사용자에게 해당 계정에 대한 Azure RBAC 소유자 역할이 있어야 합니다. 다음 단계를 수행하여 등록 계정에 대한 Azure RBAC 소유자 역할을 사용자 또는 사용자 그룹에 부여할 수 있습니다.

  1. 액세스 권한을 부여하려는 등록 계정의 개체 ID를 가져옵니다.

    다른 사용자에게 등록 계정에 대한 Azure RBAC 소유자 역할을 부여하려면 계정 소유자 또는 계정의 Azure RBAC 소유자여야 합니다.

    액세스 권한이 있는 모든 등록 계정을 나열하도록 요청합니다.

    GET https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts?api-version=2018-03-01-preview
    

    Azure는 액세스할 수 있는 모든 등록 계정의 목록으로 응답합니다.

    {
      "value": [
        {
          "id": "/providers/Microsoft.Billing/enrollmentAccounts/747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "type": "Microsoft.Billing/enrollmentAccounts",
          "properties": {
            "principalName": "SignUpEngineering@contoso.com"
          }
        },
        {
          "id": "/providers/Microsoft.Billing/enrollmentAccounts/4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "type": "Microsoft.Billing/enrollmentAccounts",
          "properties": {
            "principalName": "BillingPlatformTeam@contoso.com"
          }
        }
      ]
    }
    

    principalName 속성을 사용하여 Azure RBAC 소유자에게 액세스 권한을 부여하려는 계정을 식별합니다. 해당 계정의 name를 복사합니다. 예를 들어 Azure RBAC 소유자에게 SignUpEngineering@contoso.com 등록 계정에 대한 액세스 권한을 부여하려면 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx를 복사합니다. 이는 등록 계정의 개체 ID입니다. 다음 단계에서 enrollmentAccountObjectId로 사용할 수 있도록 이 값을 어딘가에 붙여넣습니다.

    principalName 속성을 사용하여 Azure RBAC 소유자에게 액세스 권한을 부여하려는 계정을 식별합니다. 해당 계정의 name를 복사합니다. 예를 들어 Azure RBAC 소유자에게 SignUpEngineering@contoso.com 등록 계정에 대한 액세스 권한을 부여하려면 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx를 복사합니다. 이는 등록 계정의 개체 ID입니다. 다음 단계에서 enrollmentAccountObjectId로 사용할 수 있도록 이 값을 어딘가에 붙여넣습니다.

  2. Azure RBAC 소유자 역할을 부여하려는 사용자 또는 그룹의 개체 ID를 가져옵니다.

    1. Azure Portal에서 Microsoft Entra ID를 검색합니다.
    2. 사용자에게 액세스 권한을 부여하려면 왼쪽 메뉴에서 사용자를 선택합니다. 그룹에 대한 액세스 권한을 부여하려면 그룹을 선택합니다.
    3. Azure RBAC 소유자 역할을 부여하려는 사용자 또는 그룹을 선택합니다.
    4. [사용자]를 선택한 경우 [프로필] 페이지에서 개체 ID를 찾을 수 있습니다. [그룹]을 선택한 경우 개체 ID는 [개요] 페이지에 있습니다. 텍스트 상자 오른쪽에 있는 아이콘을 선택하여 ObjectID를 복사합니다. 다음 단계에서 userObjectId로 사용할 수 있도록 이를 어딘가에 붙여넣습니다.
  3. 등록 계정에 대한 Azure RBAC 소유자 역할을 사용자 또는 그룹에 부여합니다.

    처음 두 단계에서 수집한 값을 사용하여 등록 계정에 대한 Azure RBAC 소유자 역할을 사용자 또는 그룹에 부여합니다.

    <enrollmentAccountObjectId>를 첫 번째 단계에서 복사한 name(747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx)으로 바꿔서 다음 명령을 실행합니다. <userObjectId>를 두 번째 단계에서 복사한 개체 ID로 바꿉니다.

    PUT  https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>/providers/Microsoft.Authorization/roleAssignments/<roleAssignmentGuid>?api-version=2015-07-01
    
    {
      "properties": {
        "roleDefinitionId": "/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>",
        "principalId": "<userObjectId>"
      }
    }
    

    등록 계정 범위에서 소유자 역할을 성공적으로 할당하면 Azure는 역할 할당의 정보로 응답합니다.

    {
      "properties": {
        "roleDefinitionId": "/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>",
        "principalId": "<userObjectId>",
        "scope": "/providers/Microsoft.Billing/enrollmentAccounts/747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "createdOn": "2018-03-05T08:36:26.4014813Z",
        "updatedOn": "2018-03-05T08:36:26.4014813Z",
        "createdBy": "<assignerObjectId>",
        "updatedBy": "<assignerObjectId>"
      },
      "id": "/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>",
      "type": "Microsoft.Authorization/roleAssignments",
      "name": "<roleAssignmentGuid>"
    }
    

활동 로그를 사용하여 구독을 만든 사람 감사

이 API를 통해 만든 구독을 추적하려면 테넌트 활동 로그 API를 사용합니다. 현재 PowerShell, CLI 또는 Azure Portal을 사용하여 구독 만들기를 추적할 수 없습니다.

  1. Microsoft Entra 테넌트의 테넌트 관리자로서 액세스 권한을 상승한 다음 /providers/microsoft.insights/eventtypes/management 범위에 걸쳐 감사 사용자에게 읽기 권한자 역할을 할당합니다. 이 액세스 권한은 읽기 권한자 역할, 모니터링 기여자 역할 또는 사용자 지정 역할에서 사용할 수 있습니다.

  2. 감사 사용자로 테넌트 활동 로그 API를 호출하여 구독 생성 작업을 봅니다. 예시:

    GET "/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '{greaterThanTimeStamp}' and eventTimestamp le '{lessThanTimestamp}' and eventChannels eq 'Operation' and resourceProvider eq 'Microsoft.Subscription'"
    

명령줄에서 이 API를 편리하게 호출하려면 ARMClient를 시도합니다.

다음 단계