Självstudie: Få åtkomst till lagring med en hanterad Media Services-identitet

Media Services-logotyp v3


Varning

Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS Retirement Guide.

Not

Hanterade identiteter är endast tillgängliga för Media Services-konton som skapats med hjälp av v3-API:et. Om du använder v2-API:et och vill använda hanterade identiteter migrerar du från v2 till v3 Migrera från Media Services v2 till v3-introduktion.

Om du vill komma åt ett lagringskonto när lagringskontot är konfigurerat för att blockera begäranden från okända IP-adresser måste Media Services-kontot beviljas åtkomst till lagringskontot. Följ stegen nedan för att skapa en hanterad identitet för Media Services-kontot och ge den här identiteten åtkomst till lagring med hjälp av Media Services CLI.

Media Services-kontot använder en hanterad identitet för att få åtkomst till lagring

I den här självstudien används 2020-05-01 Media Services API.

Överblick

Varning

Du kan inte använda JobInputHTTP- eller SAS-URL:er med ett lagringskonto som inte är associerat med ett Media Services-konto. Dessa är avsedda som en bekvämlighet för kunder som har befintligt innehåll som kan nås med HTTP(S), till exempel om du har mediefiler på en offentlig server eller lagras med en annan molnleverantör. Om du skapar nya lösningar använder du Tillgångar för jobbindata.

Så här skyddar du åtkomsten till ett lagringskonto som används av Media Services:

  • Konfigurera lagringskontot för att neka alla IP-adresser (eller endast tillåta IP-adresser i kundens nätverk)
  • Konfigurera lagringskontot för att tillåta åtkomst till "AzureServices"
  • Konfigurera Media Services för åtkomst till lagringskontot med hjälp av hanterad identitet
  • Ladda upp medieinnehåll till Media Services-tillgångar
  • Skapa kodningsjobb som använder Media Services-tillgångar som jobbindata. ANVÄND INTE SAS-URL:er eller JobInputHTTP.

Logga in på Azure

Om du vill använda något av kommandona i den här artikeln måste du först loggas in på den prenumeration som du vill använda.

Logga in på Azure. När du använder det här kommandot uppmanas du att ange den prenumeration som du vill använda.

az login

Ange prenumeration

Använd det här kommandot för att ange den prenumeration som du vill arbeta med.

Ange Azure-prenumerationen med CLI

I följande kommando anger du det Azure-prenumerations-ID som du vill använda för Media Services-kontot.

az account set --subscription <subscriptionName>

Resursnamn

Innan du börjar ska du bestämma namnen på de resurser som du ska skapa. De bör vara lätta att identifiera som en uppsättning, särskilt om du inte planerar att använda dem när du är klar med testningen. Namngivningsregler skiljer sig åt för många resurstyper, så det är bäst att hålla sig till alla gemener. Till exempel "mediatest1rg" för resursgruppens namn och "mediatest1stor" för ditt lagringskontonamn. Använd samma namn för varje steg i den här artikeln.

Du ser dessa namn som refereras i kommandona nedan. Namnen på de resurser du behöver är:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • plats

Not

Bindestrecken ovan används endast för att avgränsa vägledningsord. På grund av inkonsekvensen i namngivning av resurser i Azure-tjänster ska du inte använda bindestreck när du namnger dina resurser. Dessutom skapar du inte regionnamnet. Regionnamnet bestäms av Azure.

Lista Azure-regioner

Om du inte är säker på vilket regionnamn som ska användas använder du det här kommandot för att hämta en lista:

Använd det här kommandot om du vill visa en lista över de regioner som är tillgängliga för ditt konto.

az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

Sekvens

Vart och ett av stegen nedan görs i en viss ordning eftersom ett eller flera värden från JSON-svaren används i nästa steg i sekvensen.

Skapa ett lagringskonto

Det Media Services-konto som du skapar måste ha ett lagringskonto kopplat till det. Skapa lagringskontot för Media Services-kontot först. Du använder lagringskontonamnet som ersätter myStorageAccount för efterföljande steg.

Skapa ett Azure Storage-konto med CLI

Använd följande kommandon för att skapa ett Azure Storage-konto.

Om du vill skapa ett lagringskonto måste du först skapa en resursgrupp på en plats.

Använd följande kommando för att visa tillgängliga platser:

Lista tillgängliga platser med CLI

Använd följande kommando för att visa tillgängliga platser:

az account list-locations

Skapa en resursgrupp med CLI

Använd följande kommando för att skapa en resursgrupp:

az group create -n <resourceGroupName> --location chooseLocation

Välj en SKU

Du måste också välja en SKU för ditt lagringskonto. Du kan lista lagringskonton.

Välj en SKU i följande lista: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Ändra myStorageAccount till ett unikt namn med en längd på färre än 24 tecken.
  • Ändra chooseLocation till den region som du vill arbeta i.
  • Ändra chooseSKU till önskad SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Skapa ett Media Services-konto med tjänstens huvudnamn (hanterad identitet)

Skapa nu Media Services-kontot med ett tjänsthuvudnamn, även kallat hanterad identitet.

Viktig

Det är viktigt att du kommer ihåg att använda flaggan --mi i kommandot . Annars kan du inte hitta principalId för ett senare steg.

Följande Azure CLI-kommando skapar ett nytt Media Services-konto. Ersätt följande värden: your-media-services-account-nameyour-storage-account-nameoch your-resource-group-name med de namn som du vill använda. Kommandot förutsätter att du redan har skapat en resursgrupp och ett lagringskonto.

Det ger Media Services-kontot en systemtilldelad hanterad identitet med flaggan --mi-system-assigned.


az ams account create --name <your-media-services-account-name> --resource-group <your-resource-group-name> --mi-system-assigned --storage-account <your-storage-account-name>

Exempel på JSON-svar:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/your-resource-group/providers/Microsoft.Media/mediaservices/your-media-services-account-name",
  "identity": {
    "principalId": "00000000-0000-0000-0000-00000000",
    "tenantId": "00000000-0000-0000-0000-00000000",
    "type": "SystemAssigned"
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-00000000",
  "name": "your-media-services-account-name",
  "resourceGroup": "your-resource-group",
  "storageAccounts": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/mediatest1rg/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System",
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Ge Media Services Managed Identity åtkomst till lagringskontot

Ge Media Services hanterad identitet åtkomst till lagringskontot. Det finns tre kommandon:

Hämta (visa) den hanterade identiteten för Media Services-kontot

Det första kommandot nedan visar den hanterade identiteten för Media Services-kontot som är den principalId som anges i JSON som returneras av kommandot.

Det här kommandot visar alla egenskaper för ett Media Services-konto.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Not

Om du har tilldelat åtkomstroller till Media Services-kontot returnerar den här raden "storageAuthentication": "ManagedIdentity".

Exempel på JSON-svar:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Skapa rolltilldelningen Storage Blob-deltagare

Följande kommando skapar rollen Storage Blob-deltagare.

Ändra assignee till principalId. Kommandot förutsätter att du redan har skapat en resursgrupp och ett lagringskonto. Använd your-resource-group-name och your-storage-account-name som en del av scope-värdet som du ser i kommandot nedan:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Storage Blob Data Contributor" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/<your-resource-group-name>/providers/Microsoft.Storage/storageAccounts/<your-storage-account-name>"

Exempel på JSON-svar:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "ServicePrincipal",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

Skapa rolltilldelningen Läsare

Följande kommando skapar en läsarroll.

Ändra assignee till principalId. Kommandot förutsätter att du redan har skapat en resursgrupp och ett lagringskonto. Använd your-resource-group-name och your-storage-account-name som en del av scope-värdet som du ser i kommandot nedan:

az role assignment create --assignee 00000000-0000-0000-000000000000 --role "Reader" --scope "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name"

Exempel på JSON-svar:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-000000000000",
  "name": "00000000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-000000000000",
  "principalType": "Reader",
  "resourceGroup": "your-resource-group-name",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
  "type": "Microsoft.Authorization/roleAssignments"
}

Använda den hanterade identiteten för att komma åt lagringskontot

Följande kommando ger en hanterad mediatjänstidentitet åtkomst till ett lagringskonto.

I kommandot nedan ändrar du your-resource-group-name till resursgruppens namn och your-media-services-account-nametill det Media Services-kontonamn som du vill arbeta med:

az ams account storage set-authentication --storage-auth ManagedIdentity --resource-group <your-resource-group_name> --account-name <your-media-services-account-name>

Exempel på JSON-svar:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-00000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-storage-account-name",
  "identity": null,
  "location": "West US 2",
  "mediaServiceId": "00000000-0000-0000-00000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "ManagedIdentity",
  "systemData": {
    "createdAt": "2021-05-17T19:15:00.8850297Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-17T21:23:11.3863627Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Validering

Om du vill kontrollera att kontot är krypterat med hjälp av en kundhanterad nyckel kan du visa egenskaperna för kontokryptering:

Det här kommandot visar alla egenskaper för ett Media Services-konto.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Not

Om du har tilldelat åtkomstroller till Media Services-kontot returnerar den här raden "storageAuthentication": "ManagedIdentity".

Exempel på JSON-svar:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
    "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "type": "SystemAssigned"  //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
  },
  "location": "your-region",
  "mediaServiceId": "00000000-0000-0000-0000-000000000000",
  "name": "your-media-services-account",
  "resourceGroup": "your-resource-group-name",
  "storageAccounts": [
    {
      "id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
      "resourceGroup": "your-resource-group-name",
      "type": "Primary"
    }
  ],
  "storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
  "systemData": {
    "createdAt": "2021-05-14T21:25:12.3492071Z",
    "createdBy": "you@example.com",
    "createdByType": "User",
    "lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
    "lastModifiedBy": "you@example.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.Media/mediaservices"
}

Egenskapen storageAuthentication ska visa "ManagedIdentity".

För ytterligare validering kan du kontrollera Azure Storage-loggarna för att se vilken autentiseringsmetod som används för varje begäran.

Rensa resurser

Om du inte planerar att använda de resurser som du skapade tar du bort resursgruppen.

Ta bort en resursgrupp med CLI

az group delete --name <your-resource-group-name>

Få hjälp och support

Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder: