Kurz: Důvěryhodné úložiště Media Services
Upozornění
Služba Azure Media Services bude vyřazena 30. června 2024. Další informace najdete v průvodci vyřazením AMS.
V tomto kurzu se naučíte:
- Povolení důvěryhodného úložiště pro Azure Media Services
- Jak používat spravované identity pro důvěryhodné úložiště
- Jak poskytnout službám Azure přístup k účtu úložiště při použití řízení přístupu k síti, jako je brána firewall nebo VPN
S rozhraním API 2020-05-01 můžete povolit důvěryhodné úložiště přidružením spravované identity k účtu Media Services.
Poznámka
Důvěryhodné úložiště je dostupné jenom v rozhraní API a aktuálně není povolené v Azure Portal.
Služba Media Services může automaticky přistupovat k vašemu účtu úložiště pomocí systémového ověřování. Služba Media Services ověří, že uživatel, který přidává přidružení, má přístup k účtu úložiště pomocí Azure Resource Manager RBAC.
Použití účtů úložiště mezi předplatnými
Poznámka
Pokud je služba Media Services nakonfigurovaná tak, aby pro přístup k úložišti používala spravovanou identitu, může služba Media Services používat libovolný účet úložiště, ke kterému má spravovaná identita přístup.
Při použití ověřování systému pro úložiště musí být účet úložiště ve stejném předplatném jako účet Media Services. Pokud chcete zabránit dalším nákladům na výchozí přenos dat, použijte účty úložiště ve stejné oblasti jako účet Media Services.
Pro oba typy ověřování musí mít objekt zabezpečení, který vytvoří nebo aktualizuje účet Media Services, oprávnění Microsoft.Storage/storageAccounts/listkeys/action pro účet úložiště.
Přehled
Důležité
Pro všechny požadavky na Media Services použijte rozhraní API 2020-05-01.
Toto jsou obecné kroky pro vytvoření důvěryhodného úložiště pro Media Services:
- Vytvořte skupinu prostředků.
- Vytvoření účtu úložiště
- Dotazujte se na účet úložiště, dokud nebude připravený. Jakmile bude účet úložiště připravený, požadavek vrátí ID instančního objektu.
- Vyhledejte ID role Přispěvatel dat v objektech blob služby Storage .
- Zavolejte zprostředkovatele autorizace a přidejte přiřazení role.
- Aktualizujte účet služby Media Services tak, aby se ověřil v účtu úložiště pomocí spravované identity.
- Odstraňte prostředky, pokud je nechcete dál používat a účtují se vám za ně poplatky.
Požadavky
Abyste mohli začít, potřebujete předplatné Azure. Pokud nemáte předplatné Azure, vytvořte si bezplatný zkušební účet.
Získání ID tenanta a ID předplatného
Pokud nevíte, jak získat ID tenanta a ID předplatného, přečtěte si téma Jak najít vaše předplatné a ID tenanta.
Vytvoření instančního objektu a tajného klíče
Pokud nevíte, jak vytvořit instanční objekt a tajný klíč, přečtěte si téma Získání přihlašovacích údajů pro přístup k rozhraní API služby Media Services.
Použití klienta REST
Tento skript je určený pro použití s klientem REST, jako je například to, co je k dispozici v rozšířeních editoru Visual Studio Code. Přizpůsobte si ho pro své vývojové prostředí.
Nastavení počátečních proměnných
Tato část skriptu je určená pro použití v klientovi REST. Proměnné můžete ve vývojovém prostředí používat odlišně.
### AAD details
@tenantId = your tenant ID
@servicePrincipalId = the service principal ID
@servicePrincipalSecret = the service principal secret
### AAD resources
@armResource = https%3A%2F%2Fmanagement.core.windows.net%2F
@graphResource = https%3A%2F%2Fgraph.windows.net%2F
@storageResource = https%3A%2F%2Fstorage.azure.com%2F
### Service endpoints
@armEndpoint = management.azure.com
@graphEndpoint = graph.windows.net
@aadEndpoint = login.microsoftonline.com
### ARM details
@subscription = your subscription id
@resourceGroup = the resource group you'll be creating
@storageName = the name of the storage you'll be creating
@accountName = the name of the account you'll be creating
@resourceLocation = East US (or the location that works best for your region)
Získání tokenu pro Azure Resource Manager
// @name getArmToken
POST https://{{aadEndpoint}}/{{tenantId}}/oauth2/token
Accept: application/json
Content-Type: application/x-www-form-urlencoded
resource={{armResource}}&client_id={{servicePrincipalId}}&client_secret={{servicePrincipalSecret}}&grant_type=client_credentials
Získání tokenu pro Graph API
Tato část skriptu je určená pro použití v klientovi REST. Proměnné můžete ve vývojovém prostředí používat odlišně.
// @name getGraphToken
POST https://{{aadEndpoint}}/{{tenantId}}/oauth2/token
Accept: application/json
Content-Type: application/x-www-form-urlencoded
resource={{graphResource}}&client_id={{servicePrincipalId}}&client_secret={{servicePrincipalSecret}}&grant_type=client_credentials
Získání podrobností o instančním objektu
// @name getServicePrincipals
GET https://{{graphEndpoint}}/{{tenantId}}/servicePrincipals?$filter=appId%20eq%20'{{servicePrincipalId}}'&api-version=1.6
x-ms-client-request-id: cae3e4f7-17a0-476a-a05a-0dab934ba959
Authorization: Bearer {{getGraphToken.response.body.access_token}}
Uložení ID instančního objektu
@servicePrincipalObjectId = {{getServicePrincipals.response.body.value[0].objectId}}
Vytvoření skupiny prostředků
// @name createResourceGroup
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}
?api-version=2016-09-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"location": "{{resourceLocation}}"
}
Vytvoření účtu úložiště
// @name createStorageAccount
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}
?api-version=2019-06-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"sku": {
"name": "Standard_GRS"
},
"kind": "StorageV2",
"location": "{{resourceLocation}}",
"properties": {
}
}
Získání stavu účtu úložiště
Příprava účtu úložiště chvíli potrvá, takže se tato žádost dotazuje na jeho stav. Tento požadavek opakujte, dokud nebude účet úložiště připravený.
// @name getStorageAccountStatus
GET {{createStorageAccount.response.headers.Location}}
Authorization: Bearer {{getArmToken.response.body.access_token}}
Získání podrobností o účtu úložiště
Až bude účet úložiště připravený, získejte vlastnosti účtu úložiště.
// @name getStorageAccount
GET https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}
?api-version=2019-06-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Získání tokenu pro ARM
// @name getStorageToken
POST https://{{aadEndpoint}}/{{tenantId}}/oauth2/token
Accept: application/json
Content-Type: application/x-www-form-urlencoded
resource={{storageResource}}&client_id={{servicePrincipalId}}&client_secret={{servicePrincipalSecret}}&grant_type=client_credentials
Vytvoření účtu Media Services se spravovanou identitou přiřazenou systémem
// @name createMediaServicesAccount
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Media/mediaservices/{{accountName}}?api-version=2020-05-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"identity": {
"type": "SystemAssigned"
},
"properties": {
"storageAccounts": [
{
"id": "{{getStorageAccountStatus.response.body.id}}"
}
],
"encryption": {
"type": "SystemKey"
}
},
"location": "{{resourceLocation}}"
}
Získání definice role dat objektů blob služby Storage
// @name getStorageBlobDataContributorRoleDefinition
GET https://management.azure.com/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Storage%20Blob%20Data%20Contributor%27&api-version=2015-07-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Nastavení přiřazení role úložiště
Přiřazení role říká, že instanční objekt pro účet Media Services má roli úložiště Přispěvatel dat v objektech blob služby Storage. Může to chvíli trvat a je důležité počkat, jinak účet Media Services nebude správně nastavený.
PUT https://management.azure.com/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}/providers/Microsoft.Authorization/roleAssignments/{{$guid}}?api-version=2020-04-01-preview
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"properties": {
"roleDefinitionId": "/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}/providers/Microsoft.Authorization/roleDefinitions/{{getStorageBlobDataContributorRoleDefinition.response.body.value[0].name}}",
"principalId": "{{createMediaServicesAccount.response.body.identity.principalId}}"
}
}
Udělení obejití přístupu k účtu úložiště spravované identitě
Tato akce změní přístup z identity spravované systémem na spravovanou identitu. Tímto způsobem může účet úložiště přistupovat k účtu úložiště přes bránu firewall, protože služby Azure mají přístup k účtu úložiště bez ohledu na pravidla přístupu IP adres (ACL).
Znovu počkejte, až se role přiřadí v účtu úložiště, jinak se účet Media Services nenastaví správně.
// @name setStorageAccountFirewall
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}
?api-version=2019-06-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"sku": {
"name": "Standard_GRS"
},
"kind": "StorageV2",
"location": "{{resourceLocation}}",
"properties": {
"minimumTlsVersion": "TLS1_2",
"networkAcls": {
"bypass": "AzureServices",
"virtualNetworkRules": [],
"ipRules": [],
"defaultAction": "Deny"
}
}
}
Aktualizace účtu Media Services tak, aby používal spravovanou identitu
Tento požadavek může být potřeba několikrát opakovat, protože rozšíření přiřazení role úložiště může trvat několik minut.
// @name updateMediaServicesAccountWithManagedStorageAuth
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Media/mediaservices/{{accountName}}?api-version=2020-05-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
"identity": {
"type": "SystemAssigned"
},
"properties": {
"storageAccounts": [
{
"id": "{{getStorageAccountStatus.response.body.id}}"
}
],
"storageAuthentication": "ManagedIdentity",
"encryption": {
"type": "SystemKey"
}
},
"location": "{{resourceLocation}}"
}
Otestovat přístup
Otestujte přístup vytvořením prostředku v účtu úložiště.
// @name createAsset
PUT https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Media/mediaservices/{{accountName}}/assets/testasset{{index}}withoutmi?api-version=2018-07-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Content-Type: application/json; charset=utf-8
{
}
Odstranění prostředků
Pokud nechcete zachovat vytvořené prostředky a dál se vám za ně účtují poplatky, odstraňte je.
### Clean up the Storage account
DELETE https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Storage/storageAccounts/{{storageName}}
?api-version=2019-06-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
### Clean up the Media Services account
DELETE https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Media/mediaservices/{{accountName}}?api-version=2020-05-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
### Clean up the Media Services account
GET https://{{armEndpoint}}/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.Media/mediaservices/{{accountName}}?api-version=2020-05-01
Authorization: Bearer {{getArmToken.response.body.access_token}}
Získání nápovědy a podpory
Media Services můžete kontaktovat s dotazy nebo sledovat naše aktualizace jedním z následujících způsobů:
- Q & A
-
Stack Overflow Označit otázky pomocí
azure-media-services
. - @MSFTAzureMedia nebo použijte @AzureSupport a požádejte o podporu.
- Otevřete lístek podpory prostřednictvím Azure Portal.