次の方法で共有


Azure Enterprise サブスクリプションを作成する権限を付与する (レガシ)

Enterprise Agreement (EA) を使用する Azure のお客様は、アカウントに課金されるサブスクリプションを作成するためのアクセス許可を別のユーザーまたはサービス プリンシパルに付与できます。 この記事では、 Azure ロールベースのアクセス制御 (Azure RBAC) を使用してサブスクリプションを作成する機能を共有する方法と、サブスクリプションの作成を監査する方法について説明します。 共有するアカウントに所有者ロールが必要です。

  • この API は、サブスクリプション作成 用のレガシ API でのみ機能します。
  • 従来の API を使用する必要がある場合を除き、最新の API バージョンに関する 最新の GA バージョン の情報を使用する必要があります。 登録アカウントのロールの割り当て - Put」を参照して、最新の API で EA サブスクリプションを作成する権限を付与します
  • 新しい API を使用するように移行する場合は、 2019-10-01-preview を使用して所有者のアクセス許可をもう一度付与する必要があります。 以下の API を使用する以前の構成が、より新しい API で使用できるよう自動的に変換されることはありません。

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 開始するには、 Azure PowerShell のインストールに関するページを参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

アクセス権の付与

登録アカウントでサブスクリプションを作成するには、ユーザーがそのアカウントに対する 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/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
          "name": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
          "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 をコピーします。 たとえば、SignUpEngineering@contoso.com 登録アカウントに Azure RBAC 所有者のアクセス権を付与する場合、aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb をコピーします。 それは登録アカウントのオブジェクト ID です。 次のステップでこの値を enrollmentAccountObjectId として使用できるよう、どこかに貼り付けておきます。

    principalName プロパティを使用して、Azure RBAC 所有者のアクセス権を付与するアカウントを指定します。 そのアカウントの name をコピーします。 たとえば、SignUpEngineering@contoso.com 登録アカウントに Azure RBAC 所有者のアクセス権を付与する場合、aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb をコピーします。 それは登録アカウントのオブジェクト ID です。 次のステップでこの値を enrollmentAccountObjectId として使用できるよう、どこかに貼り付けておきます。

  2. Azure RBAC 所有者ロールを付与するユーザーまたはグループのオブジェクト ID を取得します

    1. Azure portal で、 Microsoft Entra ID を検索します。
    2. ユーザーにアクセス権を付与する場合は、左側のメニューで [ ユーザー ] を選択します。 グループへのアクセス権を付与するには、[グループ] を選択 します
    3. Azure RBAC 所有者ロールを付与するユーザーまたはグループを選択します。
    4. ユーザーを選択した場合、オブジェクト ID は [プロファイル] ページにあります。 グループを選択した場合、オブジェクト ID は [概要] ページにあります。 テキスト ボックスの右側にあるアイコンを選択して 、ObjectID をコピーします。 次のステップで userObjectId として使用できるように、それをどこかに貼り付けておきます。
  3. ユーザーまたはグループに、登録アカウントに対する Azure RBAC 所有者ロールを付与します

    最初の 2 つの手順で収集した値を使用して、ユーザーまたはグループに、登録アカウントに対する Azure RBAC 所有者ロールを付与します。

    <enrollmentAccountObjectId> を最初の手順でコピーした name (aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb) で置き換えて、次のコマンドを実行します。 <userObjectId> は、2 番目の手順でコピーしたオブジェクト 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/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "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 を試してください。