Zelfstudie: Een Key Vault-sleutel gebruiken om gegevens te versleutelen in een Media Services-account
Waarschuwing
Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de AMS Retirement Guidevoor meer informatie.
Notitie
Beheerde identiteiten zijn alleen beschikbaar voor Media Services-accounts die zijn gemaakt met behulp van de v3-API. Als u de v2-API gebruikt en beheerde identiteiten wilt gebruiken, migreert u van v2 naar v3 Migreren van Media Services v2 naar v3 inleiding.
Als u wilt dat Media Services gegevens versleutelt met behulp van een sleutel uit uw Sleutelkluis, moet het Media Services-account worden verleend toegang tot de Key Vault. Volg de onderstaande stappen om een beheerde identiteit voor het Media Services-account te maken en deze identiteit toegang te verlenen tot uw Key Vault met behulp van de Media Services CLI.
In deze zelfstudie wordt de Media Services-API 2020-05-01 gebruikt.
Aanmelden bij Azure
Als u een van de opdrachten in dit artikel wilt gebruiken, moet u eerst zijn aangemeld bij het abonnement dat u wilt gebruiken.
Meld u aan bij Azure. Wanneer u deze opdracht gebruikt, wordt u gevraagd om het abonnement dat u wilt gebruiken.
az login
Abonnement instellen
Gebruik deze opdracht om het abonnement in te stellen waarmee u wilt werken.
Het Azure-abonnement instellen met de CLI
Geef in de volgende opdracht de Azure-abonnements-id op die u wilt gebruiken voor het Media Services-account.
az account set --subscription <subscriptionName>
Resourcenamen
Voordat u aan de slag gaat, moet u beslissen over de namen van de resources die u gaat maken. Ze moeten gemakkelijk te herkennen zijn als een set, vooral als u niet van plan bent om ze te gebruiken nadat u klaar bent met testen. Naamgevingsregels verschillen voor veel resourcetypen, zodat u het beste aan alle kleine letters kunt houden. Bijvoorbeeld 'mediatest1rg' voor de naam van uw resourcegroep en 'mediatest1stor' voor de naam van uw opslagaccount. Gebruik dezelfde namen voor elke stap in dit artikel.
U ziet deze namen waarnaar wordt verwezen in de onderstaande opdrachten. De namen van resources die u nodig hebt, zijn:
- myRG
- myStorageAccount
- myAmsAccount
- myKeyVault
- myKey
- plaats
Notitie
De bovenstaande afbreekstreepjes worden alleen gebruikt om hulpwoorden te scheiden. Vanwege de inconsistentie van naamgeving van resources in Azure-services, gebruikt u geen afbreekstreepjes wanneer u uw resources een naam geeft. U maakt ook niet de regionaam. De regionaam wordt bepaald door Azure.
Azure-regio's vermelden
Als u niet zeker weet welke regionaam u daadwerkelijk wilt gebruiken, gebruikt u deze opdracht om een vermelding op te halen:
Gebruik deze opdracht om de regio's weer te geven die beschikbaar zijn voor uw account.
az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table
Volgorde
Elk van de onderstaande stappen wordt in een bepaalde volgorde uitgevoerd, omdat een of meer waarden uit de JSON-antwoorden worden gebruikt in de volgende stap in de reeks.
Een opslagaccount maken
Aan het Media Services-account dat u maakt, moet er een opslagaccount aan zijn gekoppeld. Maak eerst het opslagaccount voor het Media Services-account. U gebruikt your-storage-account-name
voor de volgende stappen.
Een Azure Storage-account maken met de CLI
Gebruik de volgende opdrachten om een Azure Storage-account te maken.
Als u een opslagaccount wilt maken, moet u eerst een resourcegroep binnen een locatie maken.
Gebruik de volgende opdracht om beschikbare locaties weer te geven:
Beschikbare locaties weergeven met de CLI
Gebruik de volgende opdracht om beschikbare locaties weer te geven:
az account list-locations
Een resourcegroep maken met de CLI
Gebruik de volgende opdracht om een resourcegroep te maken:
az group create -n <resourceGroupName> --location chooseLocation
Een SKU kiezen
U moet ook een SKU voor uw opslagaccount kiezen. U kunt opslagaccounts weergeven.
Kies een SKU in de volgende lijst: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.
- Wijzig
myStorageAccount
in een unieke naam met een lengte van minder dan 24 tekens. - Wijzig
chooseLocation
in de regio waar u wilt werken. - Wijzig
chooseSKU
in de SKU van uw voorkeur.
az storage account create -n <myStorageAccount> -g <resourceGroup> --location <chooseLocation> --sku <chooseSKU>
Een Media Services-account maken met een service-principal (beheerde identiteit)
Maak nu het Media Services-account met een service-principal, ook wel een beheerde identiteit genoemd.
Belangrijk
Het is belangrijk dat u de vlag --mi in de opdracht gebruikt. Anders kunt u de principalId
niet vinden voor een latere stap.
Met de volgende Azure CLI-opdracht maakt u een nieuw Media Services-account. Vervang de volgende waarden: your-media-services-account-name
your-storage-account-name
en your-resource-group-name
door de namen die u wilt gebruiken. Bij de opdracht wordt ervan uitgegaan dat u al een resourcegroep en een opslagaccount hebt gemaakt.
Het geeft het Media Services-account een door het systeem toegewezen beheerde identiteit met de vlag --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>
Voorbeeld van JSON-antwoord:
{
"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"
}
Een sleutelkluis maken
Maak de Sleutelkluis. Key Vault wordt gebruikt om mediagegevens te versleutelen. U gebruikt your-keyvault-name
om uw sleutel te maken en voor latere stappen.
Gebruik de volgende opdrachten om een sleutelkluis en sleutel te maken. Wijzig your-resource-group-name
, your-keyvault-name
en your-key-name
in de waarden die u wilt gebruiken. Bij de opdracht wordt ervan uitgegaan dat u al een resourcegroep hebt gemaakt.
Notitie
Met de --bypass AzureServices
kan Media Services (en andere Azure-services) toegang krijgen tot de Key Vault wanneer die toegang normaal gesproken wordt geblokkeerd door de Key Vault-netwerk-ACL's De --enable-purge-protection
Als deze niet is ingesteld, kunt u uw sleutel niet gebruiken.
De sleutelkluis maken
az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>
Voorbeeld van JSON-antwoord:
{
"id": "/subscriptions/the-subscription-id/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
De sleutel maken
az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name
Voorbeeld van JSON-antwoord:
{
"attributes": {
"created": "2021-05-12T22:41:29+00:00",
"enabled": true,
"expires": null,
"notBefore": null,
"recoveryLevel": "Recoverable",
"updated": "2021-05-12T22:41:29+00:00"
},
"key": {
"crv": null,
"d": null,
"dp": null,
"dq": null,
"e": "AQAB",
"k": null,
"keyOps": [
"encrypt",
"decrypt",
"sign",
"verify",
"wrapKey",
"unwrapKey"
],
"kid": "https://your-keyvault-name.vault.azure.net/keys/your-key-name/your-subsription-id",
"kty": "RSA",
"n": "THISISTHEKEY51V9thvU7KsBUo/q1mEOcuxqt0qUcnx0IRO9YCL32fPjD/nnS8hKS5qkgUKfe2NRAtzVQ+elQAha65l7OsHu+TXmH/n/RPCgstpqSdCfiUR1JTmFYFRWdxCPwoKJMYaqlCEhn2Dkon3StTN0Id0sjRSA/YOLjgWU7YnVbntg5/048HgcTKn3PCWCuJc+P8hI/8Os5EAIpun62PffYwPX0/NIA1PY8wIB+sYEY0zxVGwWrCu7VgCo9xeqbMQEq5OenYmYpc+cjLozU/ohGhfWTpQU8d7fFypTHQraENDOFKEY",
"p": null,
"q": null,
"qi": null,
"t": null,
"x": null,
"y": null
},
"managed": null,
"tags": null
}
Het Door het Media Services-systeem toegewezen beheerde identiteit toegang verlenen tot de Key Vault
Ververleent de beheerde identiteit van Media Services toegang tot de Key Vault. Er zijn twee opdrachten:
De beheerde identiteit van het Media Services-account ophalen (weergeven)
Met de eerste opdracht hieronder ziet u de beheerde identiteit van het Media Services-account. Dit is de principalId
die worden vermeld in de JSON die door de opdracht wordt geretourneerd.
Met deze opdracht worden alle eigenschappen van een Media Services-account weergegeven.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Notitie
Als u toegangsrollen hebt toegewezen aan het Media Services-account, retourneert deze regel "storageAuthentication": "ManagedIdentity"
.
Voorbeeld van JSON-antwoord:
{
"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"
}
Het Key Vault-beleid instellen
Met de tweede opdracht verleent u de principal-id toegang tot de Sleutelkluis. Stel object-id
in op de waarde van principalId
die u hebt gekregen uit de vorige stap.
Als u deze opdracht wilt gebruiken, moet u de Media Services-principalId
opnemen als de object-id
. Als u dat nog niet hebt gedaan, gebruikt u az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
om deze id op te halen.
az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey
Voorbeeld van JSON-antwoord:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "00000000-0000-0000-000000000000"
},
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "00000000-0000-0000-000000000000"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "00000000-0000-0000-000000000000",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Media Services instellen voor het gebruik van de sleutel uit Key Vault
Stel Media Services in om de sleutel te gebruiken die u hebt gemaakt. De waarde van de eigenschap key-identifier
komt uit de uitvoer toen de sleutel werd gemaakt. Deze opdracht kan mislukken vanwege de tijd die nodig is om wijzigingen in toegangsbeheer door te geven. Als dit gebeurt, probeert u het na enkele minuten opnieuw.
Als u deze opdracht wilt gebruiken, moet u al een sleutelkluis en een sleutel hebben gemaakt.
az ams account encryption set --account-name <your-media-services-account-name> --resource-group <your-resource-group> --key-type CustomerKey --key-identifier https://<your-keyvault-name>.vault.azure.net/keys/<your-key-name>
Voorbeeld van JSON-antwoord:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
},
{
"applicationId": null,
"objectId": "the-media-services-account-id",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Validering
Als u wilt controleren of het account is versleuteld met behulp van een door de klant beheerde sleutel, bekijkt u de eigenschappen van de accountversleuteling:
Accountversleuteling weergeven met de CLI
Zie de Naslaginformatie over Media Services CLIvoor meer informatie over deze opdracht.
De eigenschap type
moet CustomerKey
weergeven en de currentKeyIdentifier
moet worden ingesteld op het pad van een sleutel in de sleutelkluis van de klant.
Resources opschonen
Als u niet van plan bent om de resources te gebruiken die u hebt gemaakt, verwijdert u de resourcegroep.
Een resourcegroep verwijderen met de CLI
az group delete --name <your-resource-group-name>
Hulp en ondersteuning krijgen
U kunt contact opnemen met Media Services met vragen of onze updates volgen op een van de volgende manieren:
- Q & A-
-
Stack Overflow-. Tag vragen met
azure-media-services
. - @MSFTAzureMedia of @AzureSupport gebruiken om ondersteuning aan te vragen.
- Open een ondersteuningsticket via Azure Portal.