Azure Nagyvállalati Szerződéshez tartozó előfizetések létrehozása programozott módon a legújabb API-kkal

Ez a cikk segítséget nyújt az Azure Nagyvállalati Szerződéshez tartozó előfizetések programozott módon, a legújabb API-verziók használatával történő létrehozásában Nagyvállalati Szerződéshez tartozó számlázási fiókok esetében. Ha továbbra is a régebbi előzetes verziót használja, tekintse meg az Azure-előfizetések örökölt API-k programozott létrehozását bemutató témakört.

Ebből a cikkből megtudhatja, hogyan hozhat létre előfizetéseket programozott módon az Azure Resource Manager használatával.

Amikor programozott módon hoz létre Azure-előfizetést, az a szerződés feltételei közé tartozik, amelyben Azure-szolgáltatásokat kap a Microsofttól vagy egy hitelesített értékesítőtől. További információért lásd a Microsoft Azure jogi információit.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Nem hozhat létre támogatási csomagokat programozott módon. Vásárolhat egy új támogatási csomagot, vagy frissíthet egyet az Azure Portalon. Lépjen a Súgó + támogatás elemre, majd a lap tetején válassza a Megfelelő támogatási csomag kiválasztása lehetőséget.

Előfeltételek

Egy felhasználónak vagy vállalati Rendszergazda istrator szerepkörrel vagy tulajdonosi szerepkörrel kell rendelkeznie egy regisztrációs fiókban egy előfizetés létrehozásához. A tulajdonosi szerepkört kétféleképpen szerezheti be egy regisztrációs fiókban:

Ha szolgáltatásnévvel szeretne létrehozni egy EA-előfizetést, a regisztrációs fiók tulajdonosának engedélyeznie kell a szolgáltatásnév számára az előfizetések létrehozását.

Ha szolgáltatásnévvel hoz létre előfizetéseket, használja a Microsoft Entra Enterprise alkalmazás ObjectId azonosítóját szolgáltatásnév-azonosítóként a Microsoft Graph PowerShell vagy az Azure CLI használatával. A szolgáltatásnév és a bérlőazonosító megkeresése lépésekkel megkeresheti egy meglévő szolgáltatásnév objektumazonosítóját az Azure Portalon.

Az EA szerepkör-hozzárendelési API-kérésével kapcsolatos további információkért lásd: Szerepkörök hozzárendelése az Azure Nagyvállalati Szerződés szolgáltatásnevekhez. A cikk tartalmazza a szolgáltatásnévhez hozzárendelhető szerepkörök (és szerepkördefiníciós azonosítók) listáját.

Feljegyzés

  • Győződjön meg róla, hogy a megfelelő API-verziót használja, amikor tulajdonosi engedélyeket ad a regisztrációs fióknak. A jelen cikk és a benne dokumentált API-k esetében használja a 2019-10-01-preview verziójú API-t.
  • Ha az újabb API-k használatára migrál, a 2015-07-01 verzióval készített korábbi konfiguráció nem konvertálódik automatikusan az újabb API-khoz való használatra.
  • A regisztrációs fiók adatai csak akkor láthatók, ha a felhasználó szerepköre fióktulajdonos. Ha egy felhasználó több szerepkörrel rendelkezik, az API a felhasználó legkevésbé korlátozó szerepkörét használja.

Azon fiókok megkeresése, amelyekhez hozzáféréssel rendelkezik

Miután hozzáadták Önt egy fióktulajdonoshoz társított regisztrációs fiókhoz, az Azure a fiók és a regisztráció közötti kapcsolat alapján állapítja meg, hogy hová kell kiszámlázni az előfizetési díjakat. A fiókhoz létrehozott minden előfizetést annak az EA-regisztrációnak számláz ki, amelyben a fiók található. Előfizetések létrehozásához meg kell adni a regisztrációs fiókra vonatkozó értékeket, valamint az előfizetés tulajdonosának felhasználói nevét.

A következő parancsok futtatásához be kell jelentkeznie a fióktulajdonos kezdőkönyvtárába, amely az a könyvtár, amelyben az előfizetések alapértelmezetten létrejönnek.

Kérelem azon fiókok felsorolására, amelyekhez hozzáféréssel rendelkezik:

GET https://management.azure.com/providers/Microsoft.Billing/billingaccounts/?api-version=2020-05-01

Az API-válasz felsorolja azokat a regisztrációs fiókokat, amelyekhez hozzáféréssel rendelkezik:

{
  "value": [
    {
      "id": "/providers/Microsoft.Billing/billingAccounts/1234567",
      "name": "1234567",
      "properties": {
        "accountStatus": "Unknown",
        "accountType": "Enterprise",
        "agreementType": "EnterpriseAgreement",
        "soldTo": {
          "companyName": "Contoso",
          "country": "US "
        },
        "billingProfiles": {
          "hasMoreResults": false
        },
        "displayName": "Contoso",
        "enrollmentAccounts": [
          {
            "id": "/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/7654321",
            "name": "7654321",
            "type": "Microsoft.Billing/enrollmentAccounts",
            "properties": {
              "accountName": "Contoso",
              "accountOwnerEmail": "kenny@contoso.onmicrosoft.com",
              "costCenter": "Test",
              "isDevTest": false
            }
          }
        ],
        "hasReadAccess": false
      },
      "type": "Microsoft.Billing/billingAccounts"
    }
  ]
}

A számlázási hatókör id értékei ugyanazok. A regisztrációs fiókjához tartozó id az a számlázási hatókör, amelyben az előfizetésre vonatkozó kérelem el lesz küldve. Fontos tudni az azonosítót, mert ez egy kötelező paraméter, amelyet a cikk későbbi részében használ egy előfizetés létrehozásához.

Előfizetések létrehozása egy adott regisztrációs fiókhoz

Az alábbi példa egy Dev Team Subscription (Fejlesztői csapat előfizetés) nevű előfizetést hoz létre az előző lépésben kiválasztott regisztrációs fiókban.

Az alábbi módszerek egyikével létrehozhat egy előfizetési aliasnevet. Javasoljuk, hogy az aliasnév létrehozásakor:

  • Alfanumerikus karakterek és kötőjelek használata
  • Betűvel kezdődik és alfanumerikus karakterrel végződik
  • Ne használjon időszakokat

Az alias egy felhasználó által definiált sztring egyszerű helyettesítésére szolgál az előfizetés GUID azonosítója helyett. Más szóval parancsikonként is használhatja. Az aliasról az Alias – Létrehozás webhelyen tudhat meg többet. A következő példákban létrejön, sampleAlias de bármilyen tetszőleges sztringet használhat.

Ha a Fióktulajdonos szerepkörön kívül több felhasználói szerepköre is van, akkor le kell kérnie a fiókazonosítót az Azure Portalról. Ezután az azonosítóval programozott módon hozhat létre előfizetéseket.

Az előfizetés-létrehozási kérelem/alias létrehozásához hívja meg a PUT API-t.

PUT  https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2021-10-01

A kérelem törzsében adja meg az egyik enrollmentAccountsid paraméterét a billingScope értékeként.

{
  "properties": {
        "billingScope": "/providers/Microsoft.Billing/BillingAccounts/1234567/enrollmentAccounts/7654321",
        "DisplayName": "Dev Team Subscription", //Subscription Display Name
        "Workload": "Production"
  }
}

A Workload lehetséges értékei a Production és a DevTest.

Válasz

{
  "id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
  "name": "sampleAlias",
  "type": "Microsoft.Subscription/aliases",
  "properties": {
    "subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
    "provisioningState": "Accepted"
  }
}

GET-műveletet is elvégezhet ugyanazon az URL-címen a kérelem állapotának lekéréséhez.

Kérelem

GET https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2021-10-01

Válasz

{
  "id": "/providers/Microsoft.Subscription/aliases/sampleAlias",
  "name": "sampleAlias",
  "type": "Microsoft.Subscription/aliases",
  "properties": {
    "subscriptionId": "b5bab918-e8a9-4c34-a2e2-ebc1b75b9d74",
    "provisioningState": "Succeeded"
  }
}

A rendszer folyamatban lévő állapotot ad vissza Accepted állapotként a provisioningState alatt.

Előfizetés létrehozása és az subscriptionOwnerId tulajdonossá tétele

Ha egy szolgáltatásnév az Előfizetési alias API használatával hoz létre egy új előfizetést, és nem szerepel additionalProperties a kérelemben, a szolgáltatásnév automatikusan az új előfizetés tulajdonosa lesz. Ha nem szeretné, hogy a szolgáltatásnév legyen a tulajdonos, megadhatja subscriptionTenantId a subscriptionOwnerIdadditionalProperties. Ez a folyamat az új előfizetés megadott subscriptionOwnerId tulajdonosát, nem pedig a szolgáltatásnevet adja meg.

Mintakérés törzse:


{
    "properties": {
        "billingScope": "/providers/Microsoft.Billing/billingAccounts/{EABillingAccountId}/enrollmentAccounts/{EnrollmentAccountId}",
        "displayName": "{SubscriptionName}",
        "workLoad": "Production",
        "resellerId": null,
        "additionalProperties": {
            "managementGroupId": "",
            "subscriptionTenantId": "{SubscriptionTenantId}", // Here you input the tenant GUID where the subscription resides after creation
            "subscriptionOwnerId": "{ObjectId that becomes the owner of the subscription}", // Here you input the objectId which is set as the subscription owner when it gets created.
            "tags": {}
        }
    }
}

Előfizetések létrehozása másik bérlőben

Az alias REST API használatával létrehozhat egy előfizetést egy másik bérlőben a subscriptionTenantId kérelem törzsének paraméterével. Az előfizetés létrehozásához az Azure-szolgáltatásnévnek (SPN) le kell szereznie egy jogkivonatot az otthoni bérlőjétől. Az előfizetés létrehozása után le kell szereznie egy jogkivonatot a célbérlettől, hogy elfogadja az átvitelt az Accept Ownership API használatával.

Az EA-előfizetések másik bérlőben való létrehozásáról további információt az Előfizetés létrehozása más bérlőkben és az átviteli kérelmek megtekintése című témakörben talál.

ARM-sablon vagy Bicep használata

Az előző szakaszban bemutattuk, hogyan hozhat létre előfizetést a PowerShell, a CLI vagy a REST API használatával. Ha automatizálnia kell az előfizetések létrehozását, fontolja meg egy Azure Resource Manager-sablon (ARM-sablon) vagy Bicep-fájl használatát.

Az alábbi ARM-sablon létrehoz egy előfizetést. Ehhez billingScopeadja meg a regisztrációs fiók azonosítóját. Az előfizetés a gyökérszintű felügyeleti csoportban jön létre. Az előfizetés létrehozása után áthelyezheti egy másik felügyeleti csoportba.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionAliasName": {
            "type": "string",
            "metadata": {
                "description": "Provide a name for the alias. This name will also be the display name of the subscription."
            }
        },
        "billingScope": {
            "type": "string",
            "metadata": {
                "description": "Provide the full resource ID of billing scope to use for subscription creation."
            }
        }
    },
    "resources": [
        {
            "scope": "/",
            "name": "[parameters('subscriptionAliasName')]",
            "type": "Microsoft.Subscription/aliases",
            "apiVersion": "2021-10-01",
            "properties": {
                "workLoad": "Production",
                "displayName": "[parameters('subscriptionAliasName')]",
                "billingScope": "[parameters('billingScope')]"
            }
        }
    ],
    "outputs": {}
}

Vagy egy Bicep-fájllal hozza létre az előfizetést.

targetScope = 'managementGroup'

@description('Provide a name for the alias. This name will also be the display name of the subscription.')
param subscriptionAliasName string

@description('Provide the full resource ID of billing scope to use for subscription creation.')
param billingScope string

resource subscriptionAlias 'Microsoft.Subscription/aliases@2021-10-01' = {
  scope: tenant()
  name: subscriptionAliasName
  properties: {
    workload: 'Production'
    displayName: subscriptionAliasName
    billingScope: billingScope
  }
}

Helyezze üzembe a sablont a felügyeleti csoport szintjén. Az alábbi példák a JSON ARM-sablon üzembe helyezését mutatják be, de ehelyett egy Bicep-fájlt is üzembe helyezhet.

PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/mg1/providers/Microsoft.Resources/deployments/exampledeployment?api-version=2020-06-01

Kérelem törzsével:

{
  "location": "eastus",
  "properties": {
    "templateLink": {
      "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json"
    },
    "parameters": {
      "subscriptionAliasName": {
        "value": "sampleAlias"
      },
      "billingScope": {
        "value": "/providers/Microsoft.Billing/BillingAccounts/1234567/enrollmentAccounts/7654321"
      }
    },
    "mode": "Incremental"
  }
}

Ha új felügyeleti csoportba szeretne áthelyezni egy előfizetést, használja az alábbi ARM-sablont.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "targetMgId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the management group that you want to move the subscription to."
            }
        },
        "subscriptionId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the existing subscription to move."
            }
        }
    },
    "resources": [
        {
            "scope": "/",
            "type": "Microsoft.Management/managementGroups/subscriptions",
            "apiVersion": "2020-05-01",
            "name": "[concat(parameters('targetMgId'), '/', parameters('subscriptionId'))]",
            "properties": {
            }
        }
    ],
    "outputs": {}
}

Vagy a következő Bicep-fájl.

targetScope = 'managementGroup'

@description('Provide the ID of the management group that you want to move the subscription to.')
param targetMgId string

@description('Provide the ID of the existing subscription to move.')
param subscriptionId string

resource subToMG 'Microsoft.Management/managementGroups/subscriptions@2020-05-01' = {
  scope: tenant()
  name: '${targetMgId}/${subscriptionId}'
}

Az Azure Enterprise-előfizetések létrehozási API-jára vonatkozó korlátozások

  • Az API-val csak Azure Enterprise-előfizetések hozhatók létre.
  • Regisztrációs fiókonként legfeljebb 5000 előfizetés lehet. Ha elérte ezt a mennyiséget, csak az Azure Portalon hozhatók létre előfizetések a fiókhoz. Ha több előfizetést szeretne létrehozni az API-val, hozzon létre egy másik regisztrációs fiókot. A megszakított, a törölt és az átadott előfizetések is beleszámítanak az 5000-es korlátba.
  • Azok a felhasználók, akik nem fióktulajdonosok, de azure-beli szerepköralapú hozzáférés-vezérléssel lettek hozzáadva egy regisztrációs fiókhoz, nem hozhatnak létre előfizetéseket az Azure Portalon.

Következő lépések