Självstudie: Få åtkomst till lagring med en hanterad Media Services-identitet
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.
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-name
your-storage-account-name
och 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-name
till 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:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna ett supportärende via Azure-portalen.